blob: c0fea4b61a4e6d8c064813c005d6f1acd995ffd8 [file] [log] [blame]
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', () => {
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], () => {
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();
expect(firstUuid !== secondUuid).toBe(true);
});
});