Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 19 additions & 53 deletions packages/@azure/servicebus/data-plane/test/topicFilters.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ async function sendOrders(): Promise<void> {
color: `${element.Color}`,
quantity: element.Quantity,
priority: `${element.Priority}`
}
},
partitionKey: "dummy" //Ensures all messages go to same parition to make peek work reliably
};
await sender.send(message);
}
Expand All @@ -134,7 +135,11 @@ async function receiveOrders(
);

const msgsCheck = await checkWithTimeout(() => receivedMsgs.length === expectedMessageCount);
should.equal(msgsCheck, true, "Could not receive the messages in expected time.");
should.equal(
msgsCheck,
true,
`Expected ${expectedMessageCount}, but received ${receivedMsgs.length} messages`
);

await receiver.close();
should.equal(
Expand Down Expand Up @@ -463,10 +468,7 @@ describe("Default Rule - Send/Receive", function(): void {

it("Subscription with default filter receives all messages", async function(): Promise<void> {
await sendOrders();
const receivedMsgs = await receiveOrders(subscriptionClient, data.length);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, data.length, "Unexpected number of messages");
await receiveOrders(subscriptionClient, data.length);

await testPeekMsgsLength(subscriptionClient, 0);
});
Expand All @@ -485,34 +487,23 @@ describe("Boolean Filter - Send/Receive", function(): void {
bool: boolean,
client: SubscriptionClient,
expectedMessageCount: number
): Promise<ServiceBusMessage[]> {
): Promise<void> {
await subscriptionClient.addRule("BooleanFilter", bool);
const rules = await subscriptionClient.getRules();
should.equal(rules.length, 1, "Unexpected number of rules");
should.equal(rules[0].name, "BooleanFilter", "RuleName is different than expected");

await sendOrders();
const receivedMsgs = await receiveOrders(client, expectedMessageCount);

return receivedMsgs;
await receiveOrders(client, expectedMessageCount);
await testPeekMsgsLength(client, 0);
}

it("True boolean filter receives all messages", async function(): Promise<void> {
const receivedMsgs = await addFilterAndReceiveOrders(true, subscriptionClient, data.length);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, data.length, "Unexpected number of messages");

await testPeekMsgsLength(subscriptionClient, 0);
await addFilterAndReceiveOrders(true, subscriptionClient, data.length);
});

it("False boolean filter does not receive any messages", async function(): Promise<void> {
const receivedMsgs = await addFilterAndReceiveOrders(false, subscriptionClient, 0);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, 0, "Unexpected number of messages");

await testPeekMsgsLength(subscriptionClient, 0);
await addFilterAndReceiveOrders(false, subscriptionClient, 0);
});
});

Expand All @@ -530,10 +521,7 @@ describe("Sql Filter - Send/Receive", function(): void {

await sendOrders();
const dataLength = data.filter((x) => x.Color === "red").length;
const receivedMsgs = await receiveOrders(subscriptionClient, dataLength);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, dataLength, "Unexpected number of messages");
await receiveOrders(subscriptionClient, dataLength);

await testPeekMsgsLength(subscriptionClient, 0);
});
Expand All @@ -543,10 +531,7 @@ describe("Sql Filter - Send/Receive", function(): void {

await sendOrders();
const dataLength = data.filter((x) => x.Color === "red").length;
const receivedMsgs = await receiveOrders(subscriptionClient, dataLength);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, dataLength, "Unexpected number of messages");
await receiveOrders(subscriptionClient, dataLength);

await testPeekMsgsLength(subscriptionClient, 0);
});
Expand All @@ -556,10 +541,7 @@ describe("Sql Filter - Send/Receive", function(): void {

await sendOrders();
const dataLength = data.filter((x) => x.Color === "blue" && x.Quantity === 10).length;
const receivedMsgs = await receiveOrders(subscriptionClient, dataLength);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, dataLength, "Unexpected number of messages");
await receiveOrders(subscriptionClient, dataLength);

await testPeekMsgsLength(subscriptionClient, 0);
});
Expand All @@ -569,10 +551,7 @@ describe("Sql Filter - Send/Receive", function(): void {

await sendOrders();
const dataLength = data.filter((x) => x.Color === "blue" || x.Quantity === 10).length;
const receivedMsgs = await receiveOrders(subscriptionClient, dataLength);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, dataLength, "Unexpected number of messages");
await receiveOrders(subscriptionClient, dataLength);

await testPeekMsgsLength(subscriptionClient, 0);
});
Expand All @@ -584,8 +563,6 @@ describe("Sql Filter - Send/Receive", function(): void {
const dataLength = data.filter((x) => x.Color === "blue").length;
const receivedMsgs = await receiveOrders(subscriptionClient, dataLength);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, dataLength, "Unexpected number of messages");
if (receivedMsgs[0].userProperties) {
should.equal(
receivedMsgs[0].userProperties.priority,
Expand All @@ -608,8 +585,6 @@ describe("Sql Filter - Send/Receive", function(): void {
const dataLength = data.filter((x) => x.Color === "blue").length;
const receivedMsgs = await receiveOrders(subscriptionClient, dataLength);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, dataLength,"Unexpected number of messages");
if (receivedMsgs[0].userProperties) {
should.equal(receivedMsgs[0].userProperties.priority, "High",
"Priority of the receivedMessage is different than expected");
Expand All @@ -636,10 +611,7 @@ describe("Correlation Filter - Send/Receive", function(): void {

await sendOrders();
const dataLength = data.filter((x) => x.Color === "red").length;
const receivedMsgs = await receiveOrders(subscriptionClient, dataLength);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, dataLength, "Unexpected number of messages");
await receiveOrders(subscriptionClient, dataLength);

await testPeekMsgsLength(subscriptionClient, 0);
});
Expand All @@ -653,10 +625,7 @@ describe("Correlation Filter - Send/Receive", function(): void {

await sendOrders();
const dataLength = data.filter((x) => x.Color === "red").length;
const receivedMsgs = await receiveOrders(subscriptionClient, dataLength);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, dataLength, "Unexpected number of messages");
await receiveOrders(subscriptionClient, dataLength);

await testPeekMsgsLength(subscriptionClient, 0);
});
Expand All @@ -676,9 +645,6 @@ describe("Correlation Filter - Send/Receive", function(): void {
const dataLength = data.filter((x) => x.Color === "blue").length;
const receivedMsgs = await receiveOrders(subscriptionClient, dataLength);

should.equal(Array.isArray(receivedMsgs), true, "`ReceivedMessages` is not an array");
should.equal(receivedMsgs.length, dataLength, "Unexpected number of messages");

if (receivedMsgs[0].userProperties) {
should.equal(
receivedMsgs[0].userProperties.priority,
Expand Down