aws-crt
Version:
NodeJS/browser bindings to the aws-c-* libraries
269 lines • 11.7 kB
JavaScript
"use strict";
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.protocolAdapterApiCallSequenceContainsApiCalls = exports.protocolAdapterApiCallSequenceContainsApiCall = exports.subscriptionManagerEventSequenceContainsEvents = exports.subscriptionManagerEventSequenceContainsEvent = exports.MockProtocolAdapter = void 0;
var protocol_adapter = __importStar(require("./protocol_adapter"));
var event_1 = require("../../common/event");
var MockProtocolAdapter = /** @class */ (function (_super) {
__extends(MockProtocolAdapter, _super);
function MockProtocolAdapter(options) {
var _this = _super.call(this) || this;
_this.options = options;
_this.apiCalls = new Array();
_this.connectionState = protocol_adapter.ConnectionState.Disconnected;
return _this;
}
// ProtocolAdapter API
MockProtocolAdapter.prototype.close = function () {
};
MockProtocolAdapter.prototype.publish = function (publishOptions) {
this.apiCalls.push({
methodName: "publish",
args: publishOptions
});
if (this.options && this.options.publishHandler) {
this.options.publishHandler(this, publishOptions, this.options.publishHandlerContext);
}
};
MockProtocolAdapter.prototype.subscribe = function (subscribeOptions) {
this.apiCalls.push({
methodName: "subscribe",
args: subscribeOptions
});
if (this.options && this.options.subscribeHandler) {
this.options.subscribeHandler(this, subscribeOptions, this.options.subscribeHandlerContext);
}
};
MockProtocolAdapter.prototype.unsubscribe = function (unsubscribeOptions) {
this.apiCalls.push({
methodName: "unsubscribe",
args: unsubscribeOptions
});
if (this.options && this.options.unsubscribeHandler) {
this.options.unsubscribeHandler(this, unsubscribeOptions, this.options.unsubscribeHandlerContext);
}
};
// Internal Testing API
MockProtocolAdapter.prototype.connect = function (joinedSession) {
if (this.connectionState === protocol_adapter.ConnectionState.Disconnected) {
this.connectionState = protocol_adapter.ConnectionState.Connected;
this.emit('connectionStatus', {
status: protocol_adapter.ConnectionState.Connected,
joinedSession: joinedSession
});
}
};
MockProtocolAdapter.prototype.disconnect = function () {
if (this.connectionState === protocol_adapter.ConnectionState.Connected) {
this.connectionState = protocol_adapter.ConnectionState.Disconnected;
this.emit('connectionStatus', {
status: protocol_adapter.ConnectionState.Disconnected,
});
}
};
MockProtocolAdapter.prototype.getApiCalls = function () {
return this.apiCalls;
};
MockProtocolAdapter.prototype.getConnectionState = function () {
return this.connectionState;
};
MockProtocolAdapter.prototype.completeSubscribe = function (topicFilter, err, retryable) {
var event = {
topicFilter: topicFilter
};
if (err !== undefined) {
event.err = err;
}
if (retryable !== undefined) {
event.retryable = retryable;
}
// TODO - rework tests to pass with deferred event emission
this.emit(protocol_adapter.ProtocolClientAdapter.SUBSCRIBE_COMPLETION, event);
};
MockProtocolAdapter.prototype.completeUnsubscribe = function (topicFilter, err, retryable) {
var event = {
topicFilter: topicFilter
};
if (err !== undefined) {
event.err = err;
}
if (retryable !== undefined) {
event.retryable = retryable;
}
// TODO - rework tests to pass with deferred event emission
this.emit(protocol_adapter.ProtocolClientAdapter.UNSUBSCRIBE_COMPLETION, event);
};
MockProtocolAdapter.prototype.completePublish = function (completionData, err) {
var event = {
completionData: completionData
};
if (err) {
event.err = err;
}
this.emit(protocol_adapter.ProtocolClientAdapter.PUBLISH_COMPLETION, event);
};
MockProtocolAdapter.prototype.triggerIncomingPublish = function (topic, payload) {
var event = {
topic: topic,
payload: payload
};
this.emit(protocol_adapter.ProtocolClientAdapter.INCOMING_PUBLISH, event);
};
MockProtocolAdapter.prototype.on = function (event, listener) {
_super.prototype.on.call(this, event, listener);
return this;
};
return MockProtocolAdapter;
}(event_1.BufferedEventEmitter));
exports.MockProtocolAdapter = MockProtocolAdapter;
;
function subscriptionManagerEventSequenceContainsEvent(eventSequence, expectedEvent) {
var e_1, _a;
try {
for (var eventSequence_1 = __values(eventSequence), eventSequence_1_1 = eventSequence_1.next(); !eventSequence_1_1.done; eventSequence_1_1 = eventSequence_1.next()) {
var event_2 = eventSequence_1_1.value;
if (event_2.type !== expectedEvent.type) {
continue;
}
if (expectedEvent.data.hasOwnProperty('operationId')) {
if (!event_2.data.hasOwnProperty('operationId') || expectedEvent.data.operationId !== event_2.data.operationId) {
continue;
}
}
if (expectedEvent.data.hasOwnProperty('topicFilter')) {
if (!event_2.data.hasOwnProperty('topicFilter') || expectedEvent.data.topicFilter !== event_2.data.topicFilter) {
continue;
}
}
return true;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (eventSequence_1_1 && !eventSequence_1_1.done && (_a = eventSequence_1.return)) _a.call(eventSequence_1);
}
finally { if (e_1) throw e_1.error; }
}
return false;
}
exports.subscriptionManagerEventSequenceContainsEvent = subscriptionManagerEventSequenceContainsEvent;
function subscriptionManagerEventSequenceContainsEvents(eventSequence, expectedEvents) {
var e_2, _a;
try {
for (var expectedEvents_1 = __values(expectedEvents), expectedEvents_1_1 = expectedEvents_1.next(); !expectedEvents_1_1.done; expectedEvents_1_1 = expectedEvents_1.next()) {
var expectedEvent = expectedEvents_1_1.value;
if (!subscriptionManagerEventSequenceContainsEvent(eventSequence, expectedEvent)) {
return false;
}
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (expectedEvents_1_1 && !expectedEvents_1_1.done && (_a = expectedEvents_1.return)) _a.call(expectedEvents_1);
}
finally { if (e_2) throw e_2.error; }
}
return true;
}
exports.subscriptionManagerEventSequenceContainsEvents = subscriptionManagerEventSequenceContainsEvents;
function protocolAdapterApiCallSequenceContainsApiCall(apiCallSequence, expectedApiCall) {
var e_3, _a;
try {
for (var apiCallSequence_1 = __values(apiCallSequence), apiCallSequence_1_1 = apiCallSequence_1.next(); !apiCallSequence_1_1.done; apiCallSequence_1_1 = apiCallSequence_1.next()) {
var apiCall = apiCallSequence_1_1.value;
if (apiCall.methodName !== expectedApiCall.methodName) {
continue;
}
if (expectedApiCall.args.hasOwnProperty('topicFilter')) {
if (!apiCall.args.hasOwnProperty('topicFilter') || expectedApiCall.args.topicFilter !== apiCall.args.topicFilter) {
continue;
}
}
return true;
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (apiCallSequence_1_1 && !apiCallSequence_1_1.done && (_a = apiCallSequence_1.return)) _a.call(apiCallSequence_1);
}
finally { if (e_3) throw e_3.error; }
}
return false;
}
exports.protocolAdapterApiCallSequenceContainsApiCall = protocolAdapterApiCallSequenceContainsApiCall;
function protocolAdapterApiCallSequenceContainsApiCalls(apiCallSequence, expectedApiCalls) {
var e_4, _a;
try {
for (var expectedApiCalls_1 = __values(expectedApiCalls), expectedApiCalls_1_1 = expectedApiCalls_1.next(); !expectedApiCalls_1_1.done; expectedApiCalls_1_1 = expectedApiCalls_1.next()) {
var expectedApiCall = expectedApiCalls_1_1.value;
if (!protocolAdapterApiCallSequenceContainsApiCall(apiCallSequence, expectedApiCall)) {
return false;
}
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (expectedApiCalls_1_1 && !expectedApiCalls_1_1.done && (_a = expectedApiCalls_1.return)) _a.call(expectedApiCalls_1);
}
finally { if (e_4) throw e_4.error; }
}
return true;
}
exports.protocolAdapterApiCallSequenceContainsApiCalls = protocolAdapterApiCallSequenceContainsApiCalls;
//# sourceMappingURL=protocol_adapter_mock.js.map