diff options
Diffstat (limited to 'cps-service/src/test')
-rw-r--r-- | cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModuleServiceImplSpec.groovy (renamed from cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModulePersistenceServiceImplSpec.groovy) | 25 | ||||
-rw-r--r-- | cps-service/src/test/groovy/org/onap/cps/utils/YangTextSchemaSourceSetSpec.groovy | 8 | ||||
-rw-r--r-- | cps-service/src/test/resources/invalid-missing-import.yang | 15 |
3 files changed, 38 insertions, 10 deletions
diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModulePersistenceServiceImplSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModuleServiceImplSpec.groovy index 39d8ec3bca..a93411bfe9 100644 --- a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModulePersistenceServiceImplSpec.groovy +++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModuleServiceImplSpec.groovy @@ -20,12 +20,15 @@ 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.utils.YangUtils import org.opendaylight.yangtools.yang.common.Revision import org.opendaylight.yangtools.yang.model.api.SchemaContext import spock.lang.Specification -class CpsModulePersistenceServiceImplSpec extends Specification { +class CpsModuleServiceImplSpec extends Specification { def mockModuleStoreService = Mock(CpsModulePersistenceService) def objectUnderTest = new CpsModuleServiceImpl() @@ -33,14 +36,22 @@ class CpsModulePersistenceServiceImplSpec extends Specification { objectUnderTest.cpsModulePersistenceService = mockModuleStoreService } - def assertModule(SchemaContext schemaContext) { - def optionalModule = schemaContext.findModule('stores', Revision.of('2020-09-15')) - return schemaContext.modules.size() == 1 && optionalModule.isPresent() + 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' + objectUnderTest.createSchemaSet('someDataspace', 'someSchemaSet', yangResourcesNameToContentMap) + then: 'Parameters are validated and processing is delegated to persistence service' + 1 * mockModuleStoreService.storeSchemaSet('someDataspace', 'someSchemaSet', yangResourcesNameToContentMap) } - def 'Store a SchemaContext'() { - expect: 'No exception to be thrown when a valid model (schema) is stored' - objectUnderTest.storeSchemaContext(Stub(SchemaContext.class), "sampleDataspace") + def 'Create schema set from invalid resources'() { + given: 'Invalid yang resource as name-to-content map' + def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap('invalid.yang') + when: 'Create schema set method is invoked' + objectUnderTest.createSchemaSet('someDataspace', 'someSchemaSet', yangResourcesNameToContentMap) + then: 'Model validation exception is thrown' + thrown(ModelValidationException.class) } } diff --git a/cps-service/src/test/groovy/org/onap/cps/utils/YangTextSchemaSourceSetSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/utils/YangTextSchemaSourceSetSpec.groovy index fd1b144309..9a19def89c 100644 --- a/cps-service/src/test/groovy/org/onap/cps/utils/YangTextSchemaSourceSetSpec.groovy +++ b/cps-service/src/test/groovy/org/onap/cps/utils/YangTextSchemaSourceSetSpec.groovy @@ -20,6 +20,7 @@ package org.onap.cps.utils import org.onap.cps.TestUtils +import org.onap.cps.spi.exceptions.ModelValidationException import org.onap.cps.yang.YangTextSchemaSourceSetBuilder import org.opendaylight.yangtools.yang.common.Revision import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException @@ -48,8 +49,9 @@ class YangTextSchemaSourceSetSpec extends Specification { then: 'an exception is thrown' thrown(expectedException) where: 'the following parameters are used' - filename | description || expectedException - 'invalid.yang' | 'invalid content' || YangSyntaxErrorException - 'invalid-empty.yang'| 'no valid content' || YangSyntaxErrorException + filename | description || expectedException + 'invalid.yang' | 'invalid content' || ModelValidationException + 'invalid-empty.yang' | 'no valid content' || ModelValidationException + 'invalid-missing-import.yang' | 'no dependency module' || ModelValidationException } } diff --git a/cps-service/src/test/resources/invalid-missing-import.yang b/cps-service/src/test/resources/invalid-missing-import.yang new file mode 100644 index 0000000000..3a0cc87f71 --- /dev/null +++ b/cps-service/src/test/resources/invalid-missing-import.yang @@ -0,0 +1,15 @@ +module test-module { + yang-version 1.1; + + namespace "org:onap:cps:test:test-module"; + revision "2020-02-02"; + prefix "self"; + + import missing-module { + prefix "missing"; + } + + container self-container { + uses "missing:missing-group"; + } +} |