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

Commit

Permalink
Merge pull request #64 from andrerod/dev
Browse files Browse the repository at this point in the history
Adding more UT coverage.
  • Loading branch information
Andre Rodrigues committed Feb 11, 2012
2 parents 81a875e + d9b9629 commit e0128d7
Show file tree
Hide file tree
Showing 2 changed files with 154 additions and 5 deletions.
3 changes: 3 additions & 0 deletions lib/services/serviceBus/servicebusservice.js
Expand Up @@ -44,6 +44,9 @@ exports = module.exports = ServiceBusService;
* @augments {ServiceClient}
*
* @param {string} [namespace] The service bus namespace.
* @param {string} [acsnamespace] The acs namespace. Usually the same as the sb namespace with "-sb" suffix.
* @param {string} [issuer] The issuer.
* @param {string} [password] The password.
* @param {string} [host] The host address.
* @param {object} [authenticationProvider] The authentication provider.
*/
Expand Down
156 changes: 151 additions & 5 deletions test/services/serviceBus/servicebusservice-tests.js
Expand Up @@ -909,7 +909,13 @@ module.exports = testCase(
test.equal(subscription2.DeadLetteringOnMessageExpiration, subscriptionOptions.DeadLetteringOnMessageExpiration);
test.equal(subscription2.DeadLetteringOnFilterEvaluationExceptions, subscriptionOptions.DeadLetteringOnFilterEvaluationExceptions);

test.done();
// duplicate subscription
serviceBusService.createSubscription(topicName, subscriptionName1, function (subscriptionError, duplicateSubscription) {
test.notEqual(subscriptionError, null);
test.equal(duplicateSubscription, null);

test.done();
});
});
});
});
Expand Down Expand Up @@ -1144,13 +1150,13 @@ module.exports = testCase(
falseFilter: 'Number=2'
};

serviceBusService.createRule('FakeTopic', 'FakeSubscription', ruleName1, function (invalidCreateError, rule) {
serviceBusService.createRule('FakeTopic', 'FakeSubscription', ruleName1, function (invalidCreateError, invalidRule1) {
test.notEqual(invalidCreateError, null);
test.equal(rule, null);
test.equal(invalidRule1, null);

serviceBusService.createRule(topicName, 'FakeSubscription', ruleName1, function (invalidCreateError2, rule2) {
serviceBusService.createRule(topicName, 'FakeSubscription', ruleName1, function (invalidCreateError2, invalidRule2) {
test.notEqual(invalidCreateError2, null);
test.equal(rule2, null);
test.equal(invalidRule2, null);

serviceBusService.createTopic(topicName, function (createError, topic) {
test.equal(createError, null);
Expand Down Expand Up @@ -1193,6 +1199,146 @@ module.exports = testCase(
});
},

testSqlExpressionFilter: function (test) {
var topicName = testutil.generateId(topicNamesPrefix, topicNames);
var subscriptionName1 = testutil.generateId(subscriptionNamesPrefix, subscriptionNames);
var subscriptionName2 = testutil.generateId(subscriptionNamesPrefix, subscriptionNames);

var messageText1 = 'hi there topic';
var messageText2 = 'hi there topic again';

var ruleName = testutil.generateId(ruleNamesPrefix, ruleNames);
var ruleOptions = {
sqlExpressionFilter: 'property=1'
};

serviceBusService.createTopic(topicName, function (createTopicError) {
test.equal(createTopicError, null);

serviceBusService.createSubscription(topicName, subscriptionName1, function (createSubscriptionError1) {
test.equal(createSubscriptionError1, null);

serviceBusService.createSubscription(topicName, subscriptionName2, function (createSubscriptionError2) {
test.equal(createSubscriptionError2, null);

serviceBusService.deleteRule(topicName, subscriptionName1, '$Default', function (deleteRuleError) {
test.equal(deleteRuleError, null);

serviceBusService.createRule(topicName, subscriptionName1, ruleName, ruleOptions, function(createRuleError) {
test.equal(createRuleError, null);

// non matching property
serviceBusService.sendTopicMessage(topicName, { body: messageText1, customProperties: { property: 2 } }, function(sendError1) {
test.equal(sendError1, null);

serviceBusService.receiveSubscriptionMessage(topicName, subscriptionName1, function(receiveError1, receiveMessage1) {
test.notEqual(receiveError1, null); // Nothing to receive
test.equal(receiveMessage1, null);

// matching property
serviceBusService.sendTopicMessage(topicName, { body: messageText2, customProperties: { property: 1 } }, function(sendError2) {
test.equal(sendError2, null);

serviceBusService.receiveSubscriptionMessage(topicName, subscriptionName1, function(receiveError2, receiveMessage2) {
test.equal(receiveError2, null);
test.notEqual(receiveMessage2, null);
test.equal(receiveMessage2.body, messageText2);

// subscription 2 can receive both messages
serviceBusService.receiveSubscriptionMessage(topicName, subscriptionName2, function(receiveError3, receiveMessage3) {
test.equal(receiveError3, null);
test.notEqual(receiveMessage3, null);
test.equal(receiveMessage3.body, messageText1);

serviceBusService.receiveSubscriptionMessage(topicName, subscriptionName2, function(receiveError4, receiveMessage4) {
test.equal(receiveError4, null);
test.notEqual(receiveMessage4, null);
test.equal(receiveMessage4.body, messageText2);

test.done();
});
});
});
});
});
});
});
});
});
});
});
},

testCorrelationIdFilter: function (test) {
var topicName = testutil.generateId(topicNamesPrefix, topicNames);
var subscriptionName1 = testutil.generateId(subscriptionNamesPrefix, subscriptionNames);
var subscriptionName2 = testutil.generateId(subscriptionNamesPrefix, subscriptionNames);

var messageText1 = 'hi there topic';
var messageText2 = 'hi there topic again';

var ruleName = testutil.generateId(ruleNamesPrefix, ruleNames);
var ruleOptions = {
correlationIdFilter: 'myid'
};

serviceBusService.createTopic(topicName, function (createTopicError) {
test.equal(createTopicError, null);

serviceBusService.createSubscription(topicName, subscriptionName1, function (createSubscriptionError1) {
test.equal(createSubscriptionError1, null);

serviceBusService.createSubscription(topicName, subscriptionName2, function (createSubscriptionError2) {
test.equal(createSubscriptionError2, null);

serviceBusService.deleteRule(topicName, subscriptionName1, '$Default', function (deleteRuleError) {
test.equal(deleteRuleError, null);

serviceBusService.createRule(topicName, subscriptionName1, ruleName, ruleOptions, function (createRuleError) {
test.equal(createRuleError, null);

// non matching property
serviceBusService.sendTopicMessage(topicName, { body: messageText1, brokerProperties: { CorrelationId: 'otherid'} }, function (sendError1) {
test.equal(sendError1, null);

serviceBusService.receiveSubscriptionMessage(topicName, subscriptionName1, function (receiveError1, receiveMessage1) {
test.notEqual(receiveError1, null); // Nothing to receive
test.equal(receiveMessage1, null);

// matching property
serviceBusService.sendTopicMessage(topicName, { body: messageText2, brokerProperties: { CorrelationId: 'myid'} }, function (sendError2) {
test.equal(sendError2, null);

serviceBusService.receiveSubscriptionMessage(topicName, subscriptionName1, function (receiveError2, receiveMessage2) {
test.equal(receiveError2, null);
test.notEqual(receiveMessage2, null);
test.equal(receiveMessage2.body, messageText2);

// subscription 2 can receive both messages
serviceBusService.receiveSubscriptionMessage(topicName, subscriptionName2, function (receiveError3, receiveMessage3) {
test.equal(receiveError3, null);
test.notEqual(receiveMessage3, null);
test.equal(receiveMessage3.body, messageText1);

serviceBusService.receiveSubscriptionMessage(topicName, subscriptionName2, function (receiveError4, receiveMessage4) {
test.equal(receiveError4, null);
test.notEqual(receiveMessage4, null);
test.equal(receiveMessage4.body, messageText2);

test.done();
});
});
});
});
});
});
});
});
});
});
});
},

testDeleteRule: function (test) {
var topicName = testutil.generateId(topicNamesPrefix, topicNames);
var subscriptionName = testutil.generateId(subscriptionNamesPrefix, subscriptionNames);
Expand Down

0 comments on commit e0128d7

Please sign in to comment.