diff --git a/server/applicationPattern/applicationPattern/onfModel/services/ForwardingConstructAutomationServices.js b/server/applicationPattern/applicationPattern/onfModel/services/ForwardingConstructAutomationServices.js index 368029fd..50513566 100644 --- a/server/applicationPattern/applicationPattern/onfModel/services/ForwardingConstructAutomationServices.js +++ b/server/applicationPattern/applicationPattern/onfModel/services/ForwardingConstructAutomationServices.js @@ -117,7 +117,7 @@ function automateForwardingsAsync(forwardingName, attributeList, context, operat let _isForwardingConstructIsProcessSnippet = isForwardingConstructIsProcessSnippet( forwardingConstruct); if (_isForwardingConstructIsProcessSnippet) { - automateProcessSnippetAsync(forwardingConstruct, + await automateProcessSnippetAsync(forwardingConstruct, attributeList, context, user, @@ -126,7 +126,7 @@ function automateForwardingsAsync(forwardingName, attributeList, context, operat customerJourney ); } else { - automateSubscriptionsAsync(forwardingConstruct, + await automateSubscriptionsAsync(forwardingConstruct, attributeList, user, xCorrelator, @@ -164,7 +164,7 @@ function automateForwardingsWithoutInputAsync(forwardingName, attributeList, con let _isForwardingConstructIsProcessSnippet = isForwardingConstructIsProcessSnippet( forwardingConstruct); if (_isForwardingConstructIsProcessSnippet) { - automateProcessSnippetAsync(forwardingConstruct, + await automateProcessSnippetAsync(forwardingConstruct, attributeList, context, user, @@ -173,7 +173,7 @@ function automateForwardingsWithoutInputAsync(forwardingName, attributeList, con customerJourney ); } else { - automateSubscriptionsAsync(forwardingConstruct, + await automateSubscriptionsAsync(forwardingConstruct, attributeList, user, xCorrelator, diff --git a/server/applicationPattern/applicationPattern/onfModel/services/ForwardingConstructAutomationServices.test.js b/server/applicationPattern/applicationPattern/onfModel/services/ForwardingConstructAutomationServices.test.js new file mode 100644 index 00000000..5f873971 --- /dev/null +++ b/server/applicationPattern/applicationPattern/onfModel/services/ForwardingConstructAutomationServices.test.js @@ -0,0 +1,271 @@ +const ForwardingConstructAutomationServices = require('./ForwardingConstructAutomationServices'); +const OperationServerInterface = require('../models/layerProtocols/OperationServerInterface'); +const ForwardingDomain = require('../models/ForwardingDomain'); +const Event = require('../../rest/client/eventDispatcher'); +const LogicalTerminationPoint = require('../models/LogicalTerminationPoint'); +const HttpClientInterface = require('../models/layerProtocols/HttpClientInterface'); + + +jest.mock('../../rest/client/eventDispatcher'); + +const fc = { + "uuid": "ro-2-0-1-op-fc-bm-001", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "PromptForEmbeddingCausesRequestForBequeathingData" + } + ], + "fc-port": [ + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-0-1-op-s-bm-001" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-0-1-op-c-bm-or-1-0-0-000" + } + ] +}; + +const fcForProcessSnippet = { + "uuid": "ro-2-0-1-op-fc-is-000", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_PROCESS_SNIPPET" + }, + { + "value-name": "ForwardingName", + "value": "TypeApprovalCausesRequestForEmbedding" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-0-1-op-s-is-001" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-0-1-op-s-is-002" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-0-1-op-s-is-003" + }, + { + "local-id": "201", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-0-1-op-c-im-tar-1-0-0-000" + } + ] +}; + +const forwardingAutomationInputList = [ + { + forwardingName: 'PromptForEmbeddingCausesRequestForBequeathingData', + attributeList: { + 'new-application-name': 'RegistryOffice', + 'new-application-release': '2.0.1', + 'new-application-protocol': 'HTTP', + 'new-application-address': { 'ipv-4-address': '1.1.3.8' }, + 'new-application-port': 3008 + }, + context: undefined + }, + { + forwardingName: 'ServiceRequestCausesLtpUpdateRequest', + attributeList: { + uuid: 'ro-2-0-1-tcp-c-or-1-0-0-000', + 'ltp-direction': 'core-model-1-4:TERMINATION_DIRECTION_SINK', + 'client-ltp': [ + 'ro-2-0-1-http-c-or-1-0-0-000' + ], + 'server-ltp': [], + 'layer-protocol': [ + { + 'local-id': '0', + 'layer-protocol-name': 'tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER', + 'tcp-client-interface-1-0:tcp-client-interface-pac': { + 'tcp-client-interface-configuration': { + 'remote-protocol': 'tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP', + 'remote-address': { + 'ip-address': { + 'ipv-4-address': '1.1.3.1' + } + }, + 'remote-port': 3001 + } + } + } + ] + }, + context: 'TypeApprovalRegister2.0.1' + } + +]; + +describe("automateForwardingConstructAsync", () => { + test("automateForwardingConstructAsync - success when FC is Process Snippet", async () => { + const operationServerName = '/v1/embed-yourself'; + const httpRequestBody = { + "client-ltp": [ + "ro-2-0-1-http-c-or-1-0-0-000" + ], + "layer-protocol": [ + { + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "local-id": "0", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-address": { + "ip-address": { + "ipv-4-address": "1.1.3.1" + } + }, + "remote-port": 3001, + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP" + } + } + } + ], + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "server-ltp": [], + "uuid": "ro-2-0-1-tcp-c-or-1-0-0-000" + }; + const xCorrelator = "550e8400-e29b-11d4-a716-446655440000"; + jest.spyOn(OperationServerInterface, 'getOperationServerUuidAsync').mockImplementation(() => 'ro-2-0-1-op-s-is-003'); + jest.spyOn(ForwardingDomain, 'getForwardingConstructForTheForwardingNameAsync').mockImplementation(() => fcForProcessSnippet); + jest.spyOn(LogicalTerminationPoint, 'getServerLtpListAsync').mockReturnValue(["ro-2-0-1-http-c-tar-1-0-0-000"]); + jest.spyOn(HttpClientInterface, 'getApplicationNameAsync').mockReturnValue('TypeApprovalRegister'); + jest.spyOn(HttpClientInterface, 'getReleaseNumberAsync').mockReturnValue('2.0.1'); + jest.spyOn(Event, 'dispatchEvent').mockReturnValue(true); + + await ForwardingConstructAutomationServices.automateForwardingConstructAsync( + operationServerName, forwardingAutomationInputList, 'User Name', + '550e8400-e29b-11d4-a716-446655440000', '1.3.1', 'Unknown value'); + + expect(Event.dispatchEvent).toHaveBeenCalledTimes(1); + expect(Event.dispatchEvent).toHaveBeenCalledWith( + "ro-2-0-1-op-c-im-tar-1-0-0-000", + expect.objectContaining(httpRequestBody), + "User Name", + xCorrelator, + "1.3.1.1", + "Unknown value" + ); + }); + + test("automateForwardingConstructAsync - success when FC is Process Subscription", async () => { + const operationServerName = '/v1/embed-yourself'; + const httpRequestBody = { + "client-ltp": [ + "ro-2-0-1-http-c-or-1-0-0-000" + ], + "layer-protocol": [ + { + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "local-id": "0", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-address": { + "ip-address": { + "ipv-4-address": "1.1.3.1" + } + }, + "remote-port": 3001, + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP" + } + } + } + ], + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "server-ltp": [], + "uuid": "ro-2-0-1-tcp-c-or-1-0-0-000" + }; + const xCorrelator = "550e8400-e29b-11d4-a716-446655440000"; + + jest.spyOn(OperationServerInterface, 'getOperationServerUuidAsync').mockImplementation(() => 'ro-2-0-1-op-s-bm-001'); + jest.spyOn(ForwardingDomain, 'getForwardingConstructForTheForwardingNameAsync').mockImplementation(() => fc); + jest.spyOn(Event, 'dispatchEvent').mockImplementation(() => true); + + await ForwardingConstructAutomationServices.automateForwardingConstructAsync( + operationServerName, forwardingAutomationInputList, 'User Name', + '550e8400-e29b-11d4-a716-446655440000', '1.3.1', 'Unknown value'); + expect(Event.dispatchEvent).toHaveBeenCalledTimes(2); + expect(Event.dispatchEvent).toHaveBeenCalledWith( + "ro-2-0-1-op-c-bm-or-1-0-0-000", + expect.objectContaining(httpRequestBody), + "User Name", + xCorrelator, + "1.3.1.2", + "Unknown value" + ); + }); + +}) + +describe("automateForwardingConstructWithoutInputAsync", () => { + test("automateForwardingConstructWithoutInputAsync - successful when FC is Process Snippet", async () => { + const httpRequestBody = { + "client-ltp": [ + "ro-2-0-1-http-c-or-1-0-0-000" + ], + "layer-protocol": [ + { + "layer-protocol-name": "tcp-client-interface-1-0:LAYER_PROTOCOL_NAME_TYPE_TCP_LAYER", + "local-id": "0", + "tcp-client-interface-1-0:tcp-client-interface-pac": { + "tcp-client-interface-configuration": { + "remote-address": { + "ip-address": { + "ipv-4-address": "1.1.3.1" + } + }, + "remote-port": 3001, + "remote-protocol": "tcp-client-interface-1-0:PROTOCOL_TYPE_HTTP" + } + } + } + ], + "ltp-direction": "core-model-1-4:TERMINATION_DIRECTION_SINK", + "server-ltp": [], + "uuid": "ro-2-0-1-tcp-c-or-1-0-0-000" + }; + const xCorrelator = "550e8400-e29b-11d4-a716-446655440000"; + + jest.spyOn(ForwardingDomain, 'getForwardingConstructForTheForwardingNameAsync').mockImplementation(() => fcForProcessSnippet); + jest.spyOn(LogicalTerminationPoint, 'getServerLtpListAsync').mockReturnValue(["ro-2-0-1-http-c-tar-1-0-0-000"]) + jest.spyOn(HttpClientInterface, 'getApplicationNameAsync').mockReturnValue('TypeApprovalRegister') + jest.spyOn(HttpClientInterface, 'getReleaseNumberAsync').mockReturnValue('2.0.1'); + jest.spyOn(Event, 'dispatchEvent').mockImplementation(() => true); + + await ForwardingConstructAutomationServices.automateForwardingConstructWithoutInputAsync( + forwardingAutomationInputList, 'User Name', '550e8400-e29b-11d4-a716-446655440000', + '1.3.1', 'Unknown value'); + + expect(Event.dispatchEvent).toHaveBeenCalledTimes(1); + expect(Event.dispatchEvent).toHaveBeenCalledWith( + "ro-2-0-1-op-c-im-tar-1-0-0-000", + expect.objectContaining(httpRequestBody), + "User Name", + xCorrelator, + "1.3.1.1", + "Unknown value" + ); + }); + +}) + +afterEach(() => { + jest.resetAllMocks(); +}); diff --git a/server/applicationPattern/applicationPattern/onfModel/services/ForwardingConstructConfigurationServices.test.js b/server/applicationPattern/applicationPattern/onfModel/services/ForwardingConstructConfigurationServices.test.js new file mode 100644 index 00000000..fe66f841 --- /dev/null +++ b/server/applicationPattern/applicationPattern/onfModel/services/ForwardingConstructConfigurationServices.test.js @@ -0,0 +1,254 @@ +const ForwardingConstructConfigurationServices = require('./ForwardingConstructConfigurationServices'); +const ForwardingConstructConfigurationStatus = require('./models/forwardingConstruct/ConfigurationStatus'); +const OperationServerInterface = require('../models/layerProtocols/OperationServerInterface'); +const ForwardingDomain = require('../models/ForwardingDomain'); +const ConfigurationStatus = require('./models/ConfigurationStatus'); +const ForwardingConstruct = require('../models/ForwardingConstruct'); +const LogicalTerminationPoint = require('../models/LogicalTerminationPoint'); +const HttpClientInterface = require('../models/layerProtocols/HttpClientInterface'); +const fcPort = require('../models/FcPort'); + +const fc = { + uuid: 'ro-2-0-1-op-fc-bm-106', + name: [ + { + 'value-name': 'ForwardingKind', + value: 'core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET' + }, + { + 'value-name': 'ForwardingName', + value: 'PromptForBequeathingDataCausesRequestForDeregisteringOfOldRelease' + } + ], + 'fc-port': [ + { + 'local-id': '000', + 'port-direction': 'core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT', + 'logical-termination-point': 'ro-2-0-1-op-s-bm-001' + }, + { + 'local-id': '100', + 'port-direction': 'core-model-1-4:PORT_DIRECTION_TYPE_INPUT', + 'logical-termination-point': 'ro-2-0-1-op-s-im-000' + }, + { + 'local-id': '200', + 'port-direction': 'core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT', + 'logical-termination-point': 'ro-2-0-1-op-c-bm-ro-2-0-1-002' + } + ] +}; + +const fcForSubscription = { + "uuid": "ro-2-0-1-op-fc-is-007", + "name": [ + { + "value-name": "ForwardingKind", + "value": "core-model-1-4:FORWARDING_KIND_TYPE_SUBSCRIPTION" + }, + { + "value-name": "ForwardingName", + "value": "PromptingNewReleaseForUpdatingServerCausesRequestForBroadcastingInfoAboutBackwardCompatibleUpdateOfOperation" + } + ], + "fc-port": [ + { + "local-id": "000", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-0-1-op-s-is-008" + }, + { + "local-id": "001", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT", + "logical-termination-point": "ro-2-0-1-op-s-bm-004" + }, + { + "local-id": "100", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_INPUT", + "logical-termination-point": "ro-2-0-1-op-s-is-003" + }, + { + "local-id": "200", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-0-1-op-c-im-eatl-1-0-0-003" + }, + { + "local-id": "201", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-0-1-op-c-im-ol-1-0-0-003" + }, + { + "local-id": "202", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-0-1-op-c-im-aa-1-0-0-003" + }, + { + "local-id": "203", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-0-1-op-c-im-alt-1-0-0-003" + }, + { + "local-id": "204", + "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", + "logical-termination-point": "ro-2-0-1-op-c-im-okm-1-0-0-003" + } + ] +}; + +const fcListArray = [{ + uuid: 'ro-2-0-1-op-fc-bm-106', + name: [ + { + 'value-name': 'ForwardingKind', + value: 'core-model-1-4:FORWARDING_KIND_TYPE_INVARIANT_PROCESS_SNIPPET' + }, + { + 'value-name': 'ForwardingName', + value: 'PromptForBequeathingDataCausesRequestForDeregisteringOfOldRelease' + } + ], + 'fc-port': [ + { + 'local-id': '000', + 'port-direction': 'core-model-1-4:PORT_DIRECTION_TYPE_MANAGEMENT', + 'logical-termination-point': 'ro-2-0-1-op-s-bm-001' + }, + { + 'local-id': '100', + 'port-direction': 'core-model-1-4:PORT_DIRECTION_TYPE_INPUT', + 'logical-termination-point': 'ro-2-0-1-op-s-im-000' + }, + { + 'local-id': '200', + 'port-direction': 'core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT', + 'logical-termination-point': 'ro-2-0-1-op-c-bm-ro-2-0-1-002' + } + ] +}]; +const forwardingConfigurationInputList = [ + { + forwardingName: 'PromptForBequeathingDataCausesRequestForDeregisteringOfOldRelease', + operationClientUuid: 'ro-2-0-1-op-c-bm-ro-2-0-1-002' + }, + { + forwardingName: 'PromptForBequeathingDataCausesRequestForBroadcastingInfoAboutServerReplacement', + operationClientUuid: 'ro-2-0-1-op-c-bm-ro-2-0-1-001' + }, + { + forwardingName: 'PromptingNewReleaseForUpdatingServerCausesRequestForBroadcastingInfoAboutBackwardCompatibleUpdateOfOperation', + operationClientUuid: 'ro-2-0-1-op-c-bm-ro-2-0-1-003' + } +]; +const forwardingUnConfigurationInputList = [ + { + forwardingName: 'PromptForBequeathingDataCausesRequestForDeregisteringOfOldRelease', + operationClientUuid: 'ro-2-0-1-op-c-bm-ro-2-0-1-002' + }, + { + forwardingName: 'PromptForBequeathingDataCausesRequestForBroadcastingInfoAboutServerReplacement', + operationClientUuid: 'ro-2-0-1-op-c-bm-ro-2-0-1-001' + }, + { + forwardingName: '', + operationClientUuid: 'ro-2-0-1-op-c-im-eatl-1-0-0-003' + } +]; + +describe("configureForwardingConstructAsync", () => { + test("configureForwardingConstructAsync - Add Port Async", async () => { + const operationServerName = '/v1/embed-yourself'; + + jest.spyOn(OperationServerInterface, 'getOperationServerUuidAsync').mockImplementation(() => 'ro-2-0-1-op-s-is-008'); + jest.spyOn(ForwardingDomain, 'getForwardingConstructForTheForwardingNameAsync').mockImplementation(() => fcForSubscription); + jest.spyOn(LogicalTerminationPoint, 'getServerLtpListAsync') + .mockReturnValueOnce(["ro-2-0-1-http-s-000"]) + .mockReturnValue(["ro-2-0-1-op-c-im-ol-1-0-0-003"]); + jest.spyOn(HttpClientInterface, 'getReleaseNumberAsync') + .mockReturnValueOnce('2.0.1') + .mockReturnValue('2.0.2'); + jest.spyOn(HttpClientInterface, 'getApplicationNameAsync').mockReturnValue('RegistryOffice') + jest.spyOn(fcPort, 'setLogicalTerminationPointAsync').mockImplementation(() => true); + jest.spyOn(ForwardingConstruct, 'addFcPortAsync').mockImplementation(() => true); + + const res = await ForwardingConstructConfigurationServices.configureForwardingConstructAsync( + operationServerName, forwardingConfigurationInputList); + + const forwardingConstructConfigurationStatusList = [new ConfigurationStatus("ro-2-0-1-op-fc-is-007", '', true)]; + const fcPortConfigurationStatusList = [ + new ConfigurationStatus("ro-2-0-1-op-fc-is-007", '204', true), + new ConfigurationStatus("ro-2-0-1-op-fc-is-007", '204', true) + ]; + expect(res).toStrictEqual(new ForwardingConstructConfigurationStatus( + forwardingConstructConfigurationStatusList, + fcPortConfigurationStatusList + )); + + }); + + test("configureForwardingConstructAsync - successful", async () => { + const operationServerName = '/v1/embed-yourself'; + + jest.spyOn(OperationServerInterface, 'getOperationServerUuidAsync').mockImplementation(() => 'ro-2-0-1-op-s-bm-001'); + jest.spyOn(ForwardingDomain, 'getForwardingConstructForTheForwardingNameAsync').mockImplementation(() => fc); + jest.spyOn(fcPort, 'setLogicalTerminationPointAsync').mockImplementation(() => true); + + const res = await ForwardingConstructConfigurationServices.configureForwardingConstructAsync( + operationServerName, forwardingConfigurationInputList); + + const forwardingConstructConfigurationStatusList = [new ConfigurationStatus("ro-2-0-1-op-fc-bm-106", '', false)]; + const fcPortConfigurationStatusList = [ + new ConfigurationStatus("ro-2-0-1-op-fc-bm-106", '200', true), + new ConfigurationStatus("ro-2-0-1-op-fc-bm-106", '200', true) + ]; + expect(res).toStrictEqual(new ForwardingConstructConfigurationStatus(forwardingConstructConfigurationStatusList, fcPortConfigurationStatusList)); + + }); + +}) + +describe("unConfigureForwardingConstructAsync", () => { + test("unConfigureForwardingConstructAsync - successful", async () => { + const operationServerName = '/v1/embed-yourself'; + + jest.spyOn(OperationServerInterface, 'getOperationServerUuidAsync').mockImplementation(() => 'ro-2-0-1-op-s-bm-001'); + jest.spyOn(ForwardingDomain, 'getForwardingConstructListForTheFcPortAsync').mockImplementation(() => fcListArray); + jest.spyOn(fcPort, 'setLogicalTerminationPointAsync').mockImplementation(() => true); + + const res = await ForwardingConstructConfigurationServices.unConfigureForwardingConstructAsync( + operationServerName, forwardingConfigurationInputList); + + const forwardingConstructConfigurationStatusList = []; + const fcPortConfigurationStatusList = [ + new ConfigurationStatus("ro-2-0-1-op-fc-bm-106", '200', true) + ]; + expect(res).toStrictEqual(new ForwardingConstructConfigurationStatus( + forwardingConstructConfigurationStatusList, + fcPortConfigurationStatusList + )); + }); + + test("unConfigureForwardingConstructAsync - delete port successful", async () => { + const operationServerName = '/v1/embed-yourself'; + + jest.spyOn(OperationServerInterface, 'getOperationServerUuidAsync').mockImplementation(() => 'ro-2-0-1-op-s-bm-001'); + jest.spyOn(ForwardingDomain, 'getForwardingConstructListForTheFcPortAsync').mockImplementation(() => [fcForSubscription]); + jest.spyOn(ForwardingConstruct, 'deleteFcPortAsync').mockImplementation(() => true); + + const res = await ForwardingConstructConfigurationServices.unConfigureForwardingConstructAsync( + operationServerName, forwardingUnConfigurationInputList); + + const forwardingConstructConfigurationStatusList = []; + const fcPortConfigurationStatusList = [ + new ConfigurationStatus("ro-2-0-1-op-fc-is-007", '200', true) + ]; + expect(res).toStrictEqual(new ForwardingConstructConfigurationStatus( + forwardingConstructConfigurationStatusList, + fcPortConfigurationStatusList + )); + }); + +}) + +afterEach(() => { + jest.resetAllMocks(); +});