summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrajesh.kumar <rk00747546@techmahindra.com>2023-08-11 14:17:49 +0530
committerrajesh.kumar <rk00747546@techmahindra.com>2023-08-17 17:39:46 +0530
commit3a822eedb83536a5e268ef03d5998c6633aedff0 (patch)
tree776b2c8d0302c857beb960bae44fa838d9a68e77
parent0a3b420e82a28dd93199a04ae09ad686c5ab82eb (diff)
Add code coverage for missing branches in pagination API(ep4)
Add new test cases for missing branch covereage in Pagiantion API - Added test cases in cps-rest to cover the scenario of missing page index and missing page size Issue-ID:CPS-1835 Change-ID: I73f97f986a817d423f93a8d922dcd9647b1108bc Signed-off-by: rajesh.kumar <rk00747546@techmahindra.com>
-rw-r--r--cps-rest/src/test/groovy/org/onap/cps/rest/controller/QueryRestControllerSpec.groovy38
1 files changed, 36 insertions, 2 deletions
diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/QueryRestControllerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/QueryRestControllerSpec.groovy
index fd669b75c3..c30a63fd46 100644
--- a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/QueryRestControllerSpec.groovy
+++ b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/QueryRestControllerSpec.groovy
@@ -181,12 +181,46 @@ class QueryRestControllerSpec extends Specification {
.andReturn().response
then: 'the response contains the the datanode in json format'
assert response.status == HttpStatus.OK.value()
- assert Integer.valueOf(response.getHeaderValue("total-pages")) == expectedPageSize
+ assert Integer.valueOf(response.getHeaderValue("total-pages")) == expectedTotalPageSize
assert response.getContentAsString().contains('{"xpath":{"leaf":"value","leafList":["leaveListElement1","leaveListElement2"]}}')
assert response.getContentAsString().contains('{"xpath":{"leaf":"value","leafList":["leaveListElement3","leaveListElement4"]}}')
where: 'the following options for include descendants are provided in the request'
- scenario | pageIndex | pageSize | totalAnchors || expectedPageSize
+ scenario | pageIndex | pageSize | totalAnchors || expectedTotalPageSize
'1st page with all anchors' | 1 | 3 | 3 || 1
'1st page with less anchors' | 1 | 2 | 3 || 2
}
+
+ def 'Query data node across all anchors with pagination option with #scenario.'() {
+ given: 'service method returns a list containing a data node from different anchors'
+ def dataNode1 = new DataNodeBuilder().withXpath('/xpath')
+ .withAnchor('my_anchor')
+ .withLeaves([leaf: 'value', leafList: ['leaveListElement1', 'leaveListElement2']]).build()
+ def dataNode2 = new DataNodeBuilder().withXpath('/xpath')
+ .withAnchor('my_anchor_2')
+ .withLeaves([leaf: 'value', leafList: ['leaveListElement3', 'leaveListElement4']]).build()
+ and: 'the query endpoint'
+ def dataspaceName = 'my_dataspace'
+ def cpsPath = 'some/cps/path'
+ def dataNodeEndpoint = "$basePath/v2/dataspaces/$dataspaceName/nodes/query"
+ mockCpsQueryService.queryDataNodesAcrossAnchors(dataspaceName, cpsPath,
+ INCLUDE_ALL_DESCENDANTS, PaginationOption.NO_PAGINATION) >> [dataNode1, dataNode2]
+ mockCpsQueryService.countAnchorsForDataspaceAndCpsPath(dataspaceName, cpsPath) >> 2
+ when: 'query data nodes API is invoked'
+ def response =
+ mvc.perform(
+ get(dataNodeEndpoint)
+ .param('cps-path', cpsPath)
+ .param('descendants', "all")
+ .param(parameterName, "1"))
+ .andReturn().response
+ then: 'the response contains the the datanode in json format'
+ assert response.status == HttpStatus.OK.value()
+ assert Integer.valueOf(response.getHeaderValue("total-pages")) == 1
+ assert response.getContentAsString().contains('{"xpath":{"leaf":"value","leafList":["leaveListElement1","leaveListElement2"]}}')
+ assert response.getContentAsString().contains('{"xpath":{"leaf":"value","leafList":["leaveListElement3","leaveListElement4"]}}')
+ where:
+ scenario | parameterName
+ 'only page size' | 'pageSize'
+ 'only page index' | 'pageIndex'
+ }
}