summaryrefslogtreecommitdiffstats
path: root/public/src/app/api/rest-api.service.spec.ts
diff options
context:
space:
mode:
Diffstat (limited to 'public/src/app/api/rest-api.service.spec.ts')
-rw-r--r--public/src/app/api/rest-api.service.spec.ts476
1 files changed, 466 insertions, 10 deletions
diff --git a/public/src/app/api/rest-api.service.spec.ts b/public/src/app/api/rest-api.service.spec.ts
index ce921cb..c0fea4b 100644
--- a/public/src/app/api/rest-api.service.spec.ts
+++ b/public/src/app/api/rest-api.service.spec.ts
@@ -1,23 +1,479 @@
-import { TestBed, inject } from '@angular/core/testing';
-import { HttpModule } from '@angular/http';
-import { RestApiService } from './rest-api.service';
+import { HttpClientTestingModule } from '@angular/common/http/testing';
+import { TestBed, async, inject } from '@angular/core/testing';
+import {
+ BaseRequestOptions,
+ Http,
+ HttpModule,
+ Response,
+ ResponseOptions,
+ XHRBackend
+} from '@angular/http';
+import { MockBackend } from '@angular/http/testing';
import { v4 as genrateUuid } from 'uuid';
+import { Store } from '../store/store';
+import { RestApiService } from './rest-api.service';
describe('RestApiService', () => {
- beforeEach(() => {
- TestBed.configureTestingModule({
- imports: [HttpModule],
- providers: [RestApiService]
- });
- });
+ let service: RestApiService;
+ let backend: MockBackend;
+
+ beforeEach(
+ async(() => {
+ TestBed.configureTestingModule({
+ imports: [HttpModule, HttpClientTestingModule],
+ providers: [
+ RestApiService,
+ Store,
+ MockBackend,
+ BaseRequestOptions,
+ {
+ provide: Http,
+ deps: [MockBackend, BaseRequestOptions],
+ useFactory: (
+ backend: XHRBackend,
+ defaultOptions: BaseRequestOptions
+ ) => {
+ return new Http(backend, defaultOptions);
+ }
+ }
+ ]
+ });
+ // Get the MockBackend
+ backend = TestBed.get(MockBackend);
+ service = TestBed.get(RestApiService);
+ })
+ );
it(
'should be created',
- inject([RestApiService], (service: RestApiService) => {
+ inject([RestApiService], () => {
expect(service).toBeTruthy();
})
);
+ it('should baseUrl match localhost', () => {
+ expect(service.baseUrl).toBe('http://localhost:8446');
+ });
+
+ it('should headers user id get default', () => {
+ service.addHeaders();
+ expect(service.headers.get('USER_ID')).toBe('ym903w');
+ });
+
+ it('should headers Content-Type json', () => {
+ service.addHeaders();
+ expect(service.headers.get('Content-Type')).toBe('application/json');
+ });
+
+ it(
+ 'should get service instance from API',
+ async(() => {
+ const serviceInstances = [
+ {
+ name: 'ciService669277f472b0',
+ category: 'Mobility'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(serviceInstances)
+ })
+ )
+ );
+ });
+
+ service.getServiceInstances('123456').subscribe(_res => {
+ expect(_res.length).toBe(1);
+ expect(_res).toEqual(serviceInstances);
+ });
+ })
+ );
+
+ it(
+ 'should get template resources from API',
+ async(() => {
+ const template = [
+ {
+ name: 'AviStone1234',
+ version: '0.1'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(template)
+ })
+ )
+ );
+ });
+
+ service.getTemplateResources().subscribe(_res => {
+ expect(_res.length).toBe(1);
+ expect(_res).toEqual(template);
+ });
+ })
+ );
+
+ it(
+ 'should getCompositionMonitoringComponent from API',
+ async(() => {
+ const template = [
+ {
+ name: 'AviStone1234',
+ version: '0.1'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(template)
+ })
+ )
+ );
+ });
+
+ service.getCompositionMonitoringComponent('123456').subscribe(_res => {
+ expect(_res.length).toBe(1);
+ expect(_res).toEqual(template);
+ });
+ })
+ );
+
+ it(
+ 'importVFCMT from API',
+ async(() => {
+ const template = [
+ {
+ name: 'AviStone1234',
+ version: '0.1'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(template)
+ })
+ )
+ );
+ });
+
+ service.importVFCMT({}).subscribe(_res => {
+ expect(_res.length).toBe(1);
+ expect(_res).toEqual(template);
+ });
+ })
+ );
+
+ it(
+ 'deleteMonitoringComponent from API',
+ async(() => {
+ const template = [
+ {
+ name: 'AviStone1234',
+ version: '0.1'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(template)
+ })
+ )
+ );
+ });
+
+ service
+ .deleteMonitoringComponent(
+ {
+ contextType: 'service',
+ uuid: '123456'
+ },
+ '45678',
+ 'liav'
+ )
+ .subscribe(_res => {
+ console.log('delete', _res);
+ });
+ })
+ );
+
+ it(
+ 'deleteMonitoringComponentWithBlueprint from API',
+ async(() => {
+ const template = [
+ {
+ name: 'AviStone1234',
+ version: '0.1'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(template)
+ })
+ )
+ );
+ });
+
+ service
+ .deleteMonitoringComponentWithBlueprint(
+ {
+ contextType: 'service',
+ uuid: '123456'
+ },
+ 'voskComp',
+ '45678',
+ 'liav'
+ )
+ .subscribe(_res => {
+ console.log('delete', _res);
+ });
+ })
+ );
+
+ it(
+ 'createNewVFCMT from API',
+ async(() => {
+ const template = [
+ {
+ name: 'AviStone1234',
+ version: '0.1'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(template)
+ })
+ )
+ );
+ });
+
+ service.createNewVFCMT({}).subscribe(_res => {
+ expect(_res.length).toBe(1);
+ expect(_res).toEqual(template);
+ });
+ })
+ );
+
+ it(
+ 'saveMonitoringComponent from API',
+ async(() => {
+ const template = [
+ {
+ name: 'AviStone1234',
+ version: '0.1'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(template)
+ })
+ )
+ );
+ });
+
+ service
+ .saveMonitoringComponent({
+ contextType: 'service',
+ serviceUuid: '123456',
+ vfiName: 'liavVfi',
+ vfcmtUuid: '987456',
+ cdump: {}
+ })
+ .subscribe(_res => {
+ expect(_res.length).toBe(1);
+ expect(_res).toEqual(template);
+ });
+ })
+ );
+
+ it(
+ 'submitMonitoringComponent from API',
+ async(() => {
+ const template = [
+ {
+ name: 'AviStone1234',
+ version: '0.1'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(template)
+ })
+ )
+ );
+ });
+
+ service
+ .submitMonitoringComponent({
+ contextType: 'service',
+ serviceUuid: '123456',
+ vfiName: 'liavVfi',
+ vfcmtUuid: '987456',
+ cdump: {},
+ flowType: 'SNMP'
+ })
+ .subscribe(_res => {
+ expect(_res.length).toBe(1);
+ expect(_res).toEqual(template);
+ });
+ })
+ );
+
+ it(
+ 'should get Vfcmt Reference Data from API',
+ async(() => {
+ const template = [
+ {
+ name: 'AviStone1234',
+ version: '0.1'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(template)
+ })
+ )
+ );
+ });
+
+ service.getVfcmtReferenceData('123456').subscribe(_res => {
+ expect(_res.length).toBe(1);
+ expect(_res).toEqual(template);
+ });
+ })
+ );
+
+ it(
+ 'should get vfcmt list from API',
+ async(() => {
+ const dummyVfcmts = [
+ {
+ uuid: 'cba37ed8-94e1-406f-b4f5-b5edbc31ac85',
+ name: 'CIe4d5a9b271d6'
+ },
+ {
+ uuid: '64471437-8feb-40d9-a8b0-9407a81dd5c0',
+ name: 'teSt.__.monitoring---TempLATE.6hnc'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ expect(connection.request.url).toMatch(
+ 'http://localhost:8446/service/123456/0.1/monitoringComponents'
+ );
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(dummyVfcmts)
+ })
+ )
+ );
+ });
+
+ service
+ .getMonitoringComponents({
+ contextType: 'service',
+ uuid: '123456',
+ version: '0.1'
+ })
+ .subscribe(_res => {
+ expect(_res.length).toBe(2);
+ expect(_res).toEqual(dummyVfcmts);
+ });
+ })
+ );
+
+ it(
+ 'should get migration vfcmt list from API',
+ async(() => {
+ const dummyVfcmts = [
+ {
+ uuid: 'cba37ed8-94e1-406f-b4f5-b5edbc31ac85',
+ name: 'CIe4d5a9b271d6'
+ },
+ {
+ uuid: '64471437-8feb-40d9-a8b0-9407a81dd5c0',
+ name: 'teSt.__.monitoring---TempLATE.6hnc'
+ }
+ ];
+
+ backend.connections.subscribe(connection => {
+ expect(connection.request.url).toMatch(
+ 'http://localhost:8446/service/123456/0.1/getVfcmtsForMigration'
+ );
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(dummyVfcmts)
+ })
+ )
+ );
+ });
+
+ service
+ .getVfcmtsForMigration({
+ contextType: 'service',
+ uuid: '123456',
+ version: '0.1'
+ })
+ .subscribe(_res => {
+ expect(_res.length).toBe(2);
+ expect(_res).toEqual(dummyVfcmts);
+ });
+ })
+ );
+
+ it(
+ 'should get flow type from API',
+ async(() => {
+ const flowType = ['syslog', 'SNMP'];
+
+ backend.connections.subscribe(connection => {
+ expect(connection.request.url).toMatch(
+ 'http://localhost:8446/conf/composition'
+ );
+ connection.mockRespond(
+ new Response(
+ new ResponseOptions({
+ body: JSON.stringify(flowType)
+ })
+ )
+ );
+ });
+
+ service.getFlowType().subscribe(_res => {
+ expect(_res.length).toBe(2);
+ expect(_res).toEqual(flowType);
+ });
+ })
+ );
+
it('should genrate deffrent uuid each time for request id', () => {
const firstUuid = genrateUuid();
const secondUuid = genrateUuid();