2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021-2023 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
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.cps.ncmp.api.impl.operations
23 import com.fasterxml.jackson.databind.ObjectMapper
24 import org.onap.cps.ncmp.api.impl.client.DmiRestClient
25 import org.onap.cps.ncmp.api.impl.config.DmiWebClientConfiguration
26 import org.onap.cps.ncmp.api.impl.config.NcmpConfiguration
27 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle
28 import org.onap.cps.ncmp.api.impl.utils.DmiServiceUrlBuilder
29 import org.onap.cps.ncmp.api.impl.inventory.CmHandleState
30 import org.onap.cps.ncmp.api.impl.inventory.CompositeState
31 import org.onap.cps.ncmp.api.impl.inventory.InventoryPersistence
32 import org.onap.cps.spi.utils.CpsValidator
33 import org.spockframework.spring.SpringBean
34 import spock.lang.Shared
35 import spock.lang.Specification
37 abstract class DmiOperationsBaseSpec extends Specification {
40 def yangModelCmHandleProperty = new YangModelCmHandle.Property('prop1', 'val1')
43 DmiRestClient mockDmiRestClient = Mock()
46 InventoryPersistence mockInventoryPersistence = Mock()
48 def mockCpsValidator = Mock(CpsValidator)
51 ObjectMapper spyObjectMapper = Spy()
54 DmiServiceUrlBuilder dmiServiceUrlBuilder = new DmiServiceUrlBuilder(new DmiWebClientConfiguration.DmiProperties(), mockCpsValidator)
56 def yangModelCmHandle = new YangModelCmHandle()
57 def static dmiServiceName = 'some service name'
58 def static cmHandleId = 'some-cm-handle'
59 def static resourceIdentifier = 'parent/child'
61 def mockYangModelCmHandleRetrieval(dmiProperties) {
62 populateYangModelCmHandle(dmiProperties)
63 mockInventoryPersistence.getYangModelCmHandle(cmHandleId) >> yangModelCmHandle
66 def mockYangModelCmHandleCollectionRetrieval(dmiProperties) {
67 populateYangModelCmHandle(dmiProperties)
68 mockInventoryPersistence.getYangModelCmHandles(_) >> [yangModelCmHandle]
71 def populateYangModelCmHandle(dmiProperties) {
72 yangModelCmHandle.dmiDataServiceName = dmiServiceName
73 yangModelCmHandle.dmiServiceName = dmiServiceName
74 yangModelCmHandle.dmiProperties = dmiProperties
75 yangModelCmHandle.id = cmHandleId
76 yangModelCmHandle.compositeState = new CompositeState()
77 yangModelCmHandle.compositeState.cmHandleState = CmHandleState.READY
78 yangModelCmHandle.moduleSetTag = 'tag1'