E2E Network Slice test for 'Coverage Area-Tracking Area & TA-Cell mapping'
[cps.git] / cps-service / src / test / groovy / org / onap / cps / api / impl / E2ENetworkSliceSpec.groovy
index d6751bb..904e826 100755 (executable)
 package org.onap.cps.api.impl\r
 \r
 import org.onap.cps.TestUtils\r
+import org.onap.cps.api.CpsAdminService\r
+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.yang.YangTextSchemaSourceSetBuilder\r
 import spock.lang.Specification\r
 \r
 class E2ENetworkSliceSpec extends Specification {\r
     def mockModuleStoreService = Mock(CpsModulePersistenceService)\r
+    def mockDataStoreService = Mock(CpsDataPersistenceService)\r
+    def mockCpsAdminService = Mock(CpsAdminService)\r
+    def cpsModuleServiceImpl = new CpsModuleServiceImpl()\r
+    def cpsDataServiceImple = new CpsDataServiceImpl()\r
     def mockYangTextSchemaSourceSetCache = Mock(YangTextSchemaSourceSetCache)\r
-    def objectUnderTest = new CpsModuleServiceImpl()\r
+\r
+    def dataspaceName = 'someDataspace'\r
+    def anchorName = 'someAnchor'\r
+    def schemaSetName = 'someSchemaSet'\r
 \r
     def setup() {\r
-        objectUnderTest.cpsModulePersistenceService = mockModuleStoreService\r
-        objectUnderTest.yangTextSchemaSourceSetCache = mockYangTextSchemaSourceSetCache\r
+        cpsDataServiceImple.cpsDataPersistenceService = mockDataStoreService\r
+        cpsDataServiceImple.cpsAdminService = mockCpsAdminService\r
+        cpsDataServiceImple.yangTextSchemaSourceSetCache = mockYangTextSchemaSourceSetCache\r
+        cpsModuleServiceImpl.yangTextSchemaSourceSetCache = mockYangTextSchemaSourceSetCache\r
+        cpsModuleServiceImpl.cpsModulePersistenceService = mockModuleStoreService\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('e2e/basic/ietf-inet-types.yang','e2e/basic/ietf-yang-types.yang','e2e/basic/ran-network2020-08-06.yang')\r
         when: 'Create schema set method is invoked'\r
-            objectUnderTest.createSchemaSet('someDataspace', 'someSchemaSet', yangResourcesNameToContentMap)\r
+            cpsModuleServiceImpl.createSchemaSet(dataspaceName, schemaSetName, yangResourcesNameToContentMap)\r
+        then: 'Parameters are validated and processing is delegated to persistence service'\r
+            1 * mockModuleStoreService.storeSchemaSet(dataspaceName, schemaSetName, yangResourcesNameToContentMap)\r
+    }\r
+\r
+    def 'E2E Coverage Area-Tracking Area & TA-Cell mapping model can be parsed by CPS.'() {\r
+        given: 'Valid yang resource as name-to-content map'\r
+            def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap(\r
+                    'e2e/basic/cps-cavsta-onap-internal2021-01-28.yang')\r
+        when: 'Create schema set method is invoked'\r
+            cpsModuleServiceImpl.createSchemaSet(dataspaceName, schemaSetName, yangResourcesNameToContentMap)\r
+        then: 'Parameters are validated and processing is delegated to persistence service'\r
+            1 * mockModuleStoreService.storeSchemaSet(dataspaceName, schemaSetName, yangResourcesNameToContentMap)\r
+    }\r
+\r
+    def 'E2E Coverage Area-Tracking Area & TA-Cell mapping data can be parsed by CPS.'() {\r
+        given: 'Valid yang resource as name-to-content map'\r
+            def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap(\r
+                    'e2e/basic/cps-cavsta-onap-internal2021-01-28.yang')\r
+            def schemaContext = YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap).getSchemaContext()\r
+        and : 'a valid json is provided for the model'\r
+            def jsonData = TestUtils.getResourceFileContent('e2e/basic/Data.txt')\r
+        and : 'all the further dependencies are mocked '\r
+            mockCpsAdminService.getAnchor(dataspaceName, anchorName) >>\r
+                    new Anchor().builder().name(anchorName).schemaSetName(schemaSetName).build()\r
+            mockYangTextSchemaSourceSetCache.get(dataspaceName, schemaSetName) >>\r
+                    YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap)\r
+            mockModuleStoreService.getYangSchemaResources(dataspaceName, schemaSetName) >> schemaContext\r
+        when: 'saveData method is invoked'\r
+            cpsDataServiceImple.saveData(dataspaceName, anchorName, jsonData)\r
         then: 'Parameters are validated and processing is delegated to persistence service'\r
-            1 * mockModuleStoreService.storeSchemaSet('someDataspace', 'someSchemaSet', yangResourcesNameToContentMap)\r
+            1 * mockDataStoreService.storeDataNode(dataspaceName, anchorName,\r
+                    {dataNode -> dataNode.xpath == '/ran-coverage-area' && dataNode.childDataNodes.size() == 4})\r
     }\r
 }\r