Skip to content

Commit

Permalink
fix(send-object): allow users to send an object as message body
Browse files Browse the repository at this point in the history
  • Loading branch information
mbroadst committed Jul 11, 2015
1 parent 04246cf commit b38ace9
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 1 deletion.
5 changes: 4 additions & 1 deletion lib/types/message.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
'use strict';

var Int64 = require('node-int64'),
var _ = require('lodash'),
Int64 = require('node-int64'),
util = require('util'),

constants = require('../constants'),
Expand Down Expand Up @@ -382,6 +383,8 @@ Message.prototype.encode = function(codec, buf) {
} else {
if (this.body[0] instanceof Buffer) {
codec.encode(new Data(this.body[0]), buf);
} else if (_.isPlainObject(this.body)) {
codec.encode(new AMQPValue(this.body), buf);
} else {
codec.encode(new AMQPValue(this.body[0]), buf);
}
Expand Down
43 changes: 43 additions & 0 deletions test/integration/qpid/types.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
'use strict';
var AMQPClient = require('../../..').Client,
Promise = require('bluebird'),
config = require('./config'),
expect = require('chai').expect;

var test = {};
describe('QPID', function() {

describe('Types', function() {
beforeEach(function() {
if (!!test.client) test.client = undefined;
test.client = new AMQPClient();
});

afterEach(function() {
return test.client.disconnect().then(function() {
test.client = undefined;
});
});

it('should be able to send objects', function(done) {
var objectMessage = { test: 'object' };

test.client.connect(config.address)
.then(function() {
return Promise.all([
test.client.createReceiver(config.defaultLink),
test.client.createSender(config.defaultLink)
]);
})
.spread(function(receiver, sender) {
receiver.on('message', function(message) {
expect(message.body).to.eql(objectMessage);
done();
});

return sender.send(objectMessage);
});
});

});
});

0 comments on commit b38ace9

Please sign in to comment.