X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-service%2Fsrc%2Ftest%2Fgroovy%2Forg%2Fonap%2Fcps%2Fapi%2Fimpl%2FE2ENetworkSliceSpec.groovy;h=904e8263b2c84e688e2269390cd520d4066cd3dd;hb=e8c429e2bddcb52b6cd563c5308e49e57e457073;hp=d6751bb4e25770cc0102e13eec29e14d289f82a0;hpb=3786f6394d8a973adba50bb5af3b459f0d296f93;p=cps.git diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy index d6751bb4e..904e8263b 100755 --- a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy +++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy @@ -21,25 +21,69 @@ package org.onap.cps.api.impl import org.onap.cps.TestUtils +import org.onap.cps.api.CpsAdminService +import org.onap.cps.spi.CpsDataPersistenceService import org.onap.cps.spi.CpsModulePersistenceService +import org.onap.cps.spi.model.Anchor +import org.onap.cps.yang.YangTextSchemaSourceSetBuilder import spock.lang.Specification class E2ENetworkSliceSpec extends Specification { def mockModuleStoreService = Mock(CpsModulePersistenceService) + def mockDataStoreService = Mock(CpsDataPersistenceService) + def mockCpsAdminService = Mock(CpsAdminService) + def cpsModuleServiceImpl = new CpsModuleServiceImpl() + def cpsDataServiceImple = new CpsDataServiceImpl() def mockYangTextSchemaSourceSetCache = Mock(YangTextSchemaSourceSetCache) - def objectUnderTest = new CpsModuleServiceImpl() + + def dataspaceName = 'someDataspace' + def anchorName = 'someAnchor' + def schemaSetName = 'someSchemaSet' def setup() { - objectUnderTest.cpsModulePersistenceService = mockModuleStoreService - objectUnderTest.yangTextSchemaSourceSetCache = mockYangTextSchemaSourceSetCache + cpsDataServiceImple.cpsDataPersistenceService = mockDataStoreService + cpsDataServiceImple.cpsAdminService = mockCpsAdminService + cpsDataServiceImple.yangTextSchemaSourceSetCache = mockYangTextSchemaSourceSetCache + cpsModuleServiceImpl.yangTextSchemaSourceSetCache = mockYangTextSchemaSourceSetCache + cpsModuleServiceImpl.cpsModulePersistenceService = mockModuleStoreService } def 'E2E model can be parsed by CPS.'() { given: 'Valid yang resource as name-to-content map' def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap('e2e/basic/ietf-inet-types.yang','e2e/basic/ietf-yang-types.yang','e2e/basic/ran-network2020-08-06.yang') when: 'Create schema set method is invoked' - objectUnderTest.createSchemaSet('someDataspace', 'someSchemaSet', yangResourcesNameToContentMap) + cpsModuleServiceImpl.createSchemaSet(dataspaceName, schemaSetName, yangResourcesNameToContentMap) + then: 'Parameters are validated and processing is delegated to persistence service' + 1 * mockModuleStoreService.storeSchemaSet(dataspaceName, schemaSetName, yangResourcesNameToContentMap) + } + + def 'E2E Coverage Area-Tracking Area & TA-Cell mapping model can be parsed by CPS.'() { + given: 'Valid yang resource as name-to-content map' + def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap( + 'e2e/basic/cps-cavsta-onap-internal2021-01-28.yang') + when: 'Create schema set method is invoked' + cpsModuleServiceImpl.createSchemaSet(dataspaceName, schemaSetName, yangResourcesNameToContentMap) + then: 'Parameters are validated and processing is delegated to persistence service' + 1 * mockModuleStoreService.storeSchemaSet(dataspaceName, schemaSetName, yangResourcesNameToContentMap) + } + + def 'E2E Coverage Area-Tracking Area & TA-Cell mapping data can be parsed by CPS.'() { + given: 'Valid yang resource as name-to-content map' + def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap( + 'e2e/basic/cps-cavsta-onap-internal2021-01-28.yang') + def schemaContext = YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap).getSchemaContext() + and : 'a valid json is provided for the model' + def jsonData = TestUtils.getResourceFileContent('e2e/basic/Data.txt') + and : 'all the further dependencies are mocked ' + mockCpsAdminService.getAnchor(dataspaceName, anchorName) >> + new Anchor().builder().name(anchorName).schemaSetName(schemaSetName).build() + mockYangTextSchemaSourceSetCache.get(dataspaceName, schemaSetName) >> + YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap) + mockModuleStoreService.getYangSchemaResources(dataspaceName, schemaSetName) >> schemaContext + when: 'saveData method is invoked' + cpsDataServiceImple.saveData(dataspaceName, anchorName, jsonData) then: 'Parameters are validated and processing is delegated to persistence service' - 1 * mockModuleStoreService.storeSchemaSet('someDataspace', 'someSchemaSet', yangResourcesNameToContentMap) + 1 * mockDataStoreService.storeDataNode(dataspaceName, anchorName, + {dataNode -> dataNode.xpath == '/ran-coverage-area' && dataNode.childDataNodes.size() == 4}) } }