From 5ab9e64d98c475cff6d1aa35af16bf6f4c4e7c04 Mon Sep 17 00:00:00 2001 From: lukegleeson Date: Tue, 4 Apr 2023 10:17:18 +0100 Subject: Add Query Spec to integration-test package Issue-ID: CPS-1598 Signed-off-by: lukegleeson Change-Id: Ifab8863eae4a3ee07ba3d6096e73f9f98077584d --- .../CpsQueryServiceIntegrationSpec.groovy | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsQueryServiceIntegrationSpec.groovy diff --git a/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsQueryServiceIntegrationSpec.groovy b/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsQueryServiceIntegrationSpec.groovy new file mode 100644 index 000000000..496b36db9 --- /dev/null +++ b/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsQueryServiceIntegrationSpec.groovy @@ -0,0 +1,48 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2023 Nordix Foundation + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.cps.integration.functional + +import org.onap.cps.integration.base.FunctionalSpecBase +import org.onap.cps.spi.FetchDescendantsOption + +class CpsQueryServiceIntegrationSpec extends FunctionalSpecBase { + + def objectUnderTest + + def setup() { objectUnderTest = cpsQueryService } + + def 'Query bookstore using CPS path where #scenario.'() { + when: 'query data nodes for bookstore container' + def result = objectUnderTest.queryDataNodes(FUNCTIONAL_TEST_DATASPACE, BOOKSTORE_ANCHOR, cpsPath, FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS) + then: 'the result contains expected number of nodes' + assert result.size() == expectedResultSize + and: 'the result contains the expected leaf values' + result.leaves.forEach( dataNodeLeaves -> { + expectedLeaves.forEach( (expectedLeafKey,expectedLeafValue) -> { + assert dataNodeLeaves[expectedLeafKey] == expectedLeafValue + }) + }) + where: + scenario | cpsPath || expectedResultSize | expectedLeaves + 'the and condition is used' | '//books[@lang="English" and @price=15]' || 2 | [lang:"English", price:15] + 'the and is used where result does not exist' | '//books[@lang="English" and @price=1000]' || 0 | [] + } +} -- cgit 1.2.3-korg