You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »


This page covers the groovy tests to test Coverage Area-Tracking Area & TA-Cell mapping  model and data. It also cover the queries that the CPS team will need to implement.


CPS-199 - Getting issue details... STATUS

Models and data

There was an issue with the original json data provided. We corrected this issue by modifying the root element and the E2E Network Slicing team was notified. The corrected model and data was later received and all cps-test cases passes.

cps-cavsta-onap-internal2021-01-28.yang

cps-cavsta-Data.txt

Queries used for the RAN inventory model

API PathDescription of Operation
GET 
/ran-coverage-area/pLMNIdList[@mcc={}, and @mnc={}]/coverage-area[@coverageArea={}]

Find a slice profile list that has the given sNSSAI value

 list sliceProfilesList{
  		uses SliceProfile;
  		key "sliceProfileId";
  		description "List of slice profiles supported by the ran slice";
  	}


  • use query of cpsPath starting with given path (maybe even add '[') -  '/ran-inventory/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']
  • use json-query tools to only get the 'fragment' that contain required name-value pair
    (probably need native-query annotation)
PUT /ran-inventory/{rannfnssiid}/sliceProfilesList/Add/update the given slice profile for the given rannfnssi



Groovy Test - E2E Coverage Area-Tracking Area & TA-Cell mapping data can be parsed for RAN inventory

Link to code review: https://gerrit.onap.org/r/c/cps/+/117447/2/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy


   def 'E2E Coverage Area-Tracking Area & TA-Cell mapping data can be parsed for RAN inventory.'() {
        def result
        given: 'valid yang resource as name-to-content map'
            def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap(
                    'e2e/basic/cps-ran-inventory.yang')
            def schemaContext = YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap).getSchemaContext()
        and : 'a valid json is provided for the model'
            def jsonData = TestUtils.getResourceFileContent('e2e/basic/cps-ran-inventory-data.txt')
        and : 'all the further dependencies are mocked '
            mockCpsAdminService.getAnchor('someDataspace', 'someAnchor') >>
                    new Anchor().builder().name('someAnchor').schemaSetName('someSchemaSet').build()
            mockYangTextSchemaSourceSetCache.get('someDataspace', 'someSchemaSet') >> YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap)
            mockModuleStoreService.getYangSchemaResources('someDataspace', 'someSchemaSet') >> schemaContext
        when: 'saveData method is invoked'
            cpsDataServiceImple.saveData('someDataspace', 'someAnchor', jsonData)
        then: 'parameters are validated and processing is delegated to persistence service'
            1 * mockDataStoreService.storeDataNode('someDataspace', 'someAnchor', _) >>
                    { args -> result = args[2]}
        and: 'the size of the tree is correct'
            def cpsRanInventory = treeToFlatMapByXpath(new HashMap<>(), result)
            assert cpsRanInventory.size() == 3
        and: 'ran-inventory contains the correct child node'
            def ranInventory = cpsRanInventory.get('/ran-inventory')
            def sliceProfilesList = cpsRanInventory.get('/ran-inventory/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']')
            def pLMNIdList = cpsRanInventory.get('/ran-inventory/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']/pLMNIdList[@mcc=\'310\' and @mnc=\'410\']')
            ranInventory.getChildDataNodes().size() == 1
            ranInventory.getChildDataNodes().find( {it.xpath == sliceProfilesList.xpath})
        and: 'sliceProfilesList contains the correct child node'
            sliceProfilesList.getChildDataNodes().size() == 1
            sliceProfilesList.getChildDataNodes().find( {it.xpath == pLMNIdList.xpath})
        and: 'pLMNIdList contains the no child nodes'
            pLMNIdList.getChildDataNodes().size() == 0
    }


  • No labels