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";
98 "name": "LICENSE_KEY", "type": null, "description": null, "required": null, "default": null, "source": "Manual", "rule-type": null,
99 "request-keys": [{ "key-name": null, "key-value": null }, { "key-name": null, "key-value": null }, { "key-name": null, "key-value": null }], "response-keys": [{
102 }, { "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]
105 expect(service.processPDfile("testfile.yaml", yaml)).toEqual(expectedPD);
109 it('processKeyFile...', inject([ParameterDefinitionService, ParamShareService], (service: ParameterDefinitionService, paramShareService: ParamShareService) => {
110 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";
112 "name": "name1", "type": null, "description": null, "required": null, "default": null, "source": "Manual", "rule-type": null,
113 "request-keys": [{ "key-name": null, "key-value": null }, { "key-name": null, "key-value": null }, { "key-name": null, "key-value": null }], "response-keys": [{
116 }, { "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]
118 localStorage['paramsContent'] = "{ \"name1\":\"value1\",\"name2\":\"value2\"}";
119 paramShareService.setSessionParamData(expectedPD)
120 expect(service.processKeyFile("testfile.txt", keyFile)).toEqual(expectedPD);
124 it('destroy...', inject([ParameterDefinitionService, ParamShareService, MappingEditorService], (service: ParameterDefinitionService, paramShareService: ParamShareService, mappingEditorService: MappingEditorService) => {
125 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" };
127 let displayParamObjects = [{
128 "name": "name1", "type": null, "description": null, "required": null, "default": null, "source": "Manual", "rule-type": null,
129 "request-keys": [{ "key-name": null, "key-value": null }, { "key-name": null, "key-value": null }, { "key-name": null, "key-value": null }], "response-keys": [{
132 }, { "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]
134 localStorage['paramsContent'] = "{ \"name1\":\"value1\",\"name2\":\"value2\"}";
136 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";
137 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" } } } };
138 service.appDataObject = { pd: "" };
139 service.downloadDataObject = { pd: { pdData: "", pdFileName: "" } };
140 service.destroy(displayParamObjects);
141 expect(mappingEditorService.downloadDataObject.pd.pdData).toEqual(expectedPDdata);
142 //expect(mappingEditorService.appDataObject.pd).toEqual(expectedAppData);
146 it('should test setValues method', inject([ParameterDefinitionService, ParamShareService, MappingEditorService], (service: ParameterDefinitionService, paramShareService: ParamShareService, mappingEditorService: MappingEditorService) => {
147 service.setValues('vnfType-1', 'vnfcType-1', 'deviceProtocol', 'config', 'artifact-name');
148 expect(service.vnfType).toBe('vnfType-1');
149 expect(service.vnfcType).toBe('vnfcType-1');
150 expect(service.protocol).toBe('deviceProtocol');
151 expect(service.action).toBe('config');
152 expect(service.artifact_fileName).toBe('artifact-name');
155 it('should test processResponseKeys method', inject([ParameterDefinitionService, ParamShareService, MappingEditorService], (service: ParameterDefinitionService, paramShareService: ParamShareService, mappingEditorService: MappingEditorService) => {
157 'response-keys': [{ 'key-name': 'keyName', 'key-value': 'keyValue' },
158 { 'key-name': 'keyName', 'key-value': 'keyValue' },
159 { 'key-name': 'keyName', 'key-value': 'keyValue' },
160 { 'key-name': 'keyName', 'key-value': 'keyValue' },
161 { 'key-name': 'keyName', 'key-value': 'keyValue' }]
163 service.processResponseKeys(saveModel);