diff options
author | Ruslan Kashapov <ruslan.kashapov@pantheon.tech> | 2020-12-10 10:49:59 +0200 |
---|---|---|
committer | Ruslan Kashapov <ruslan.kashapov@pantheon.tech> | 2020-12-24 09:57:48 +0200 |
commit | acfb2078d510f5cec7b6ce57c03ba42663b8f3ee (patch) | |
tree | 0ed0437b534e2d94208c51398afb3dff682e8d12 /cps-service/src/test/groovy/org | |
parent | 1d9845679de45007db30eee42c105edcffd972fb (diff) |
Create schema set REST API and service level
Issue-ID: CPS-123
Change-Id: Ie6d5fd4755454331415af7b80eaf85925efab395
Signed-off-by: Ruslan Kashapov <ruslan.kashapov@pantheon.tech>
Diffstat (limited to 'cps-service/src/test/groovy/org')
-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 |
2 files changed, 23 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 } } |