From 1c840a4e3bc9dc9fe389d460e1bb1c0666614955 Mon Sep 17 00:00:00 2001 From: niamhcore Date: Tue, 23 Feb 2021 15:32:45 +0000 Subject: Updating RAN Inventory tests to use the latest model and data Issue-ID: CPS-200 Signed-off-by: niamhcore Change-Id: I22fbfd66a2f355f38dc4502445df8041ed0db7c5 --- .../onap/cps/api/impl/E2ENetworkSliceSpec.groovy | 17 +- .../e2e/basic/cps-ran-inventory-data.json | 59 +++---- .../resources/e2e/basic/cps-ran-inventory.yang | 176 -------------------- .../e2e/basic/cps-ran-inventory@2021-01-28.yang | 183 +++++++++++++++++++++ 4 files changed, 225 insertions(+), 210 deletions(-) delete mode 100644 cps-service/src/test/resources/e2e/basic/cps-ran-inventory.yang create mode 100644 cps-service/src/test/resources/e2e/basic/cps-ran-inventory@2021-01-28.yang 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 75c98a82d..a24bd0af5 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 @@ -106,7 +106,7 @@ class E2ENetworkSliceSpec extends Specification { def dataNodeStored given: 'valid yang resource as name-to-content map' def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap( - 'e2e/basic/cps-ran-inventory.yang') + 'e2e/basic/cps-ran-inventory@2021-01-28.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.json') @@ -122,18 +122,23 @@ class E2ENetworkSliceSpec extends Specification { { args -> dataNodeStored = args[2]} and: 'the size of the tree is correct' def cpsRanInventory = TestUtils.getFlattenMapByXpath(dataNodeStored) - assert cpsRanInventory.size() == 3 + assert cpsRanInventory.size() == 4 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\']') + def ranSlices = cpsRanInventory.get('/ran-inventory/ran-slices[@rannfnssiid=\'14559ead-f4fe-4c1c-a94c-8015fad3ea35\']') + def sliceProfilesList = cpsRanInventory.get('/ran-inventory/ran-slices[@rannfnssiid=\'14559ead-f4fe-4c1c-a94c-8015fad3ea35\']/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']') + def pLMNIdList = cpsRanInventory.get('/ran-inventory/ran-slices[@rannfnssiid=\'14559ead-f4fe-4c1c-a94c-8015fad3ea35\']/sliceProfilesList[@sliceProfileId=\'f33a9dd8-ae51-4acf-8073-c9390c25f6f1\']/pLMNIdList[@mcc=\'310\' and @mnc=\'410\']') ranInventory.getChildDataNodes().size() == 1 - ranInventory.getChildDataNodes().find( {it.xpath == sliceProfilesList.xpath}) + ranInventory.getChildDataNodes().find( {it.xpath == ranSlices.xpath}) + and: 'ranSlices contains the correct child node' + ranSlices.getChildDataNodes().size() == 1 + ranSlices.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' + and: 'pLMNIdList contains no children' pLMNIdList.getChildDataNodes().size() == 0 + } def 'E2E RAN Schema Model.'(){ diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json index 1dbdab2ca..fb2efb1c9 100644 --- a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json +++ b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory-data.json @@ -1,31 +1,34 @@ { -"ran-inventory":{ - "rannfnssiid": "14559ead-f4fe-4c1c-a94c-8015fad3ea35", - "subnetStatus": "active", - "nsstid": "2372a5dc-ee24-4a45-85f5-65103dfdc5b4", - "slicetype": "embb", - "isshareable": "Shareable", - "sliceProfilesList": [ - { - "sliceProfileId": "f33a9dd8-ae51-4acf-8073-c9390c25f6f1", - "sNSSAI": "001-11000", - "maxNumberofUEs": 300, - "latency": 5, - "uLThptPerSlice": 40, - "dLThptPerSlice": 50, - "maxNumberofConns": 500, - "uEMobilityLevel": "FULLY MOBILITY", - "coverageAreaList": [ - "Washington" - ], - "resourceSharingLevel": "Shareable", - "pLMNIdList": [ - { - "mcc": "310", - "mnc": "410" - } - ] - } - ] + "cps-ran-inventory:ran-inventory":{ + "ran-slices":[{ + "rannfnssiid": "14559ead-f4fe-4c1c-a94c-8015fad3ea35", + "subnetStatus": "active", + "nsstid": "2372a5dc-ee24-4a45-85f5-65103dfdc5b4", + "slicetype": "embb", + "isshareable": "Shareable", + "sliceProfilesList": [ + { + "sliceProfileId": "f33a9dd8-ae51-4acf-8073-c9390c25f6f1", + "sNSSAI": "001-11000", + "maxNumberofUEs": 300, + "latency": 5, + "uLThptPerSlice": 40, + "dLThptPerSlice": 50, + "maxNumberofConns": 500, + "uEMobilityLevel": "FULLY MOBILITY", + "coverageAreaList": [ + "Washington" + ], + "resourceSharingLevel": "Shareable", + "pLMNIdList": [ + { + "mcc": "310", + "mnc": "410" + } + ] + } + ] + } + ] } } \ No newline at end of file diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory.yang b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory.yang deleted file mode 100644 index 0e504cafa..000000000 --- a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory.yang +++ /dev/null @@ -1,176 +0,0 @@ -module cps-ran-inventory { - yang-version 1.1; - namespace "org:onap:ccsdk:features:sdnr:northbound:cps-ran-inventory"; - prefix ran-info; - - organization - "Open Network Automation Platform - ONAP - "; - contact - "Editors: - Àhila Pandaram - - - Swaminathan Seetharaman - "; - description - "This module contains YANG definitions of RAN inventory that contains the NSSI and slice profile details. - - Copyright (C) 2020-2021 Wipro Limited. - - Licensed under the Apache License, Version 2.0 (the 'License') - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an 'AS IS' BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License."; - - revision 2021-01-28 { - description - "RAN Network YANG Model for ONAP/O-RAN POC"; - reference - "https://wiki.onap.org/display/DW/E2E+Network+Slicing+Use+Case+in+R7+Guilin"; - } - - typedef Mcc { - type string; - description - "The mobile country code consists of three decimal digits, - The first digit of the mobile country code identifies the geographic - region (the digits 1 and 8 are not used):"; - reference - "3GPP TS 23.003 subclause 2.2 and 12.1"; - } - - typedef Mnc { - type string; - description - "The mobile network code consists of two or three - decimal digits (for example: MNC of 001 is not the same as MNC of 01)"; - reference - "3GPP TS 23.003 subclause 2.2 and 12.1"; - } - - grouping SliceProfile{ - leaf sliceProfileId{ - type string; - mandatory true; - description "slice profile id"; - } - leaf sNSSAI{ - type string; - mandatory false; - description "The S-NSSAI may include both the SST and SD fields (in which case the S-NSSAI length is 32 bits in total), or the S-NSSAI may just include the SST field (in which case the S-NSSAI length is 8 bits only)"; - } - leaf maxNumberofUEs{ - type int64 { range "0..68719476735"; } - mandatory false; - description "maximum number of UEs"; - } - leaf latency{ - type int64 { range "0..68719476735"; } - mandatory false; - description "latency of the slice requested by the operator"; - } - leaf uLThptPerSlice{ - type int64 { range "0..68719476735"; } - mandatory false; - description "uplink throughput of the slice requested by the operator"; - } - leaf dLThptPerSlice{ - type int64 { range "0..68719476735"; } - mandatory false; - description "downlink throughput of the slice requested by the operator"; - } - leaf maxNumberofConns{ - type int64 { range "0..68719476735"; } - mandatory false; - description "maximum number of connections to be served by the slice"; - } - leaf uEMobilityLevel{ - type string; - mandatory false; - description "Mobility level of the UE"; - } - leaf resourceSharingLevel{ - type string; - description "Resource sharing level"; - } - - leaf-list coverageAreaList{ - type string; - config true; - description "Identifies the list of coverage areas to be served by the slice"; - } - - list pLMNIdList { - description "List of at most six entries of PLMN Identifiers, but at least - one (the primary PLMN Id). - The PLMN Identifier is composed of a Mobile Country Code (MCC) and a - Mobile Network Code (MNC)."; - key "mcc mnc"; - uses PLMNId; - } - - } - - grouping PLMNId { - description - "It specifies the PLMN identifier to be used as part of the global RAN node identity"; - reference - "TS 23.658"; - leaf mcc { - type Mcc; - mandatory true; - description - "The mobile country code consists of three decimal digits, - The first digit of the mobile country code identifies the geographic - region (the digits 1 and 8 are not used)"; - } - leaf mnc { - type Mnc; - mandatory true; - description - "The mobile network code consists of two or three - decimal digits (for example: MNC of 001 is not the same as MNC of 01)"; - } - } - - container ran-inventory{ - leaf rannfnssiid{ - description "NSSI of a RAN network function"; - type string; - } - - list sliceProfilesList{ - uses SliceProfile; - key "sliceProfileId"; - description "List of slice profiles supported by the ran slice"; - } - - leaf subnetStatus{ - description "status of RAN NF NSSI"; - type string; - } - - leaf nsstid{ - description "template Id of a RAN NF NSST"; - type string; - } - - leaf slicetype{ - description "Type of RAN Slice"; - type string; - } - - leaf isshareable{ - description "Shareability of RAN Slice"; - type string; - } - } - } diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-inventory@2021-01-28.yang b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory@2021-01-28.yang new file mode 100644 index 000000000..c16a68251 --- /dev/null +++ b/cps-service/src/test/resources/e2e/basic/cps-ran-inventory@2021-01-28.yang @@ -0,0 +1,183 @@ +module cps-ran-inventory { + yang-version 1.1; + namespace "org:onap:ccsdk:features:sdnr:northbound:cps-ran-inventory"; + prefix ran-info; + + organization + "Open Network Automation Platform - ONAP + "; + contact + "Editors: + Àhila Pandaram + + + Swaminathan Seetharaman + "; + description + "This module contains YANG definitions of RAN inventory that contains the NSSI and slice profile details. + + Copyright (C) 2020-2021 Wipro Limited. + + Licensed under the Apache License, Version 2.0 (the 'License') + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2021-01-28 { + description + "RAN Network YANG Model for ONAP/O-RAN POC"; + reference + "https://wiki.onap.org/display/DW/E2E+Network+Slicing+Use+Case+in+R7+Guilin"; + } + + typedef Mcc { + type string; + description + "The mobile country code consists of three decimal digits, + The first digit of the mobile country code identifies the geographic + region (the digits 1 and 8 are not used):"; + reference + "3GPP TS 23.003 subclause 2.2 and 12.1"; + } + + typedef Mnc { + type string; + description + "The mobile network code consists of two or three + decimal digits (for example: MNC of 001 is not the same as MNC of 01)"; + reference + "3GPP TS 23.003 subclause 2.2 and 12.1"; + } + + grouping SliceProfile{ + leaf sliceProfileId{ + type string; + mandatory true; + description "slice profile id"; + } + leaf sNSSAI{ + type string; + mandatory false; + description "The S-NSSAI may include both the SST and SD fields (in which case the S-NSSAI length is 32 bits in total), or the S-NSSAI may just include the SST field (in which case the S-NSSAI length is 8 bits only)"; + } + leaf maxNumberofUEs{ + type int64 { range "0..68719476735"; } + mandatory false; + description "maximum number of UEs"; + } + leaf latency{ + type int64 { range "0..68719476735"; } + mandatory false; + description "latency of the slice requested by the operator"; + } + leaf uLThptPerSlice{ + type int64 { range "0..68719476735"; } + mandatory false; + description "uplink throughput of the slice requested by the operator"; + } + leaf dLThptPerSlice{ + type int64 { range "0..68719476735"; } + mandatory false; + description "downlink throughput of the slice requested by the operator"; + } + leaf maxNumberofConns{ + type int64 { range "0..68719476735"; } + mandatory false; + description "maximum number of connections to be served by the slice"; + } + leaf uEMobilityLevel{ + type string; + mandatory false; + description "Mobility level of the UE"; + } + leaf resourceSharingLevel{ + type string; + description "Resource sharing level"; + } + + leaf-list coverageAreaList{ + type string; + config true; + description "Identifies the list of coverage areas to be served by the slice"; + } + + list pLMNIdList { + description "List of at most six entries of PLMN Identifiers, but at least + one (the primary PLMN Id). + The PLMN Identifier is composed of a Mobile Country Code (MCC) and a + Mobile Network Code (MNC)."; + key "mcc mnc"; + uses PLMNId; + } + + } + + grouping PLMNId { + description + "It specifies the PLMN identifier to be used as part of the global RAN node identity"; + reference + "TS 23.658"; + leaf mcc { + type Mcc; + mandatory true; + description + "The mobile country code consists of three decimal digits, + The first digit of the mobile country code identifies the geographic + region (the digits 1 and 8 are not used)"; + } + leaf mnc { + type Mnc; + mandatory true; + description + "The mobile network code consists of two or three + decimal digits (for example: MNC of 001 is not the same as MNC of 01)"; + } + } + + grouping ran-slices{ + leaf rannfnssiid{ + description "NSSI of a RAN network function"; + type string; + } + + list sliceProfilesList{ + uses SliceProfile; + key "sliceProfileId"; + description "List of slice profiles supported by the ran slice"; + } + + leaf subnetStatus{ + description "status of RAN NF NSSI"; + type string; + } + + leaf nsstid{ + description "template Id of a RAN NF NSST"; + type string; + } + + leaf slicetype{ + description "Type of RAN Slice"; + type string; + } + + leaf isshareable{ + description "Shareability of RAN Slice"; + type string; + } + } + container ran-inventory{ + list ran-slices{ + uses ran-slices; + key "rannfnssiid"; + description "List of RAN Slices"; + } + } + } -- cgit 1.2.3-korg