diff options
author | rajesh.kumar <rk00747546@techmahindra.com> | 2023-08-11 14:17:49 +0530 |
---|---|---|
committer | rajesh.kumar <rk00747546@techmahindra.com> | 2023-08-17 17:39:46 +0530 |
commit | 3a822eedb83536a5e268ef03d5998c6633aedff0 (patch) | |
tree | 776b2c8d0302c857beb960bae44fa838d9a68e77 | |
parent | 0a3b420e82a28dd93199a04ae09ad686c5ab82eb (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.groovy | 38 |
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' + } } |