reliable-zeromq
Version:
A collection of reliable zeromq messaging constructs
45 lines • 4.67 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ava_1 = __importDefault(require("ava"));
const TopicEntry_1 = __importDefault(require("../../../Src/ZMQSubscriber/TopicEntry"));
const test = ava_1.default;
test("Process Heartbeats & Publishes", (t) => {
const lSubscriptionEndpoints = {
PublisherAddress: "",
RequestAddress: "",
};
const lTopic = "MyTopicA";
const lRecoveredMessages = [];
const lRecoveryHandler = (aEndpoint, aTopic, aMessageIds) => {
t.deepEqual(aEndpoint, lSubscriptionEndpoints);
t.is(aTopic, lTopic);
lRecoveredMessages.push(aMessageIds);
};
const lTopicEntry = new TopicEntry_1.default(lSubscriptionEndpoints, lTopic, lRecoveryHandler);
const lCallbackCalls = [];
lTopicEntry.Callbacks.set(0, (aMessage) => {
lCallbackCalls.push(aMessage);
});
lTopicEntry.ProcessHeartbeatMessage(2); // Recover 0, 1 & 2 (nonce starts from zero)
lTopicEntry.ProcessPublishMessage(5, "MySixthMessage"); // Call Callback : Recover 3 & 4
lTopicEntry.ProcessPublishMessage(4, "MyFifthMessage"); // Call Callback : No Recover
lTopicEntry.ProcessHeartbeatMessage(8); // Recover 6, 7, & 8
lTopicEntry.ProcessHeartbeatMessage(8); // No Recover
lTopicEntry.ProcessPublishMessage(9, "MyTenthMessage"); // Call Callback : No Recover
t.deepEqual(lRecoveredMessages[0], [0, 1, 2]);
t.deepEqual(lRecoveredMessages[1], [3, 4]);
// 3rd call ignored
t.deepEqual(lRecoveredMessages[2], [6, 7, 8]);
// 4th call ignored
// 5th call ignored
t.is(lCallbackCalls.length, 3);
t.is(lCallbackCalls[0], "MySixthMessage");
t.is(lCallbackCalls[1], "MyFifthMessage");
t.is(lCallbackCalls[2], "MyTenthMessage");
t.is(lTopicEntry.Nonce, 9);
t.is(lTopicEntry.Callbacks.size, 1);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9waWNFbnRyeS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vVGVzdC9TcmMvWk1RU3Vic2NyaWJlci9Ub3BpY0VudHJ5LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSw4Q0FBZ0Q7QUFHaEQsdUZBQStEO0FBVS9ELE1BQU0sSUFBSSxHQUFnQyxhQUFzQyxDQUFDO0FBRWpGLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDLENBQWlDLEVBQVEsRUFBRTtJQUUvRSxNQUFNLHNCQUFzQixHQUM1QjtRQUNJLGdCQUFnQixFQUFFLEVBQUU7UUFDcEIsY0FBYyxFQUFFLEVBQUU7S0FDckIsQ0FBQztJQUNGLE1BQU0sTUFBTSxHQUFXLFVBQVUsQ0FBQztJQUVsQyxNQUFNLGtCQUFrQixHQUFlLEVBQUUsQ0FBQztJQUMxQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsU0FBaUMsRUFBRSxNQUFjLEVBQUUsV0FBcUIsRUFBUSxFQUFFO1FBRXhHLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFckIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQztJQUVGLE1BQU0sV0FBVyxHQUFlLElBQUksb0JBQVUsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUVqRyxNQUFNLGNBQWMsR0FBYSxFQUFFLENBQUM7SUFDcEMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBZ0IsRUFBRSxFQUFFO1FBRTlDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0Q0FBNEM7SUFDcEYsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUcsZ0NBQWdDO0lBQzFGLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFHLDZCQUE2QjtJQUN2RixXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7SUFDNUQsV0FBVyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYTtJQUNyRCxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBRyw2QkFBNkI7SUFFdkYsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsbUJBQW1CO0lBQ25CLENBQUMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUVuQixDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFFMUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDLENBQUMifQ==