UNPKG

reliable-zeromq

Version:

A collection of reliable zeromq messaging constructs

45 lines 4.67 kB
"use strict"; 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==