* VID
* ================================================================================
* Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2020 Nokia Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
beforeEach(inject(function (_$controller_) {
$notNeeded = jestMock.fn();
+ let lodash = require('lodash')
// mock ChangeManagementService
$changeManagementService = jestMock.fn();
changeManagementService: $changeManagementService,
Upload: $notNeeded,
$log: $notNeeded,
- _: $notNeeded,
+ _: lodash,
COMPONENT: $flags,
VIDCONFIGURATION: $notNeeded,
DataService: $notNeeded,
// when
return $controller.loadWorkFlows().then(() => {
expect($controller.workflows).toContain('inPlaceSoftwareUpdate');
- expect($controller.localWorkflowsParameters).toBeUndefined();
+ expect($controller.localWorkflowsParameters).toEqual(new Map());
});
});
return $controller.loadWorkFlows()
.then(() => {
expect($controller.workflows).toEqual(["workflow 0"]);
- expect($controller.remoteWorkflowsParameters).toEqual(undefined);
+ expect($controller.remoteWorkflowsParameters).toEqual(new Map());
});
});
});
});
+ test('Verify get internal workflow parameters should return an empty list if type exist but mapped to undefined', () => {
+ // given
+ $featureFlags.isOn = jestMock.fn(() => false);
+ let getWorkflowsStub = Promise.resolve({"data": {"workflows": ["VNF Scale Out"]}});
+ let getLocalWorkflowsParametersStub = Promise.resolve({"data": undefined});
+
+ $controller.changeManagement.vnfNames = [{name: 'test1'}];
+ $changeManagementService.getWorkflows = () => getWorkflowsStub;
+ $changeManagementService.getLocalWorkflowParameter = () => getLocalWorkflowsParametersStub;
+ // when
+ return $controller.loadWorkFlows()
+ .then(() => {
+ let internalWorkFlowParameters = $controller.getInternalWorkFlowParameters("VNF Scale Out", "FILE");
+ expect(internalWorkFlowParameters).toEqual([]);
+ });
+ });
+
test('Verify get internal workflow parameters should return a list if such workflow and type exist', () => {
// given
$featureFlags.isOn = jestMock.fn(() => false);
expect(internalWorkFlowParameters).toEqual(result);
});
});
+
+ test('Verify get remote workflow should call internal service for params when workflow is native', () =>{
+ let getWorkflowsStub = Promise.resolve({"data": {"workflows": ["workflow 0"]}});
+ let getLocalWorkflowsParametersStub = Promise.resolve({"data":{
+ "parameterDefinitions": [
+ {
+ "id": 1,
+ "name": "Configuration Parameters",
+ "required": true,
+ "type": "text",
+ "pattern": ".*",
+ "msgOnPatternError": null,
+ "msgOnContentError": null,
+ "acceptableFileType": null
+ }
+ ],
+ }});
+ let getSOWorkflowsPromiseStub = Promise.resolve({"data":[{
+
+ "id": "ab6478e4-ea33-3346-ac12-ab121484a333",
+ "workflowName": "inPlaceSoftwareUpdate",
+ "name": "inPlaceSoftwareUpdate",
+ "source": "native",
+ "workflowInputParameters": [
+ ]
+ }]
+ });
+
+ $controller.changeManagement.vnfNames = [{modelVersionId: 'test1', name:'test'}];
+ $changeManagementService.getWorkflows = () => getWorkflowsStub;
+ $changeManagementService.getLocalWorkflowParameter = () => getLocalWorkflowsParametersStub;
+ $changeManagementService.getSOWorkflows = () => getSOWorkflowsPromiseStub;
+
+ return $controller.loadWorkFlows().then(() => {
+ expect($controller.workflows).toContain('inPlaceSoftwareUpdate');
+ expect($controller.localWorkflowsParameters.get('inPlaceSoftwareUpdate')).toEqual([{
+ "id": 1,
+ "name": "Configuration Parameters",
+ "required": true,
+ "type": "text",
+ "pattern": ".*",
+ "msgOnPatternError": null,
+ "msgOnContentError": null,
+ "acceptableFileType": null
+ }]);
+ });
+});
+
+ test('Verify that vm.searchVNFs return only generic-vnfs with relation to vserver', () => {
+ // given
+ $controller.changeManagement.serviceType = [];
+ let getVnfsByCustomerIdAndServiceType = Promise.resolve({"data":
+ { "results" : [
+ { "id": "1",
+ "node-type": "generic-vnf",
+ "properties": {
+ "nf-role": "vLB"
+ },
+ "related-to": [
+ { "id": "11",
+ "node-type": "vf-module"
+ },
+ { "id": "12",
+ "node-type": "tenant"
+ }
+ ]
+ },
+ { "id": "2",
+ "node-type": "generic-vnf",
+ "properties": {
+ "nf-role": "vLB"
+ },
+ "related-to": [
+ { "id": "21",
+ "node-type": "tenant"
+ }
+ ]
+ },
+ { "id": "3",
+ "node-type": "generic-vnf",
+ "properties": {
+ "nf-role": "vLB"
+ },
+ "related-to": [
+ { "id": "31",
+ "node-type": "vf-module"
+ },
+ { "id": "32",
+ "node-type": "tenant"
+ },
+ { "id": "33",
+ "node-type": "vserver"
+ }
+ ]
+ },
+ { "id": "11",
+ "node-type": "vf-module",
+ "related-to": [
+ { "id": "111",
+ "node-type": "vserver"
+ }
+ ]
+ },
+ { "id": "31",
+ "node-type": "vf-module",
+ "related-to": [
+ { "id": "311",
+ "node-type": "vserver"
+ }
+ ]
+ }
+ ]
+ }
+ });
+ let expectedVnfs = [
+ {
+ "id": "1",
+ "node-type": "generic-vnf",
+ "properties": {"nf-role": "vLB"},
+ "related-to": [
+ {"id": "11", "node-type": "vf-module"},
+ {"id": "12", "node-type": "tenant"}]},
+ {
+ "id": "3",
+ "node-type": "generic-vnf",
+ "properties": {"nf-role": "vLB"},
+ "related-to": [
+ {"id": "31", "node-type": "vf-module"},
+ {"id": "32", "node-type": "tenant"},
+ {"id": "33", "node-type": "vserver"}
+ ]}];
+ $aaiService.getVnfsByCustomerIdAndServiceType = () => getVnfsByCustomerIdAndServiceType;
+
+ // when
+ $controller.searchVNFs().then(() => {
+ expect($controller.vnfs).toHaveLength(2);
+ expect($controller.vnfs).toEqual(expectedVnfs);
+ });
+ });
});