You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.5 KiB
69 lines
2.5 KiB
require('./harness').run(); |
|
// test-type-and-headers.js |
|
var recvCount = 0; |
|
var body = "the devil is in the type, and also in the headers"; |
|
|
|
connection.addListener('ready', function () { |
|
puts("connected to " + connection.serverProperties.product); |
|
|
|
connection.exchange('node-th-fanout', {type: 'fanout'}, function(exchange) { |
|
connection.queue('node-th-queue', function(q) { |
|
q.bind(exchange, "*"); |
|
q.on('queueBindOk', function() { |
|
q.on('basicConsumeOk', function () { |
|
puts("publishing message"); |
|
exchange.publish("message.text", body, |
|
{ |
|
type: 'typeProperty', |
|
headers: |
|
{ |
|
stringHeader: "Hello, World", |
|
bigIntP : 0xffffffff + 1, |
|
bigIntN : -0xffffffff - 1, |
|
intP : 1234, |
|
intN : (-1234), |
|
floatP: 1.1234, |
|
floatN: -1.1234, |
|
boolT: true, |
|
boolF: false, |
|
date: new Date(2001, 00, 01), |
|
obj: { hello: "world" }, |
|
buf: new Buffer([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]) |
|
} |
|
}); |
|
}); |
|
q.subscribeRaw(function (m) { |
|
puts("--- Message (" + m.deliveryTag + ", '" + m.routingKey + "') ---"); |
|
puts("--- type: " + m.type); |
|
puts("--- headers: " + JSON.stringify(m.headers)); |
|
puts(""); |
|
recvCount++; |
|
assert.equal('typeProperty', m.type); |
|
assert.equal('Hello, World', m.headers.stringHeader); |
|
assert.equal(0xffffffff + 1, m.headers.bigIntP); |
|
assert.equal(-0xffffffff - 1, m.headers.bigIntN); |
|
assert.equal(1234, m.headers.intP); |
|
assert.equal(-1234, m.headers.intN); |
|
assert.equal(1.1234, m.headers.floatP); |
|
assert.equal(-1.1234, m.headers.floatN); |
|
assert.equal(true, m.headers.boolT); |
|
assert.equal(false, m.headers.boolF); |
|
assert.equal(new Date(2001,00,01).valueOf(), m.headers.date.valueOf()); |
|
assert.equal(JSON.stringify({hello:"world"}), JSON.stringify(m.headers.obj)); |
|
assert.equal(new Buffer([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]).toString(), m.headers.buf.toString()); |
|
|
|
}); |
|
setTimeout(function () { |
|
// wait one second to receive the message, then quit |
|
connection.end(); |
|
}, 1000); |
|
}); |
|
}); |
|
|
|
}); |
|
}); |
|
|
|
|
|
process.addListener('exit', function () { |
|
assert.equal(1, recvCount); |
|
});
|
|
|