2 ============LICENSE_START==========================================
3 ===================================================================
4 Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
6 Copyright (C) 2018 IBM Intellectual Property. All rights reserved.
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============================================
26 /* tslint:disable:no-unused-variable */
27 import {async, ComponentFixture, TestBed, inject} from '@angular/core/testing';
28 import {NO_ERRORS_SCHEMA} from '@angular/core';
29 import {FormsModule} from '@angular/forms';
30 import { NgxSpinnerService } from 'ngx-spinner';
31 import {NotificationService} from '../../../shared/services/notification.service';
32 import {ParamShareService} from '../../../shared/services/paramShare.service';
33 import {MappingEditorService} from '../../../shared/services/mapping-editor.service';
34 import {ModalComponent} from '../../../shared/modal/modal.component';
35 import {DialogService} from 'ng2-bootstrap-modal';
36 import {ConfirmComponent} from '../../../shared/confirmModal/confirm.component';
37 import {RouterTestingModule} from '@angular/router/testing';
38 import {HttpUtilService} from '../../../shared/services/httpUtil/http-util.service';
39 import {UtilityService} from '../../../shared/services/utilityService/utility.service';
41 import {BuildDesignComponent} from '../build-artifacts.component';
42 import {NotificationsService} from 'angular2-notifications';
43 import {HomeComponent} from '../../../home/home/home.component';
44 import {LogoutComponent} from '../../../shared/components/logout/logout.component';
45 import {HelpComponent} from '../../../shared/components/help/help/help.component';
46 import {AboutUsComponent} from '../../../about-us/aboutus.component';
47 import {TestComponent} from '../../../test/test.component';
48 import {ParameterComponent} from './parameter.component';
49 import {HttpModule} from '@angular/http';
50 import { NgProgress } from 'ngx-progressbar';
51 import { APIService } from "../../../shared/services/cdt.apicall";
55 describe('ParameterComponent', () => {
56 let component: ParameterComponent;
57 let fixture: ComponentFixture<ParameterComponent>;
61 component: HomeComponent
64 loadChildren: './vnfs/vnfs.module#VnfsModule'
67 component: TestComponent
71 component: HelpComponent
74 component: AboutUsComponent
77 component: LogoutComponent
84 beforeEach(async(() => {
85 TestBed.configureTestingModule({
86 declarations: [ParameterComponent, HomeComponent, TestComponent, HelpComponent, AboutUsComponent, LogoutComponent],
87 schemas: [NO_ERRORS_SCHEMA],
88 imports: [HttpModule, FormsModule, RouterTestingModule.withRoutes(routes)],
89 providers: [APIService, UtilityService, NgProgress, BuildDesignComponent, ParamShareService, DialogService, NotificationService, HttpUtilService, MappingEditorService, NotificationsService, NgxSpinnerService]
95 fixture = TestBed.createComponent(ParameterComponent);
96 component = fixture.componentInstance;
97 fixture.detectChanges();
100 it('should create', () => {
101 expect(component).toBeTruthy();
104 it('should call ngOnInit...', inject([MappingEditorService, ParamShareService], (mappingEditorService: MappingEditorService, paramShareService:ParamShareService) => {
106 mappingEditorService.latestAction = {"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"};
107 mappingEditorService.appDataObject = {"value" : ''};
108 mappingEditorService.downloadDataObject = {"value": ''};
109 mappingEditorService.identifier = "identifier";
110 component.ngOnInit();
114 it('should test selectedNavItem method...', () => {
115 component.selectedNavItem('item');
116 expect(component.item).toEqual('item');
119 it('should set the selectedUploadType value', ()=>{
120 let obj = {value : 'type1', display : 'display1'};
121 component.uploadTypes = [obj];
122 component.showUpload();
123 expect(component.selectedUploadType.toString()).toEqual("type1");
127 it('should retrieve PD from APPC...', () => {
128 expect(component.getPD());
131 it('should infer some information from reference object...', inject([MappingEditorService], (mappingEditorService: MappingEditorService) => {
132 mappingEditorService.latestAction = {"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"};
133 expect(component.ngOnInit());
134 expect(component.vnfType).toEqual('ticktack');
135 expect(component.vnfcType).toEqual('');
136 expect(component.protocol).toEqual('CHEF');
137 expect(component.action).toEqual('Configure');
138 expect(component.artifact_fileName).toEqual('pd_Configure_ticktack_0.0.1V.yaml');
142 it('should retrieve the PD from cache...', inject([MappingEditorService, ParamShareService], (mappingEditorService: MappingEditorService, paramShareService:ParamShareService) => {
143 mappingEditorService.latestAction = {"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"};
144 paramShareService.setSessionParamData("TEST PD INFORMATION");
145 expect(component.ngAfterViewInit()).toEqual([]);
149 it('should set the ruletypes for source A&AI...', inject([MappingEditorService, ParamShareService], (mappingEditorService: MappingEditorService, paramShareService:ParamShareService) => {
150 let obj = {"name":"name1","type":"ipv4-address","description":"xxx","required":"true","default":null,"source":"A&AI","rule-type":null,"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,"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]}
152 expect(component.sourceChanged(data, obj));
153 expect(obj.ruleTypeValues).toEqual([null, 'vnf-name', 'vm-name-list', 'vnfc-name-list', 'vnf-oam-ipv4-address', 'vnfc-oam-ipv4-address-list']);
156 it('should set the ruletypes for source Manual...', inject([MappingEditorService, ParamShareService], (mappingEditorService: MappingEditorService, paramShareService:ParamShareService) => {
157 let obj = {"name":"name1","type":"ipv4-address","description":"xxx","required":"true","default":null,"source":"A&AI","rule-type":null,"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,"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]}
159 expect(component.sourceChanged(data, obj));
160 expect(obj.ruleTypeValues).toEqual([null]);
161 expect(obj['rule-type']).toBeNull();
164 it('should set the ruletypes for source INSTAR...', inject([MappingEditorService, ParamShareService], (mappingEditorService: MappingEditorService, paramShareService:ParamShareService) => {
165 let obj = {"name":"name1","type":"ipv4-address","description":"xxx","required":"true","default":null,"source":"A&AI","rule-type":null,"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,"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]}
167 expect(component.sourceChanged(data, obj));
168 expect(obj.ruleTypeValues).toEqual([null]);
171 it('should set the ruletypes for ruletype null...', inject([MappingEditorService, ParamShareService], (mappingEditorService: MappingEditorService, paramShareService:ParamShareService) => {
172 let obj = {"name":"name1","type":"ipv4-address","description":"xxx","required":"true","default":null,"source":"A&AI","rule-type":null,"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,"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]}
174 expect(component.ruleTypeChanged(data, obj));
175 expect(obj['showFilterFields']).toBeFalsy();
176 expect(obj['rule-type']).toBeNull();
179 it('should set the ruletypes for ruletype vm-name-list...', inject([MappingEditorService, ParamShareService], (mappingEditorService: MappingEditorService, paramShareService:ParamShareService) => {
180 let obj = {"name":"name1","type":"ipv4-address","description":"xxx","required":"true","default":null,"source":"A&AI","rule-type":null,"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,"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]}
181 let data = 'vm-name-list';
182 let sourceObject = component.ruleTypeConfiguaration[data];
184 expect(component.ruleTypeChanged(data, obj));
185 expect(obj['showFilterFields']).toBeTruthy();
186 expect(obj['rule-type']).toBeNull();
188 for (let x = 0; x < sourceObject.length; x++) {
189 expect(obj['response-keys'][x]['key-name']).toEqual(sourceObject[x]['key-name']);
190 expect(obj['response-keys'][x]['key-value']).toEqual(sourceObject[x]['key-value']);
195 it('should set the ruletypes for ruletype vnf-name...', inject([MappingEditorService, ParamShareService], (mappingEditorService: MappingEditorService, paramShareService:ParamShareService) => {
196 let obj = {"name":"name1","type":"ipv4-address","description":"xxx","required":"true","default":null,"source":"A&AI","rule-type":null,"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,"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]}
197 let data = "vnf-name";
198 expect(component.ruleTypeChanged(data, obj));
199 expect(obj['showFilterFields']).toBeFalsy();
200 expect(obj['response-keys'][3]['key-name']).toBeNull;
201 expect(obj['response-keys'][3]['key-value']).toBeNull;
202 expect(obj['response-keys'][4]['key-name']).toBeNull;
203 expect(obj['response-keys'][4]['key-value']).toBeNull;
206 it('should read file key file content...', () => {
207 let file = new File(["testing"], "foo.XLS", {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});
208 let uploadType = 'keyfile';
209 let input = {files: [file]};
211 component.fileChange(input, uploadType);
215 it('should read file key file content...', () => {
216 let file = new File(["testing"], "foo.XLS", {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});
217 let uploadType = 'pdfile';
218 let input = {files: [file]};
220 component.fileChange(input, uploadType);