remove duplicate "model version" field from ncf
[vid.git] / vid-webpack-master / src / app / drawingBoard / service-planning / objectsToTree / models / ncf / ncf.model.info.spec.ts
1 import {ComponentInfoType} from "../../../component-info/component-info-model";
2 import {NcfModelInfo} from "./ncf.model.info";
3 import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
4 import {NcfTreeNode} from "../../../../../shared/models/ncfTreeNode";
5
6 describe('NCF Model Info', () => {
7
8   let ncfModel: NcfModelInfo;
9
10   beforeEach(() => {
11     ncfModel = new NcfModelInfo(null);
12   });
13
14   test('ncfModel should be defined', () => {
15     expect(ncfModel).toBeDefined();
16   });
17
18   test('ncfModel should defined extra details', () => {
19     expect(ncfModel.name).toEqual('ncfs');
20     expect(ncfModel.type).toEqual('NCF');
21     expect(ncfModel.childNames).toBeUndefined;
22     expect(ncfModel.componentInfoType).toEqual(ComponentInfoType.NCF);
23   });
24
25   test('createInstanceTreeNode shall create the right ncfTreeNode', () => {
26     const instance = {
27       action: "None",
28       instanceName: "NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection",
29       instanceId: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
30       instanceType: "L3-NETWORK",
31       inMaint: false,
32       uuid: "dd182d7d-6949-4b90-b3cc-5befe400742e",
33       originalName: "ncm_vlan_ym161f..NetworkCollection..0",
34       trackById: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
35       instanceGroupRole: "SUB_INTERFACE",
36       instanceGroupFunction: "vTSBC Customer Landing Network Collection",
37       numberOfNetworks: 1
38     };
39
40     const parentModel = {
41       networksCollection: {
42         "ncm_vlan_ym161f..NetworkCollection..0": {
43           uuid: "dd182d7d-6949-4b90-b3cc-5befe400742e",
44           invariantUuid: "868b109c-9481-4a18-891b-af974db7705a",
45           name: "ncm_vlan_ym161f..NetworkCollection..0",
46           version: "1",
47           networkCollectionProperties: {
48             networkCollectionFunction: "vTSBC Customer Landing Network Collection",
49             networkCollectionDescription: "vTSBC Customer Landing Network Collection Desc"
50           }
51         }
52       }
53     };
54
55     const expected = {
56       action: "None",
57       id: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
58       inMaint: false,
59       instanceGroupFunction: "vTSBC Customer Landing Network Collection",
60       instanceGroupRole: "SUB_INTERFACE",
61       instanceId: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
62       instanceName: "NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection",
63       instanceType: "L3-NETWORK",
64       missingData: false,
65       modelVersion: "1",
66       name: "NcmVlanSvcYm161f_77_vTSBC Customer Landing Network Collection",
67       numberOfNetworks: 1,
68       storeKey: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
69       typeName: "NCF"
70     };
71
72     const ncfTreeNode: NcfTreeNode = ncfModel.createInstanceTreeNode(instance, {}, parentModel, "6b3536cf-3a12-457f-abb5-fa2203e0d923", "dd182d7d-6949-4b90-b3cc-5befe400742e");
73     expect(ncfTreeNode).toMatchObject(expected);
74   });
75
76   test('get modelInformation shall return Role, Collection function, Number of networks', () => {
77     const ncf = {
78       trackById: "6b3536cf-3a12-457f-abb5-fa2203e0d923",
79       instanceGroupRole: "SUB_INTERFACE",
80       instanceGroupFunction: "vTSBC Customer Landing Network Collection",
81       numberOfNetworks: 1,
82       modelVersion: "35"
83     };
84
85     const actualModelInformationItems = ncfModel.getInfo(null, ncf);
86     const expected = [
87       ModelInformationItem.createInstance('Role', 'SUB_INTERFACE'),
88       ModelInformationItem.createInstance('Collection function', 'vTSBC Customer Landing Network Collection'),
89       ModelInformationItem.createInstance('Number of networks', 1),
90     ];
91
92     expect(actualModelInformationItems).toEqual(expected);
93   });
94
95   test('get modelInformation shall return empty array when ncf instance is null', () => {
96     expect(ncfModel.getInfo(null, null)).toEqual([]);
97   });
98
99   test('ncf getMenuAction: delete', ()=>{
100     let node = {};
101     let serviceModelId = 'serviceModelId';
102     let result = ncfModel.getMenuAction(<any>node, serviceModelId);
103     spyOn(result['delete'], 'method');
104     expect(result['delete']).toBeDefined();
105     expect(result['delete'].visible()).toBeFalsy();
106     expect(result['delete'].enable()).toBeFalsy();
107     result['delete']['method'](node, serviceModelId);
108     expect(result['delete']['method']).toHaveBeenCalledWith(node, serviceModelId);
109   });
110
111 });