Fixing node count icon VfModule + unit tests. 40/99740/2
authorYoav Schneiderman <yoav.schneiderman@intl.att.com>
Tue, 17 Dec 2019 20:13:48 +0000 (22:13 +0200)
committerEylon Malin <eylon.malin@intl.att.com>
Tue, 17 Dec 2019 21:07:03 +0000 (21:07 +0000)
Issue-ID: VID-726
Signed-off-by: Yoav Schneiderman <yoav.schneiderman@intl.att.com>
Change-Id: I07538d9e77ff3e983da35f90f73eb62c9fdfce4b

vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.spec.ts
vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vfModule/vfModule.model.info.ts

index b62794f..a14e3f8 100644 (file)
@@ -413,7 +413,33 @@ describe('VFModule Model Info', () => {
                         'modelInfo' : {
                           modelVersionId : 'vfModuleId'
                         }
+                      },
+                      'vnfModuleName_111_1': {
+                        'action': 'Create',
+                        'modelInfo' : {
+                          modelVersionId : 'vfModuleId'
+                        }
+                      }
+                  }
+                }
+              },
+              'vnfName_1' :{
+                'action': 'Create',
+                'originalName' : 'vnfName',
+                'vfModules' : {
+                  'vfModuleName' : {
+                    'vnfModuleName_111': {
+                      'action': 'Create',
+                      'modelInfo' : {
+                        modelVersionId : 'vfModuleId'
+                      }
+                    },
+                    'vnfModuleName_111_1': {
+                      'action': 'Create',
+                      'modelInfo' : {
+                        modelVersionId : 'vfModuleId'
                       }
+                    }
                   }
                 }
               }
@@ -438,6 +464,95 @@ describe('VFModule Model Info', () => {
       }
     };
     let result = vfModuleModel.getNodeCount(<any>node , serviceId);
+    expect(result).toEqual(2);
+  });
+
+
+  test('getNodeCount should return number of nodes : there is selectedVNF', ()=>{
+    let serviceId : string = 'servicedId';
+    jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
+      global : {},
+      service : {
+        serviceHierarchy : {
+          'servicedId' : {
+            'vnfs' : {
+              'vnfName' : {
+                'properties' : {
+                  'max_instances' : 1
+                }
+              }
+            },
+            'vfModules' : {
+              'vfModuleName' : {
+                'properties' : {
+                  maxCountInstances : 2
+                }
+              }
+            }
+          }
+        },
+        serviceInstance : {
+          'servicedId' : {
+            'existingVNFCounterMap' : {
+              'vnfId' : 1
+            },
+            'vnfs' : {
+              'vnfName' :{
+                'action': 'Create',
+                'originalName' : 'vnfName',
+                'vfModules' : {
+                  'vfModuleName' : {
+                    'vnfModuleName_111': {
+                      'action': 'Create',
+                      'modelInfo' : {
+                        modelVersionId : 'vfModuleId'
+                      }
+                    },
+                    'vnfModuleName_111_1': {
+                      'action': 'Create',
+                      'modelInfo' : {
+                        modelVersionId : 'vfModuleId'
+                      }
+                    }
+                  }
+                }
+              },
+              'vnfName_1' :{
+                'action': 'Create',
+                'originalName' : 'vnfName',
+                'vfModules' : {
+                  'vfModuleName' : {
+                    'vnfModuleName_111': {
+                      'action': 'Create',
+                      'modelInfo' : {
+                        modelVersionId : 'vfModuleId'
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    });
+    jest.spyOn(_sharedTreeService, 'getSelectedVNF').mockReturnValue('vnfName_1');
+
+    let node = {
+      data : {
+        id : 'vfModuleId',
+        name : 'vfModuleName',
+        'action': 'Create',
+      },
+      parent : {
+        data : {
+          id : 'vnfId',
+          name : 'vnfName_1',
+          'action': 'Create',
+        }
+      }
+    };
+    let result = vfModuleModel.getNodeCount(<any>node , serviceId);
     expect(result).toEqual(1);
   });
 
index bb56b14..3d37973 100644 (file)
@@ -177,12 +177,16 @@ export class VFModuleModelInfo implements ILevelNodeInfo {
    * @param serviceModelId - current service id
    ************************************************************/
   getNodeCount(node: ITreeNode, serviceModelId: string): number {
+    const vnfs = this._store.getState().service.serviceInstance[serviceModelId].vnfs;
     let count: number = 0;
     if (!_.isNil(this._store.getState().service.serviceInstance) && !_.isNil(this._store.getState().service.serviceInstance[serviceModelId])) {
-      const vnfs = this._store.getState().service.serviceInstance[serviceModelId].vnfs;
-
-      for (let vnfKey in vnfs) {
-        count += this.countNumberOfVFModule(vnfs[vnfKey], node);
+      const selectedVNF: string = this._sharedTreeService.getSelectedVNF();
+      if (selectedVNF) {
+        count += this.countNumberOfVFModule(vnfs[selectedVNF], node);
+      }else {
+        for (let vnfKey in vnfs) {
+          count += this.countNumberOfVFModule(vnfs[vnfKey], node);
+        }
       }
       return count;
     }
@@ -206,11 +210,8 @@ export class VFModuleModelInfo implements ILevelNodeInfo {
   getCountVFModuleOfSelectedVNF(node: ITreeNode, vnfStoreKey: string, serviceModelId: string): number {
     let count: number = 0;
     if (!_.isNil(this._store.getState().service.serviceInstance) && !_.isNil(this._store.getState().service.serviceInstance[serviceModelId])) {
-      const vnfs = this._store.getState().service.serviceInstance[serviceModelId].vnfs;
-
-      for (let vnfKey in vnfs) {
-        count += this.countNumberOfVFModule(vnfs[vnfKey], node);
-      }
+      const vnf = this._store.getState().service.serviceInstance[serviceModelId].vnfs[vnfStoreKey];
+      count += this.countNumberOfVFModule(vnf, node);
       return count;
     }
     return count;
@@ -238,7 +239,6 @@ export class VFModuleModelInfo implements ILevelNodeInfo {
 
 
   showVFModuleOnSelectedVNF(node: ITreeNode, selectedVNF: string, serviceModelId: string): AvailableNodeIcons {
-
     if (!_.isNil(this._store.getState().service.serviceInstance[serviceModelId].vnfs[selectedVNF]) && node.parent.data.name === this._store.getState().service.serviceInstance[serviceModelId].vnfs[selectedVNF].originalName) {
       const existingVFModules = this.getCountVFModuleOfSelectedVNF(node, selectedVNF, serviceModelId);
       const reachedLimit = this.isVFModuleReachedLimit(node, this._store.getState().service.serviceHierarchy, serviceModelId, existingVFModules);