Test Scenario for replaceListContent
[cps.git] / cps-service / src / test / groovy / org / onap / cps / api / impl / CpsModuleServiceImplSpec.groovy
index b8bfd45..2c23aa1 100644 (file)
@@ -25,6 +25,7 @@ package org.onap.cps.api.impl
 import org.onap.cps.TestUtils
 import org.onap.cps.spi.CpsModulePersistenceService
 import org.onap.cps.spi.exceptions.ModelValidationException
+import org.onap.cps.spi.model.ExtendedModuleReference
 import org.onap.cps.spi.model.ModuleReference
 import org.spockframework.spring.SpringBean
 import org.springframework.beans.factory.annotation.Autowired
@@ -52,7 +53,7 @@ class CpsModuleServiceImplSpec extends Specification {
     @Autowired
     CpsModuleServiceImpl objectUnderTest
 
-    def 'Create schema set'() {
+    def 'Create schema set.'() {
         given: 'Valid yang resource as name-to-content map'
             def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap('bookstore.yang')
         when: 'Create schema set method is invoked'
@@ -61,6 +62,17 @@ class CpsModuleServiceImplSpec extends Specification {
             1 * mockModuleStoreService.storeSchemaSet('someDataspace', 'someSchemaSet', yangResourcesNameToContentMap)
     }
 
+    def 'Create schema set from new modules and existing modules.'() {
+        given: 'a list of existing modules module reference'
+            def moduleReferenceForExistingModule = new ExtendedModuleReference("test", "test.org", "2021-10-12")
+            def listOfExistingModulesModuleReference = [moduleReferenceForExistingModule]
+        when: 'create schema set from modules method is invoked'
+            objectUnderTest.createSchemaSetFromModules("someDataspaceName", "someSchemaSetName", [newModule: "newContent"], listOfExistingModulesModuleReference)
+        then: 'processing is delegated to persistence service'
+            1 * mockModuleStoreService.storeSchemaSetFromModules("someDataspaceName", "someSchemaSetName", [newModule: "newContent"], listOfExistingModulesModuleReference)
+
+    }
+
     def 'Create schema set from invalid resources'() {
         given: 'Invalid yang resource as name-to-content map'
             def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap('invalid.yang')
@@ -79,7 +91,7 @@ class CpsModuleServiceImplSpec extends Specification {
         then: 'the correct schema set is returned'
             result.getName().contains('someSchemaSet')
             result.getDataspaceName().contains('someDataspace')
-            result.getModuleReferences().contains(new ModuleReference('stores', 'org:onap:ccsdk:sample', '2020-09-15'))
+            result.getExtendedModuleReferences().contains(new ExtendedModuleReference('stores', 'org:onap:ccsdk:sample', '2020-09-15'))
     }
 
     def 'Schema set caching.'() {
@@ -106,9 +118,18 @@ class CpsModuleServiceImplSpec extends Specification {
 
     def 'Get all yang resources module references.'(){
         given: 'an already present module reference'
+            def moduleReferences = [new ExtendedModuleReference()]
+            mockModuleStoreService.getYangResourceModuleReferences('someDataspaceName') >> moduleReferences
+        expect: 'the list provided by persistence service is returned as result'
+            objectUnderTest.getYangResourceModuleReferences('someDataspaceName') == moduleReferences
+    }
+
+
+    def 'Get all yang resources module references for the given dataspace name and anchor name.'(){
+        given: 'the module store service service returns a list module references'
             def moduleReferences = [new ModuleReference()]
-            mockModuleStoreService.getAllYangResourcesModuleReferences() >> moduleReferences
+            mockModuleStoreService.getYangResourceModuleReferences('someDataspaceName', 'someAnchorName') >> moduleReferences
         expect: 'the list provided by persistence service is returned as result'
-            objectUnderTest.getAllYangResourcesModuleReferences() == moduleReferences
+            objectUnderTest.getYangResourcesModuleReferences('someDataspaceName', 'someAnchorName') == moduleReferences
     }
 }