Skip to content

Commit

Permalink
Integration test to validate DMI service URL
Browse files Browse the repository at this point in the history
- New groovy test is written to validate if dmi service url is encoded
  correctly.

Issue-ID: CPS-2317
Change-Id: I048bf37dd3ba4f37df7dace927f55bf8dd899922
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
  • Loading branch information
sourabh-est committed Jul 18, 2024
1 parent 3643790 commit 1399898
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class JsonObjectMapperSpec extends Specification {
def contentMap = new JsonSlurper().parseText(new String(content))
and: 'the parsed content is as expected'
assert contentMap.'test:bookstore'.'bookstore-name' == 'Chapters/Easons'
where: 'the following data stores are used'
where: 'the following content types are used'
type << ['String', 'bytes']
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ class DmiDispatcher extends Dispatcher {
def isAvailable = true
Map<String, List<String>> moduleNamesPerCmHandleId = [:]
def lastAuthHeaderReceived
def dmiResourceDataUrl

@Override
MockResponse dispatch(RecordedRequest request) {
Expand All @@ -79,6 +80,7 @@ class DmiDispatcher extends Dispatcher {

// pass-through data operation for a CM-handle
case ~'^/dmi/v1/ch/(.*)/data/ds/(.*)$':
dmiResourceDataUrl = request.path
return mockResponseWithBody(HttpStatus.OK, '{}')

// legacy pass-through batch data operation
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2024 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.ncmp

import org.onap.cps.integration.base.CpsIntegrationSpecBase
import org.onap.cps.ncmp.api.data.models.CmResourceAddress
import org.onap.cps.ncmp.impl.data.NetworkCmProxyFacade
import spock.util.concurrent.PollingConditions

import static org.onap.cps.ncmp.api.data.models.DatastoreType.PASSTHROUGH_OPERATIONAL

class CmHandleResourceDataSpec extends CpsIntegrationSpecBase {

NetworkCmProxyFacade objectUnderTest

def setup() {
dmiDispatcher.moduleNamesPerCmHandleId['ch-1'] = ['M1', 'M2']
registerCmHandle(DMI_URL, 'ch-1', NO_MODULE_SET_TAG)
objectUnderTest = networkCmProxyFacade
}

def cleanup() {
deregisterCmHandle(DMI_URL, 'ch-1')
}

def 'Get resource data having special chars into path & query param value.'() {
when: 'getting the resource data'
def cmResourceAddress = new CmResourceAddress(PASSTHROUGH_OPERATIONAL.datastoreName, 'ch-1', 'parent/child')
objectUnderTest.getResourceDataForCmHandle(cmResourceAddress, '(a=1,b=2)', 'my-client-topic', false, null)
then: 'dmi resource data url is encoded correctly'
new PollingConditions().within(5, () -> {
assert dmiDispatcher.dmiResourceDataUrl == '/dmi/v1/ch/ch-1/data/ds/ncmp-datastore%3Apassthrough-operational?resourceIdentifier=parent%2Fchild&options=%28a%3D1%2Cb%3D2%29&topic=my-client-topic'
})
}
}

0 comments on commit 1399898

Please sign in to comment.