Skip to content
This repository has been archived by the owner on Oct 11, 2023. It is now read-only.

Commit

Permalink
Add tests for PRs #14 and #21
Browse files Browse the repository at this point in the history
  • Loading branch information
Pierre Cauchois committed Mar 31, 2017
1 parent d87485e commit 3913a77
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 3 deletions.
2 changes: 1 addition & 1 deletion send_receive/lib/client.js
Expand Up @@ -262,7 +262,7 @@ EventHubClient.prototype.createSender = function createSender(partitionId) {
return this.open()
.then(function () {
var endpoint = '/' + self._config.path;
if (partitionId !== undefined) {
if (partitionId !== undefined && partitionId !== null && !(typeof partitionId === 'number' && partitionId < 0)) {
endpoint += '/Partitions/' + partitionId;
}
return self._amqp.createSender(endpoint);
Expand Down
2 changes: 1 addition & 1 deletion send_receive/lib/sender.js
Expand Up @@ -54,7 +54,7 @@ util.inherits(EventHubSender, EventEmitter);
EventHubSender.prototype.send = function (message, partitionKey) {
var options = null;
if (partitionKey) {
options = {messageAnnotations: {'x-opt-partition-key': partitionKey}};
options = { messageAnnotations: { 'x-opt-partition-key': partitionKey } };
}
return this._senderLink.send(message, options);
};
Expand Down
3 changes: 2 additions & 1 deletion send_receive/package.json
Expand Up @@ -7,7 +7,7 @@
"main": "./lib",
"typings": "./lib/index.d.ts",
"dependencies": {
"amqp10": "3.4.1",
"amqp10": "3.5.0",
"azure-iot-common": "1.1.3",
"bluebird": "^3.4.7",
"uuid": "^3.0.1"
Expand All @@ -17,6 +17,7 @@
"chai-as-promised": "^6.0.0",
"jshint": "^2.9.4",
"mocha": "^3.2.0",
"sinon": "^2.1.0",
"tslint": "^4.4.2",
"typescript": "^2.1.5"
},
Expand Down
11 changes: 11 additions & 0 deletions send_receive/tests/client_test.js
Expand Up @@ -10,6 +10,7 @@ var should = chai.should();
chai.use(chaiAsPromised);

var Receiver = require('../lib/receiver.js');
var Sender = require('../lib/sender.js');
var EventHubClient = require('../lib/client.js');
var ArgumentError = require('azure-iot-common').errors.ArgumentError;
var MessagingEntityNotFoundError = require('../lib/errors').MessagingEntityNotFoundError;
Expand Down Expand Up @@ -139,6 +140,16 @@ services.forEach(function (service) {
});
});

describe('#createSender', function() {
[0, 1, '0', '1'].forEach(function(partitionId) {
it('returns a Sender when partitionId is ' + partitionId, function() {
client = EventHubClient.fromConnectionString(service.connectionString, service.path);
var sender = client.createSender(partitionId);
return sender.should.eventually.be.instanceOf(Sender);
});
});
});

describe('#createReceiver', function () {
it('returns a Receiver', function () {
var receiver = client.createReceiver('$Default', '0');
Expand Down
18 changes: 18 additions & 0 deletions send_receive/tests/sender_test.js
Expand Up @@ -5,6 +5,7 @@

var chai = require('chai');
chai.should();
var sinon = require('sinon');

var uuid = require('uuid');
var amqp10 = require('amqp10');
Expand Down Expand Up @@ -75,5 +76,22 @@ describe('EventHubSender', function () {
});
});
});

it('should set the partition key if it is passed', function(done) {
client.createSender('0')
.then(function (sender) {
var id = uuid.v4();
var testMessage = { testId: id };
var partitionKey = 'partitionKey';
sinon.spy(sender._senderLink, 'send');
sender.on('errorReceived', done);
sender.send(testMessage, partitionKey)
.then(function() {
var options = sender._senderLink.send.args[0][1];
options.messageAnnotations['x-opt-partition-key'].should.equal(partitionKey);
done();
});
});
});
});
});

0 comments on commit 3913a77

Please sign in to comment.