1 import {getTestBed, TestBed} from '@angular/core/testing';
2 import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
3 import {NgRedux} from "@angular-redux/store";
4 import {DrawingBoardTreeService, TreeNodeContextMenuModel} from "./drawing-board-tree.service";
5 import {ITreeNode} from "angular-tree-component/dist/defs/api";
7 class MockAppStore<T> {
12 "serviceInstanceId": {
43 describe('Drawing board tree Service', () => {
45 let service: DrawingBoardTreeService;
46 let httpMock: HttpTestingController;
49 beforeAll(done => (async () => {
50 TestBed.configureTestingModule({
51 imports: [HttpClientTestingModule],
53 DrawingBoardTreeService,
54 {provide: NgRedux, useClass: MockAppStore}]
56 await TestBed.compileComponents();
58 injector = getTestBed();
59 service = injector.get(DrawingBoardTreeService);
60 httpMock = injector.get(HttpTestingController);
62 })().then(done).catch(done.fail));
65 test('generateContextMenuOptions should return list of optional context menu', () => {
66 const options: TreeNodeContextMenuModel[] = service.generateContextMenuOptions();
67 const expected: TreeNodeContextMenuModel[] = [
68 new TreeNodeContextMenuModel('edit', 'context-menu-edit', 'Edit', 'edit-file-o'),
69 new TreeNodeContextMenuModel('duplicate', 'context-menu-duplicate', 'Duplicate', 'copy-o'),
70 new TreeNodeContextMenuModel('showAuditInfo', 'context-menu-showAuditInfo', 'Show audit info', 'eye-o'),
71 new TreeNodeContextMenuModel('addGroupMember', 'context-menu-addGroupMember', 'Add group members', 'plus'),
72 new TreeNodeContextMenuModel('delete', 'context-menu-delete', 'Delete', 'trash-o'),
73 new TreeNodeContextMenuModel('remove', 'context-menu-remove', 'Remove', 'trash-o'),
74 new TreeNodeContextMenuModel('upgrade', 'context-menu-upgrade', 'Upgrade', 'upgrade'),
75 new TreeNodeContextMenuModel('undoDelete', 'context-menu-undoDelete', 'Undo Delete', 'undo-delete'),
76 new TreeNodeContextMenuModel('undoUpgrade', 'context-menu-undoUpgrade', 'Undo Upgrade', 'undo-delete'),
77 new TreeNodeContextMenuModel('changeAssociations', 'context-menu-changeAssociations', 'Change Associations', 'edit-file-o'),
78 new TreeNodeContextMenuModel('pauseInstantiation', 'context-menu-pause', 'Add pause upon completion', 'pause-upon-completion'),
79 new TreeNodeContextMenuModel('removePause', 'context-menu-removePause', 'Remove Pause', 'pause-upon-completion')
81 expect(options.length).toEqual(12);
82 expect(options).toEqual(expected);
85 test('isVNFMissingData should return true if vnf isMissingData = true', () => {
86 let node: ITreeNode = <any>{
89 vnfStoreKey: "vnfStoreKey"
92 let result: boolean = service.isVNFMissingData(node, "serviceInstanceId");
93 expect(result).toBeTruthy();
97 test('isVNFMissingData should return false if vnf has isMissingData = false', () => {
98 let node: ITreeNode = <any>{
101 modelName: "vfModulesName",
102 dynamicModelName: "vfModulesName",
104 vnfStoreKey: "vnfStoreKey1",
109 let result: boolean = service.isVNFMissingData(node, "serviceInstanceId");
110 expect(result).toBeFalsy();
114 test('isVFModuleMissingData should return true if vnfModule has isMissingData = true', () => {
115 let node: ITreeNode = <any>{
118 modelName: "vfModulesName",
119 dynamicModelName: "vfModulesName",
121 vnfStoreKey: "vnfStoreKey",
126 let result: boolean = service.isVFModuleMissingData(node, "serviceInstanceId");
127 expect(result).toBeFalsy();
131 test('isVFModuleMissingData should return false if vnfModule has isMissingData = false', () => {
132 let node: ITreeNode = <any>{
135 modelName: "vfModulesName",
136 dynamicModelName: "vfModulesName",
138 vnfStoreKey: "vnfStoreKey1",
143 let result: boolean = service.isVFModuleMissingData(node, "serviceInstanceId");
144 expect(result).toBeFalsy();