Introduce Instrumentation
[cps.git] / cps-service / src / test / groovy / org / onap / cps / api / impl / E2ENetworkSliceSpec.groovy
index d18bcf5..8ed7aed 100755 (executable)
@@ -1,14 +1,15 @@
 /*\r
  * ============LICENSE_START=======================================================\r
- * Copyright (C) 2021 Nordix Foundation.\r
+ * Copyright (C) 2021-2023 Nordix Foundation.\r
  * Modifications Copyright (C) 2021-2022 Bell Canada.\r
  * Modifications Copyright (C) 2021 Pantheon.tech\r
+ * Modifications Copyright (C) 2022 TechMahindra Ltd.\r
  * ================================================================================\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
  * you may not use this file except in compliance with the License.\r
  * You may obtain a copy of the License at\r
  *\r
- *      http://www.apache.org/licenses/LICENSE-2.0\r
+ *       http://www.apache.org/licenses/LICENSE-2.0\r
  *\r
  * Unless required by applicable law or agreed to in writing, software\r
  * distributed under the License is distributed on an "AS IS" BASIS,\r
@@ -28,7 +29,10 @@ import org.onap.cps.notification.NotificationService
 import org.onap.cps.spi.CpsDataPersistenceService\r
 import org.onap.cps.spi.CpsModulePersistenceService\r
 import org.onap.cps.spi.model.Anchor\r
+import org.onap.cps.spi.utils.CpsValidator\r
+import org.onap.cps.utils.TimedYangParser\r
 import org.onap.cps.utils.YangUtils\r
+import org.onap.cps.yang.TimedYangTextSchemaSourceSetBuilder\r
 import org.onap.cps.yang.YangTextSchemaSourceSetBuilder\r
 import spock.lang.Specification\r
 \r
@@ -37,23 +41,22 @@ class E2ENetworkSliceSpec extends Specification {
     def mockDataStoreService = Mock(CpsDataPersistenceService)\r
     def mockCpsAdminService = Mock(CpsAdminService)\r
     def mockNotificationService = Mock(NotificationService)\r
-    def cpsDataServiceImpl = new CpsDataServiceImpl()\r
     def mockYangTextSchemaSourceSetCache = Mock(YangTextSchemaSourceSetCache)\r
+    def mockCpsValidator = Mock(CpsValidator)\r
+    def timedYangTextSchemaSourceSetBuilder = new TimedYangTextSchemaSourceSetBuilder()\r
+    def timedYangParser = new TimedYangParser()\r
+\r
     def cpsModuleServiceImpl = new CpsModuleServiceImpl(mockModuleStoreService,\r
-            mockYangTextSchemaSourceSetCache,mockCpsAdminService )\r
+            mockYangTextSchemaSourceSetCache, mockCpsAdminService, mockCpsValidator,timedYangTextSchemaSourceSetBuilder)\r
+\r
+    def cpsDataServiceImpl = new CpsDataServiceImpl(mockDataStoreService, mockCpsAdminService,\r
+            mockYangTextSchemaSourceSetCache, mockNotificationService, mockCpsValidator, timedYangParser)\r
 \r
     def dataspaceName = 'someDataspace'\r
     def anchorName = 'someAnchor'\r
     def schemaSetName = 'someSchemaSet'\r
     def noTimestamp = null\r
 \r
-    def setup() {\r
-        cpsDataServiceImpl.cpsDataPersistenceService = mockDataStoreService\r
-        cpsDataServiceImpl.cpsAdminService = mockCpsAdminService\r
-        cpsDataServiceImpl.yangTextSchemaSourceSetCache = mockYangTextSchemaSourceSetCache\r
-        cpsDataServiceImpl.notificationService = mockNotificationService\r
-    }\r
-\r
     def 'E2E model can be parsed by CPS.'() {\r
         given: 'Valid yang resource as name-to-content map'\r
             def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap(\r
@@ -94,9 +97,9 @@ class E2ENetworkSliceSpec extends Specification {
         when: 'saveData method is invoked'\r
             cpsDataServiceImpl.saveData(dataspaceName, anchorName, jsonData, noTimestamp)\r
         then: 'Parameters are validated and processing is delegated to persistence service'\r
-            1 * mockDataStoreService.storeDataNode('someDataspace', 'someAnchor', _) >>\r
+            1 * mockDataStoreService.storeDataNodes('someDataspace', 'someAnchor', _) >>\r
                     { args -> dataNodeStored = args[2]}\r
-            def child = dataNodeStored.childDataNodes[0]\r
+            def child = dataNodeStored[0].childDataNodes[0]\r
             assert child.childDataNodes.size() == 1\r
         and: 'list of Tracking Area for a Coverage Area are stored with correct xpath and child nodes '\r
             def listOfTAForCoverageArea = child.childDataNodes[0]\r
@@ -126,10 +129,10 @@ class E2ENetworkSliceSpec extends Specification {
         when: 'saveData method is invoked'\r
             cpsDataServiceImpl.saveData('someDataspace', 'someAnchor', jsonData, noTimestamp)\r
         then: 'parameters are validated and processing is delegated to persistence service'\r
-            1 * mockDataStoreService.storeDataNode('someDataspace', 'someAnchor', _) >>\r
+            1 * mockDataStoreService.storeDataNodes('someDataspace', 'someAnchor', _) >>\r
                     { args -> dataNodeStored = args[2]}\r
         and: 'the size of the tree is correct'\r
-            def cpsRanInventory = TestUtils.getFlattenMapByXpath(dataNodeStored)\r
+            def cpsRanInventory = TestUtils.getFlattenMapByXpath(dataNodeStored[0])\r
             assert  cpsRanInventory.size() == 4\r
         and: 'ran-inventory contains the correct child node'\r
             def ranInventory = cpsRanInventory.get('/ran-inventory')\r