2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021 Nordix Foundation
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 * SPDX-License-Identifier: Apache-2.0
17 * ============LICENSE_END=========================================================
20 package org.onap.cps.api.impl
22 import org.onap.cps.api.CpsDataService
23 import org.onap.cps.api.CpsQueryService
24 import org.onap.cps.nfproxy.api.impl.NfProxyDataServiceImpl
25 import org.onap.cps.spi.FetchDescendantsOption
26 import spock.lang.Specification
28 class NfProxyDataServiceImplSpec extends Specification {
29 def objectUnderTest = new NfProxyDataServiceImpl()
30 def mockcpsDataService = Mock(CpsDataService)
31 def mockcpsQueryService = Mock(CpsQueryService)
34 objectUnderTest.cpsDataService = mockcpsDataService
35 objectUnderTest.cpsQueryService = mockcpsQueryService
38 def cmHandle = 'some handle'
39 def expectedDataspaceName = 'NFP-Operational'
41 def 'Query data nodes by cps path with #fetchDescendantsOption.'() {
42 given: 'a cm Handle and a cps path'
43 def cpsPath = '/cps-path'
44 when: 'queryDataNodes is invoked'
45 objectUnderTest.queryDataNodes(cmHandle, cpsPath, fetchDescendantsOption)
46 then: 'the persistence service is called once with the correct parameters'
47 1 * mockcpsQueryService.queryDataNodes(expectedDataspaceName, cmHandle, cpsPath, fetchDescendantsOption)
48 where: 'all fetch descendants options are supported'
49 fetchDescendantsOption << FetchDescendantsOption.values()
52 def 'Update data node leaves.'() {
53 given: 'a cm Handle and a cps path'
55 def jsonData = 'some json'
56 when: 'updateNodeLeaves is invoked'
57 objectUnderTest.updateNodeLeaves(cmHandle, xpath, jsonData)
58 then: 'the persistence service is called once with the correct parameters'
59 1 * mockcpsDataService.updateNodeLeaves(expectedDataspaceName, cmHandle, xpath, jsonData)
62 def 'Replace data node tree.'() {
63 given: 'a cm Handle and a cps path'
65 def jsonData = 'some json'
66 when: 'replaceNodeTree is invoked'
67 objectUnderTest.replaceNodeTree(cmHandle, xpath, jsonData)
68 then: 'the persistence service is called once with the correct parameters'
69 1 * mockcpsDataService.replaceNodeTree(expectedDataspaceName, cmHandle, xpath, jsonData)