aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/test
diff options
context:
space:
mode:
authorsj108s <sj108s@us.att.com>2018-03-13 20:29:58 +0530
committersj108s <sj108s@us.att.com>2018-03-13 20:30:50 +0530
commitf1e61ce405cf11ea77fe98abd5e10f7ed2d72611 (patch)
tree0d6f464a3c8e275b2b74359f81282aaf589074fe /src/app/test
parent8ac6f161c2260e48a743df82e57b4ba24ce9795c (diff)
Fixed defects in test screen & updated test cases
Fixed few defects raised by ST in test screen and also updated test cases to improve coverage. Also,changed code to match onap standards, and rectfied grep code violations. Issue-ID: APPC-730 Change-Id: I0286c38eb4f76dc8c0253a4ccab721b3ccfeff9d Signed-off-by: sj108s <sj108s@us.att.com>
Diffstat (limited to 'src/app/test')
-rw-r--r--src/app/test/test.component.html25
-rw-r--r--src/app/test/test.component.spec.ts345
-rw-r--r--src/app/test/test.component.ts186
3 files changed, 370 insertions, 186 deletions
diff --git a/src/app/test/test.component.html b/src/app/test/test.component.html
index ad6ff7f..3519007 100644
--- a/src/app/test/test.component.html
+++ b/src/app/test/test.component.html
@@ -32,16 +32,6 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property.
<input class="form-control" type="text" disabled value="{{action}}" />
</div>
- <!-- <div class="col-lg-3 col-sm-6 col-md-3 col-xs-12">
- <label>Vnf Type:</label>
- <input class="form-control" type="text" disabled value="{{vnfType}}" />
-
- </div>
- <div class="col-lg-3 col-sm-6 col-md-3 col-xs-12">
- <label>Vnfc Type:</label>
- <input class="form-control" type="text" disabled value="{{vnfcType}}" />
-
- </div>-->
<div class="col-lg-3 col-sm-6 col-md-4 col-xs-12">
<label>Vnf Id:</label>
<input class="form-control" type="text" [(ngModel)]="this.actionIdentifiers['vnf-id']" />
@@ -54,11 +44,6 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property.
</div>
- <!-- <div class="col-lg-3 col-sm-6 col-md-3 col-xs-12">
- <label>VF-Module-Id(optional):</label>
- <input class="form-control" disabled type="text" value="{{this.actionIdentifiers['vmodule-id']}}" />
-
- </div>-->
<div class="col-12">
<div class="input-group">
@@ -113,14 +98,9 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property.
<div class="col-md-12">
<div class="row justify-content-center" style="padding-top:0.3cm">
-
- <!-- <button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent" type="button" (click)="clearLog()">Abort Test</button>&nbsp;&nbsp;&nbsp; -->
-
<button style="margin-left:6%;" [disabled]="!enableTestButton" class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary" type="submit" (click)="testVnf()">Execute Test
</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- <!-- <button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent" type="button" (click)="abortTest()">Abort Test</button> -->
- <!--button class="btn btn-primary" type="submit"> Save Revised Name/Value Pair to APPC</button-->
-
+
</div>
</div>
@@ -130,8 +110,7 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property.
</div>
<div style="padding-left:60%;padding-bottom:0.5cm">
- <!-- <a href="javascript:void(0)" style="color:darkblue; text-decoration: double; font-size: 15px;" (click)="download()">Download Raw Request/Response.</a>-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- <button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary" type="button" (click)="download()">Download Raw Request/Response
+ <button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary" type="button" [disabled]="!enableDownload" (click)="download()">Download Raw Request/Response
</button>
<button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent" type="button" [disabled]="!enableAbort" (click)="abortTest()">Abort Test
</button>
diff --git a/src/app/test/test.component.spec.ts b/src/app/test/test.component.spec.ts
index 8d96554..e07ff93 100644
--- a/src/app/test/test.component.spec.ts
+++ b/src/app/test/test.component.spec.ts
@@ -21,9 +21,6 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property.
============LICENSE_END============================================
*/
-/* tslint:disable:no-unused-variable */
-
-// Modules
import { async, ComponentFixture, TestBed,inject } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core';
@@ -31,23 +28,32 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { RouterTestingModule } from '@angular/router/testing';
import { SimpleNotificationsModule } from 'angular2-notifications';
import { Http, Response, Headers, RequestOptions, HttpModule } from '@angular/http';
+import { Observable } from 'rxjs/Observable';
+import { Subscription } from 'rxjs/Subscription';
+import 'rxjs/add/observable/from';
+import 'rxjs/add/observable/empty';
+import 'rxjs/add/observable/throw';
-// Component
import { TestComponent } from './test.component';
-
-// Services
import { NotificationService } from '../shared/services/notification.service';
import { ParamShareService } from '.././shared/services/paramShare.service';
import { MappingEditorService } from '../shared/services/mapping-editor.service';
import { HttpUtilService } from '../shared/services/httpUtil/http-util.service';
import { UtilityService } from '../shared/services/utilityService/utility.service';
+import { environment } from '../.././environments/environment';
import { NgProgress } from 'ngx-progressbar';
-import {NgProgressModule} from 'ngx-progressbar';
+import { NgProgressModule } from 'ngx-progressbar';
+
+class MockService {
+ doStuff() {
+ return this;
+ }
+}
describe( 'TestComponent', () => {
let component: TestComponent;
let fixture: ComponentFixture<TestComponent>;
-
+ let http = new MockService();
beforeEach(async(() => {
TestBed.configureTestingModule({
@@ -60,12 +66,13 @@ describe( 'TestComponent', () => {
NgProgressModule
],
providers: [
- NotificationService,
+ NotificationService,
ParamShareService,
MappingEditorService,
HttpUtilService,
UtilityService,
- NgProgress
+ NgProgress,
+ {provide: Http, useValue: http}
]
})
.compileComponents();
@@ -77,82 +84,300 @@ describe( 'TestComponent', () => {
fixture.detectChanges();
});
- it( 'should create', () => {
- expect(component).toBeTruthy();
- });
+ it('should ...', inject([HttpUtilService], (service: HttpUtilService) => {
+ let spy = spyOn(service, 'post').and.returnValue(Observable.empty());
+ fixture.detectChanges(); // onInit()
- // it('test', () => {
- // expect(2).toEqual(1)
- // });
+ component.pollTestStatus();
+
+ expect(service).toBeTruthy();
+ expect(spy).toHaveBeenCalled();
+ expect(spy.calls.any()).toBe(true, 'test');
+ }));
+
+ // Test download Method
+ describe('Test download Method', () => {
+ it('Should have download method', () => {
+ expect(component.download).toBeDefined();
+ });
+
+ it('test if apiRequest if true', inject( [SimpleNotificationsModule], (service: SimpleNotificationsModule) => {
+ component.apiRequest = '{"input":{"common-header":{"timestamp":"2018-03-05T07:41:14.329Z","api-ver":"2.00","originator-id":"CDT","request-id":"1520235674330","sub-request-id":"1520235674330","flags":{"mode":"NORMAL","force":"TRUE","ttl":3600}},"action":"ConfigModify","action-identifiers":{"vnf-id":"testVnf","vserver-id":"test"},"payload":""';
+ component.apiResponse = '';
+ component.action = 'ConfigModify';
+ component.actionIdentifiers['vnf-id'] = 'testVnf';
+ let fileName = 'test_' + component.action + '_' + component.actionIdentifiers['vnf-id'] + '_request';
+ let theJSON = component.apiRequest;
+ var blob = new Blob([theJSON], {
+ type: 'text/json'
+ });
+
+ component.download();
+ expect(service instanceof SimpleNotificationsModule).toBeTruthy();
+ expect(component.apiRequest).not.toBe('');
+ expect(fileName).not.toBe('');
+ expect(fileName).not.toBeNull();
+ expect(fileName).toContain('test_');
+ expect(fileName).toContain('_request');
+ expect(typeof (blob)).toBe('object');
- // it('test preparfilename', inject([MappingEditorService], (mappingEditorService: MappingEditorService) => {
- // // fixture = TestBed.createComponent(TestComponent);
- // // component = fixture.componentInstance;
- // mappingEditorService.latestAction=undefined
+ }));
- // expect(component.prepareFileName()).toBe(undefined);
- // }));
+ it('test method if apiResponse is true', () => {
+ component.apiResponse = '{"input":{"common-header":{"timestamp":"2018-03-05T07:41:14.329Z","api-ver":"2.00","originator-id":"CDT","request-id":"1520235674330","sub-request-id":"1520235674330","flags":{"mode":"NORMAL","force":"TRUE","ttl":3600}},"action":"ConfigModify","action-identifiers":{"vnf-id":"testvnf","vserver-id":"test"},"payload":""';
+ component.apiRequest = '';
+ component.action = 'ConfigModify';
+ component.actionIdentifiers['vnf-id'] = 'testvnf';
+ let fileName = 'test_' + component.action + '_' + component.actionIdentifiers['vnf-id'] + '_response';
+ let theJSON = component.apiRequest;
+ var blob = new Blob([theJSON], {
+ type: 'text/json'
+ });
+ component.download();
- it('Should have download method', () => {
- expect(component.download).toBeDefined();
+ expect(component.apiResponse).not.toBe('');
+ expect(fileName).not.toBe('');
+ expect(fileName).not.toBeNull();
+ expect(fileName).toContain('test_');
+ expect(fileName).toContain('_response');
+ expect(typeof (blob)).toBe('object');
+
+ });
});
// Test abortTest Method
- it('Should have abortTest method', () => {
- expect(component.abortTest).toBeDefined();
+ describe('Test abortTest Method', () => {
+ it('Should have abortTest method', () => {
+ expect(component.abortTest).toBeDefined();
+ });
+
+ it('Test abortTest Method', () => {
+ const temp = component.abortTest();
+ expect(component.enableBrowse).toBeTruthy();
+ expect(component.enableTestButton).toBeTruthy();
+ expect(component.enablePollButton).toBeTruthy();
+ });
});
- it('Test abortTest Method', () => {
- const temp = component.abortTest();
- expect(component.enableBrowse).toBeTruthy();
- expect(component.enableTestButton).toBeTruthy();
+ // Test excelBrowseOption Method
+ describe('Test excelBrowseOption Method', () => {
+ it('test excelBrowseOption', () => {
+ spyOn(component, 'excelBrowseOption');
+ let button = fixture.debugElement.query(By.css('#excelInputFile ~ button.browse'));
+ button.nativeElement.click();
+ expect(component.excelBrowseOption).toHaveBeenCalled()
+ });
});
- it('Should have excelBrowseOption method', () => {
- expect(component.excelBrowseOption).toBeDefined();
+ // Test Upload Method
+ describe('Test Upload Method', () => {
+ it('Should have upload method', () => {
+ expect(component.upload).toBeDefined();
+ });
+
+ it('should execute if file extension is XLS, XLSX', () => {
+ let fileExtension = 'XLS';
+ let event = { isTrusted: true, type: "change", target: {files: [{name:'foo.XLS', size: 500001}]} }
+ let reader = new FileReader();
+ spyOn(reader, 'onload');
+
+ component.upload(event);
+
+ expect(reader instanceof FileReader).toBeTruthy();
+ expect(reader.onload).toHaveBeenCalled();
+ expect(component.enableTestButton).toBeTruthy();
+ console.log('aaa',component.enableTestButton, component.uploadFileName);
+ });
+
+ it('should return an error if file extension is not XLS, XLSX', () => {
+ spyOn(component, 'upload');
+ let ele = fixture.debugElement.query(By.css('#filesparam'));
+ const target = { files: ['']};
+ component.uploadFileName = 'test.doc';
+ let fileExtension = 'DOC';
+ component.upload('change');
+
+ expect(target.files.length).toEqual(1)
+ expect(fileExtension).not.toBe('XLS');
+ expect(fileExtension).not.toBe('XLSX');
+ });
});
- it('Should have upload method', () => {
- expect(component.upload).toBeDefined();
+ // Test processUploadedFile Method
+ describe('Test processUploadedFile Method', () => {
+ it('should return valid payload', () => {
+ let data = [
+ {"TagName":"action","Value":"ConfigModify"},
+ {"List Name":"action-identifiers","TagName":"vserver-id","Value":"test"},
+ {"List Name":"payload","List Name_1":"request-parameters","TagName":"vnf-name","Value":"testVnf"},
+ {"List Name":"payload","List Name_1":"request-parameters","List Name_2":"[vm]","List Name_3":"vnfc","TagName":"vnfc-name","Value":"testVnfcName"},
+ {"List Name":"payload","List Name_1":"configuration-parameters","TagName":"testConfigParam","Value":"testConfigValue"}
+ ]
+
+ let payload = component.processUploadedFile(data);
+ });
});
- it('Should have constructTestPayload method', () => {
- expect(component.constructTestPayload).toBeDefined();
+ // Test uploadedFileResult Method
+ describe('Test uploadedFileResult', () => {
+ it('should return success message', inject([SimpleNotificationsModule],(service: SimpleNotificationsModule) => {
+ component.action = 'ConfigModify';
+ component.actionIdentifiers['vnf-id'] = 'testvnf';
+
+ component.uploadedFileResult();
+
+ expect(service instanceof SimpleNotificationsModule).toBeTruthy();
+ }));
+
+ it('should return error message', inject([SimpleNotificationsModule], (service: SimpleNotificationsModule) => {
+ component.action = '';
+ component.actionIdentifiers['vnf-id'] = '';
+
+ component.uploadedFileResult();
+
+ expect(service instanceof SimpleNotificationsModule).toBeTruthy();
+ }));
});
- it('Should have constructRequest method', () => {
- expect(component.constructRequest).toBeDefined();
+ // Test constructTestPayload Method
+ describe('Test constructTestPayload Method', () => {
+ //3rd , 4th columnd, tag name , tag value
+ it('Should have constructTestPayload method', () => {
+ expect(component.constructTestPayload).toBeDefined();
+ });
+
+ it('test if listName2, listName3 are undefined', () => {
+ let temp = component.constructTestPayload(undefined, undefined, 'vnfc-type', 'testvnfc');
+ expect(component.subPayload['vnfc-type']).toEqual('testvnfc')
+ });
+
+ it('test if lastName2 is not undefined', () => {
+ let temp = component.constructTestPayload(['vm'], undefined, 'vnfc-type', 'testvnfc');
+ expect(typeof(component.vmJson)).toEqual('object');
+ expect(typeof(component.vnfcJson)).toEqual('object');
+ expect(component.vmJson['vnfc-type']).toBe('testvnfc');
+ expect(component.flag).toBe(0);
+ });
+
+ it('test if lastNmae2, lastName3 are not undefined', () => {
+ let temp = component.constructTestPayload(['vm'], 'vnfc', 'vnfc-type', 'testvnfc');
+ expect(component.vnfcJson['vnfc-type']).toEqual('testvnfc');
+ expect(component.vmJson['vnfc']['vnfc-type']).toEqual('testvnfc');
+ expect(component.flag).toBe(1);
+ })
});
- it('Should have testVnf method', () => {
- expect(component.testVnf).toBeDefined();
+ // Test constructRequest Method
+ describe('Test constructRequest Method', () => {
+ it('Should have constructRequest method', () => {
+ expect(component.constructRequest).toBeDefined();
+ });
+
+ it('test method', () => {
+ let temp = component.constructRequest();
+ });
});
- it('Should have pollTestStatus method', () => {
- expect(component.pollTestStatus).toBeDefined();
+ // Test testVnf Method
+ describe('Test testVnf Method', () => {
+ it('Should have testVnf method', () => {
+ expect(component.testVnf).toBeDefined();
+ });
+
+ it('should return response on success', inject([HttpUtilService, NgProgress], (httpUtilService: HttpUtilService, ngProgress: NgProgress) => {
+ let spy = spyOn(httpUtilService, 'post').and.callFake( ({}) => {
+ return Observable.empty();
+ });
+ component.action = 'ConfigModify';
+
+ component.testVnf();
+ expect(component.enableBrowse).toBeFalsy()
+ expect(component.enableTestButton).toBeFalsy();
+ expect(component.enablePollButton).toBeFalsy();
+ expect(spy).toHaveBeenCalled();
+ }));
+
+ it('should return an error if fails', inject([HttpUtilService],( httpUtilService: HttpUtilService) => {
+ let error = 'Error in connecting to APPC Server';
+ let spy = spyOn(httpUtilService, 'post').and.returnValue(Observable.throw(error));
+ component.action = 'ConfigModify';
+
+ component.testVnf();
+
+ expect(spy).toHaveBeenCalled();
+ expect(component.enableBrowse).toBeTruthy();
+ expect(component.enableTestButton).toBeTruthy();
+ expect(component.enablePollButton).toBeTruthy();
+ expect(component.enableCounterDiv).toBeFalsy();
+ }));
+
+ it('test setTimeout', inject([NgProgress], (ngProgress: NgProgress) => {
+ let spy = spyOn(ngProgress, 'done');
+ component.action = 'ConfigModify';
+
+ component.testVnf();
+
+ }));
});
+ // Test pollTestStatus Method
+ describe('Test pollTestStatus Method', () => {
+ it('Should have pollTestStatus method', () => {
+ expect(component.pollTestStatus).toBeDefined();
+ });
- // Test getUrlEndPoint Method
- it('Should have getUrlEndPoint method', () => {
- expect(component.getUrlEndPoint).toBeDefined();
+ it('test method', () => {
+ let temp = component.pollTestStatus();
+ let requestId = new Date().getTime().toString();
+ let actionIdentifiers = 123456;
+ });
+
+ it('should call fake server', inject([HttpUtilService], (httpUtilService: HttpUtilService) => {
+ let spy = spyOn(httpUtilService, 'post').and.callFake(({}) => {
+ return Observable.empty();
+ });
+
+ component.pollTestStatus();
+
+ expect(spy).toHaveBeenCalled();
+ }));
+
+ it('should return an error if fails', inject([HttpUtilService], (httpUtilService: HttpUtilService) => {
+ let error = 'Error Connecting to APPC server';
+ let spy = spyOn(httpUtilService, 'post').and.callFake( ({}) => {
+ return Observable.throw(error);
+ });
+ component.requestId = null;
+ component.actionIdentifiers['vnf-id'] = false;
+
+ component.pollTestStatus();
+
+ expect(spy).toHaveBeenCalled();
+ }));
});
+
+ // Test getUrlEndPoint Method
+ describe('Test getUrlEndPoint Method', () => {
+ it('Should have getUrlEndPoint method', () => {
+ expect(component.getUrlEndPoint).toBeDefined();
+ });
- it('getUrlEndPoint Should return value', () => {
- expect(component.getUrlEndPoint('configmodify')).toEqual('config-modify');
- expect(component.getUrlEndPoint('configbackup')).toEqual('config-backup');
- expect(component.getUrlEndPoint('configrestore')).toEqual('config-restore');
- expect(component.getUrlEndPoint('healthcheck')).toEqual('health-check');
- expect(component.getUrlEndPoint('quiescetraffic')).toEqual('quiesce-traffic');
- expect(component.getUrlEndPoint('resumetraffic')).toEqual('resume-traffic');
- expect(component.getUrlEndPoint('startapplication')).toEqual('start-application');
- expect(component.getUrlEndPoint('stopapplication')).toEqual('stop-application');
- expect(component.getUrlEndPoint('upgradebackout')).toEqual('upgrade-backout');
- expect(component.getUrlEndPoint('upgradepostcheck')).toEqual('upgrade-post-check');
- expect(component.getUrlEndPoint('upgradeprecheck')).toEqual('upgrade-pre-check');
- expect(component.getUrlEndPoint('upgradesoftware')).toEqual('upgrade-software');
- expect(component.getUrlEndPoint('DeFaultCASE')).toEqual('defaultcase');
+ it('getUrlEndPoint Should return value', () => {
+ expect(component.getUrlEndPoint('configmodify')).toEqual('config-modify');
+ expect(component.getUrlEndPoint('configbackup')).toEqual('config-backup');
+ expect(component.getUrlEndPoint('configrestore')).toEqual('config-restore');
+ expect(component.getUrlEndPoint('healthcheck')).toEqual('health-check');
+ expect(component.getUrlEndPoint('quiescetraffic')).toEqual('quiesce-traffic');
+ expect(component.getUrlEndPoint('resumetraffic')).toEqual('resume-traffic');
+ expect(component.getUrlEndPoint('startapplication')).toEqual('start-application');
+ expect(component.getUrlEndPoint('stopapplication')).toEqual('stop-application');
+ expect(component.getUrlEndPoint('upgradebackout')).toEqual('upgrade-backout');
+ expect(component.getUrlEndPoint('upgradepostcheck')).toEqual('upgrade-post-check');
+ expect(component.getUrlEndPoint('upgradeprecheck')).toEqual('upgrade-pre-check');
+ expect(component.getUrlEndPoint('upgradesoftware')).toEqual('upgrade-software');
+ expect(component.getUrlEndPoint('DeFaultCASE')).toEqual('defaultcase');
+ });
});
-})
+}) \ No newline at end of file
diff --git a/src/app/test/test.component.ts b/src/app/test/test.component.ts
index 1874904..411b057 100644
--- a/src/app/test/test.component.ts
+++ b/src/app/test/test.component.ts
@@ -101,6 +101,7 @@ export class TestComponent implements OnInit {
public enablePollButton: boolean = true;
public pollCounter = 0;
public enableCounterDiv: boolean = false;
+ public enableDownload: boolean = false;
constructor(private location: Location, private activeRoutes: ActivatedRoute, private notificationService: NotificationService, private nService: NotificationsService, private router: Router, private paramShareService: ParamShareService, private mappingEditorService: MappingEditorService, private httpUtil: HttpUtilService,
private utiltiy: UtilityService, private ngProgress: NgProgress) {
@@ -112,20 +113,6 @@ export class TestComponent implements OnInit {
}
- prepareFileName(): any {
- let fileNameObject: any = this.mappingEditorService.latestAction;
- return fileNameObject;
- }
-
- /*public download() {
- let stringData: any;
- stringData = JSON.stringify(this.paramShareService.getSessionParamData());
- let paramsKeyValueFromEditor: JSON;
- paramsKeyValueFromEditor = JSON.parse(stringData);
- let fileName = 'param_' + this.action + '_' + this.type + '_' + "0.0.1" + 'V';
- this.JSONToCSVConvertor([paramsKeyValueFromEditor], fileName, true);
-
- }*/
public download() {
if (this.apiRequest) {
@@ -166,40 +153,6 @@ export class TestComponent implements OnInit {
}
- /*JSONToCSVConvertor(JSONData, fileName, ShowLabel) {
- //If JSONData is not an object then JSON.parse will parse the JSON string in an Object
- var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
-
- var CSV = '';
-
- //This condition will generate the Label/Header
- if (ShowLabel) {
- var testRow = "";
- for (var index in arrData[0]) {
-
- CSV += arrData[0][index].name + '\t' + arrData[0][index].value + '\t' + arrData[0][index].source + '\r\n';
- }
- }
-
- if (CSV == '') {
- alert("Invalid data");
- return;
- }
-
- //Initialize file format you want csv or xls
- var uri = 'data:application/vnd.ms-excel,' + encodeURI(CSV);
-
- var link = document.createElement("a");
- link.href = uri;
-
- link.download = fileName + ".xls";
-
- //this part will append the anchor tag and remove it after automatic click
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
- }*/
-
excelBrowseOption() {
$('#excelInputFile').trigger('click');
}
@@ -209,7 +162,7 @@ export class TestComponent implements OnInit {
/* wire up file reader */
$('#filesparam').trigger('click');
const target: DataTransfer = <DataTransfer>(evt.target);
-
+ this.pollCounter = 0;
this.uploadFileName = evt.target.files[0].name;
var fileExtension = this.uploadFileName.substr(this.uploadFileName.lastIndexOf('.') + 1);
@@ -241,9 +194,9 @@ export class TestComponent implements OnInit {
this.showStatusResponseDiv = false;
this.errorResponse = '';
this.statusResponse = '';
-
+ this.enableDownload=true;
let arrData = (<AOA>(XLSX.utils.sheet_to_json(ws, { blankrows: false })));
- this.nService.success('Success', 'SpreadSheet uploaded successfully');
+
console.log('Array data ==' + arrData[0]);
@@ -254,53 +207,84 @@ export class TestComponent implements OnInit {
this.payload = {};
this.oldListName1 = '';
this.actionIdentifiers = {};
- for (var i = 0; i < arrData.length; i++) {
- var element = arrData[i];
- if (element['TagName'] === 'action') {
- this.action = element['Value'];
- }
- if (element['List Name'] === 'action-identifiers') {
- this.vnfId = element['Value'];
- var key = element['TagName'];
- var value = element['Value'];
- if (key && value) {
- this.actionIdentifiers[key] = value;
+ // Refactor
+ this.payload = this.processUploadedFile(arrData);
+ this.uploadedFileResult();
+ };
- }
- }
+ reader.readAsBinaryString(target.files[0]);
+
- if (element['List Name'] === 'payload') {
- var listName1 = element['List Name_1'];
- var listName2 = element['List Name_2'];
- var listName3 = element['List Name_3'];
- var key = element['TagName'];
- var value = element['Value'];
- if (listName1) {
- if (this.oldListName1 == '' || (listName1 === this.oldListName1)) {
- this.constructTestPayload(listName2, listName3, key, value);
- this.payload[listName1] = this.subPayload;
- }
- else {
- this.subPayload = {};
- this.constructTestPayload(listName2, listName3, key, value);
- this.payload[listName1] = this.subPayload;
- }
- this.oldListName1 = listName1;
- }
- else {
- this.payload[key] = value;
- }
+ }
+ else {
+ this.nService.error('Error', 'Incorrect spreadsheet uploaded');
+ this.flag = 1;
+ this.oldListName1 = '';
+ this.vmJson = {};
+ this.vnfcJson = {};
+ this.subPayload = {};
+ this.vmPayload = [];
+ this.payload = {};
+ this.action = '';
+ this.actionIdentifiers = {};
+ this.apiRequest = '';
+ this.apiResponse = '';
+ this.enableCounterDiv = false;
+ this.enableAbort = false;
+ this.enableTestButton = false;
+ this.enableDownload = false;
+ }
+ }
+
+processUploadedFile(arrData) {
+ let tempPayload = {};
+ for (var i = 0; i < arrData.length; i++) {
+ var element = arrData[i];
+ if (element['TagName'] === 'action') {
+ this.action = element['Value'];
+ }
+ if (element['List Name'] === 'action-identifiers') {
+ this.vnfId = element['Value'];
+ var key = element['TagName'];
+ var value = element['Value'];
+ if (key && value) {
+ this.actionIdentifiers[key] = value;
+
+ }
+ }
+
+ if (element['List Name'] === 'payload') {
+ var listName1 = element['List Name_1'];
+ var listName2 = element['List Name_2'];
+ var listName3 = element['List Name_3'];
+ var key = element['TagName'];
+ var value = element['Value'];
+ if (listName1) {
+ if (this.oldListName1 == '' || (listName1 === this.oldListName1)) {
+ this.constructTestPayload(listName2, listName3, key, value);
+ tempPayload[listName1] = this.subPayload;
+ }
+ else {
+ this.subPayload = {};
+ this.constructTestPayload(listName2, listName3, key, value);
+ tempPayload[listName1] = this.subPayload;
}
+ this.oldListName1 = listName1;
}
+ else {
+ tempPayload[key] = value;
+ }
+ }
+ }
- //console.log("VM JSON===" + JSON.stringify(this.vmPayload))
- // console.log('VM payload===' + JSON.stringify(this.payload));
- };
+ return tempPayload;
+ }
- reader.readAsBinaryString(target.files[0]);
+ uploadedFileResult() {
+ if (this.action && this.actionIdentifiers['vnf-id']) {
+ this.nService.success('Success', 'SpreadSheet uploaded successfully');
}
else {
- this.nService.error('Error', 'Incorrect spreadsheet uploaded');
this.flag = 1;
this.oldListName1 = '';
this.vmJson = {};
@@ -313,9 +297,15 @@ export class TestComponent implements OnInit {
this.apiRequest = '';
this.apiResponse = '';
this.enableCounterDiv = false;
+ this.enableAbort = false;
+ this.enableTestButton = false;
+ this.enableDownload = false;
+ this.nService.error("Error", "Please check the contents of the file uploaded")
}
}
+
+
constructTestPayload(listName2, listName3, key, value) {
if (listName2 == undefined && listName3 == undefined) {
this.subPayload[key] = value;
@@ -373,9 +363,6 @@ export class TestComponent implements OnInit {
}
testVnf() {
- //let payload = '{"request-parameters":{"vnf-host-ip-address":"' + this.host + '"},"configuration-parameters":"' + JSON.stringify(this.formattedNameValuePairs) + '"}"';
- //let payload = '{"request-parameters":{"host-ip-address:"' + this.host + '",port-number:"'+port+'"}}';
-
this.enableBrowse = false;
this.enableTestButton = false;
this.enablePollButton = false;
@@ -412,9 +399,7 @@ export class TestComponent implements OnInit {
pollTestStatus() {
if (this.requestId && this.actionIdentifiers['vnf-id']) {
- // console.log("payload==" + JSON.stringify(this.payload))
let timeStamp = new Date().toISOString();
- // console.log("timestamp==" + timeStamp)
let reqId = new Date().getTime().toString();
let data = {
'input': {
@@ -435,20 +420,17 @@ export class TestComponent implements OnInit {
'payload': '{"request-id":' + this.requestId + '}'
}
};
- //this.ngProgress.start();
this.httpUtil.post(
{
url: environment.checkTestStatus, data: data
})
.subscribe(resp => {
- // console.log('Response==' + JSON.stringify(resp));
this.statusResponse = JSON.stringify(resp);
var status = ''
var statusReason = ''
this.enableCounterDiv = true;
this.pollCounter++;
- //this.statusResponse=JSON.parse(this.statusResponse)
if (resp.output) var timeStamp = resp.output['common-header'].timestamp;
if (resp.output.payload) {
var payload = resp.output.payload.replace(/\\/g, "")
@@ -466,7 +448,7 @@ export class TestComponent implements OnInit {
this.outputTimeStamp = timeStamp;
this.status = status;
this.statusReason = statusReason;
- if (status.toUpperCase() === 'SUCCESS') {
+ if (status.toUpperCase() === 'SUCCESS' || status.toUpperCase() === 'SUCCESSFUL') {
this.subscribe.unsubscribe();
this.enablePollButton = true;
}
@@ -479,7 +461,7 @@ export class TestComponent implements OnInit {
this.showStatusResponseDiv = false;
}
- // this.ngProgress.done();
+
},
error => {
this.statusResponse = null;
@@ -493,9 +475,7 @@ export class TestComponent implements OnInit {
else {
this.nService.error("Error", "Please enter vnf Id & request Id");
}
- // setTimeout(() => {
- // this.ngProgress.done();
- // }, 3500);
+
}
getUrlEndPoint(action) {