2 ============LICENSE_START==========================================
3 ===================================================================
4 Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
6 Modification Copyright (C) 2018 IBM.
7 ===================================================================
9 Unless otherwise specified, all software contained herein is licensed
10 under the Apache License, Version 2.0 (the License);
11 you may not use this software except in compliance with the License.
12 You may obtain a copy of the License at
14 http://www.apache.org/licenses/LICENSE-2.0
16 Unless required by applicable law or agreed to in writing, software
17 distributed under the License is distributed on an "AS IS" BASIS,
18 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 See the License for the specific language governing permissions and
20 limitations under the License.
22 ECOMP is a trademark and service mark of AT&T Intellectual Property.
23 ============LICENSE_END============================================
27 /* tslint:disable:no-unused-variable */
29 import {inject, TestBed} from '@angular/core/testing';
30 import {ParameterDefinitionService} from './parameter-definition.service';
31 import {NotificationsService} from 'angular2-notifications';
32 import {MappingEditorService} from '../../../shared/services/mapping-editor.service';
33 import {HttpUtilService} from '../../../shared/services/httpUtil/http-util.service';
34 import {UtilityService} from '../../../shared/services/utilityService/utility.service';
35 import {ParamShareService} from '../../../shared/services/paramShare.service';
44 describe('ParameterDefinitionService', () => {
46 let httpUtilService = new MockService();
47 TestBed.configureTestingModule({
48 providers: [ParameterDefinitionService, NotificationsService, MappingEditorService, ParamShareService, HttpUtilService, UtilityService,
49 {provide: HttpUtilService, useValue: httpUtilService}]
53 it('should create a service...', inject([ParameterDefinitionService], (service: ParameterDefinitionService) => {
54 expect(service).toBeTruthy();
57 it('should remove unwanted values from PD object...', inject([ParameterDefinitionService], (service: ParameterDefinitionService) => {
59 'vnf-parameter-list': [{
60 'ruleTypeValues': 'ruleTypeValues',
61 'showFilterFields': 'showFilterFields',
62 'enableFilterByValue': 'enableFilterByValue'
66 expect(service.removeUnwantedvalues(obj)).toEqual({'vnf-parameter-list': [{}]});
70 it('populateDataUponSource...', inject([ParameterDefinitionService], (service: ParameterDefinitionService) => {
71 let obj = [{'source': 'A&AI', 'ruleType': 'vm-name-list'}];
73 expect(service.populateDataUponSource(obj));
76 it('populateDataUponSource...', inject([ParameterDefinitionService], (service: ParameterDefinitionService) => {
77 let obj = [{'source': 'Manual', 'ruleType': 'vm-name-list'}];
79 expect(service.populateDataUponSource(obj));
82 it('populateDataUponSource...', inject([ParameterDefinitionService], (service: ParameterDefinitionService) => {
83 let obj = [{'source': 'Something', 'ruleType': 'vm-name-list'}];
85 expect(service.populateDataUponSource(obj));
89 it('populateDataUponSource...', inject([ParameterDefinitionService], (service: ParameterDefinitionService) => {
90 let obj = [{'source': 'Something', 'ruleType': 'vm-name-list'}];
92 expect(service.populatePD(obj));
95 it('processPDfile...', inject([ParameterDefinitionService], (service: ParameterDefinitionService)=> {
96 let yaml = "---\nkind: Property Definition\nversion: V1\nvnf-parameter-list:\n- name: LICENSE_KEY\n type: null\n description: null\n required: null\n default: null\n source: Manual\n rule-type: null\n request-keys: null\n response-keys: null";
97 let expectedPD = [{"name":"LICENSE_KEY","type":null,"description":null,"required":null,"default":null,"source":"Manual","rule-type":null,
98 "request-keys":[{"key-name":null,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null}],"response-keys":[{"key-name":null
99 ,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null}],"ruleTypeValues":[null]}];
101 expect(service.processPDfile("testfile.yaml", yaml)).toEqual(expectedPD);
105 it('processKeyFile...', inject([ParameterDefinitionService, ParamShareService], (service: ParameterDefinitionService, paramShareService: ParamShareService)=> {
106 let keyFile = "PARAMVALUE|SOURCE|RULETYPE|KEY1|VALUE1|KEY2|VALUE2|KEY3|VALUE3\nvalue1|INSTAR|interface_ip_address|UniqueKeyName1|addressfqdn123|UniqueKeyValue|m001ssc001p1n001v001|FieldKeyName|ipaddress_v4\nvalue2|INSTAR|interface_ip_address|UniqueKeyName2|addressfqdnAsgar1|UniqueKeyValue|m001ssc001p1n001v002|FieldKeyName|ipaddress_v4";
107 let expectedPD = [{"name":"name1","type":null,"description":null,"required":null,"default":null,"source":"Manual","rule-type":null,
108 "request-keys":[{"key-name":null,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null}],"response-keys":[{"key-name":null
109 ,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null}],"ruleTypeValues":[null]}];
110 localStorage['paramsContent'] = "{ \"name1\":\"value1\",\"name2\":\"value2\"}";
111 paramShareService.setSessionParamData(expectedPD)
112 expect(service.processKeyFile("testfile.txt", keyFile)).toEqual(expectedPD);
116 it('destroy...', inject([ParameterDefinitionService, ParamShareService, MappingEditorService], (service: ParameterDefinitionService, paramShareService: ParamShareService, mappingEditorService: MappingEditorService)=> {
117 mappingEditorService.referenceNameObjects = {"action":"Configure","action-level":"vnf","scope":{"vnf-type":"ticktack","vnfc-type":""},"template":"Y","vm":[],"device-protocol":"CHEF","user-name":"","port-number":"","artifact-list":[{"artifact-name":"template_Configure_ticktack_0.0.1V.json","artifact-type":"config_template"},{"artifact-name":"pd_Configure_ticktack_0.0.1V.yaml","artifact-type":"parameter_definitions"}],"scopeType":"vnf-type"};
119 let displayParamObjects = [{"name":"name1","type":null,"description":null,"required":null,"default":null,"source":"Manual","rule-type":null,
120 "request-keys":[{"key-name":null,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null}],"response-keys":[{"key-name":null
121 ,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null},{"key-name":null,"key-value":null}],"ruleTypeValues":[null]}];
122 localStorage['paramsContent'] = "{ \"name1\":\"value1\",\"name2\":\"value2\"}";
124 let expectedPDdata = "---\nkind: \"Property Definition\"\nversion: V1\nvnf-parameter-list:\n- name: name1\n type: null\n description: null\n required: null\n default: null\n source: Manual\n rule-type: null\n request-keys: null\n response-keys: null\n";
125 let expectedAppData = {"input":{"design-request":{"request-id":"115599612197","action":"uploadArtifact","payload":{"userID": "test Usr","vnf-type" : "undefined","action" : "undefined","artifact-name" : "undefined","artifact-type" : "APPC-CONFIG","artifact-version" : "0.0.1","artifact-contents" : "---\nkind: \"Property Definition\"\nversion: V1\nvnf-parameter-list:\n- name: name1\n type: null\n description: null\n required: null\n default: null\n source: Manual\n rule-type: null\n request-keys: null\n response-keys: null\n"}}}};
126 service.appDataObject = {pd:""};
127 service.downloadDataObject = {pd:{pdData:"", pdFileName:""}};
128 service.destroy(displayParamObjects);
129 expect(mappingEditorService.downloadDataObject.pd.pdData).toEqual(expectedPDdata);
130 //expect(mappingEditorService.appDataObject.pd).toEqual(expectedAppData);
134 it('should test setValues method', inject([ParameterDefinitionService, ParamShareService, MappingEditorService], (service: ParameterDefinitionService, paramShareService: ParamShareService, mappingEditorService: MappingEditorService)=>{
135 service.setValues('vnfType-1', 'vnfcType-1', 'deviceProtocol', 'config', 'artifact-name');
136 expect(service.vnfType).toBe('vnfType-1');
137 expect(service.vnfcType).toBe('vnfcType-1');
138 expect(service.protocol).toBe('deviceProtocol');
139 expect(service.action).toBe('config');
140 expect(service.artifact_fileName).toBe('artifact-name');