From 27add4d028f040a740bed68707c648ee8441eeb2 Mon Sep 17 00:00:00 2001 From: niamhcore Date: Mon, 1 Feb 2021 19:16:54 +0000 Subject: Refactoring tests and adding tests for creating a node. Issue-ID: CPS-26 Signed-off-by: niamhcore Change-Id: I36e3f2bbb2928cc6b8d0d4a079516f801c33df13 --- .../cps/api/impl/CpsDataServiceImplSpec.groovy | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 cps-service/src/test/groovy/org/onap/cps/api/impl/CpsDataServiceImplSpec.groovy (limited to 'cps-service/src') diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsDataServiceImplSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsDataServiceImplSpec.groovy new file mode 100644 index 000000000..5874e27ec --- /dev/null +++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsDataServiceImplSpec.groovy @@ -0,0 +1,70 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2021 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.api.impl + +import org.onap.cps.TestUtils +import org.onap.cps.api.CpsAdminService +import org.onap.cps.api.CpsModuleService +import org.onap.cps.spi.CpsDataPersistenceService +import org.onap.cps.spi.model.Anchor +import org.onap.cps.yang.YangTextSchemaSourceSet +import org.onap.cps.yang.YangTextSchemaSourceSetBuilder +import spock.lang.Specification + +class CpsDataServiceImplSpec extends Specification { + def mockCpsDataPersistenceService = Mock(CpsDataPersistenceService) + def mockCpsAdminService = Mock(CpsAdminService) + def mockCpsModuleService = Mock(CpsModuleService) + def mockYangTextSchemaSourceSetCache = Mock(YangTextSchemaSourceSetCache) + + def objectUnderTest = new CpsDataServiceImpl() + + def setup() { + objectUnderTest.cpsDataPersistenceService = mockCpsDataPersistenceService; + objectUnderTest.cpsAdminService = mockCpsAdminService; + objectUnderTest.cpsModuleService = mockCpsModuleService; + objectUnderTest.yangTextSchemaSourceSetCache = mockYangTextSchemaSourceSetCache; + } + + def dataspaceName = 'some dataspace' + def anchorName = 'some anchor' + def schemaSetName = 'some schema set' + + def 'Saving json data.'() { + given: 'that the admin service will return an anchor' + def anchor = new Anchor() + anchor.name = anchorName + anchor.schemaSetName = schemaSetName + mockCpsAdminService.getAnchor(dataspaceName, anchorName) >> anchor + and: 'the schema source set cache returns a schema source set' + def mockYangTextSchemaSourceSet = Mock(YangTextSchemaSourceSet) + mockYangTextSchemaSourceSetCache.get(dataspaceName,schemaSetName) >> mockYangTextSchemaSourceSet + and: 'the schema source sets returns the test-tree schema context' + def yangResourceNameToContent = TestUtils.getYangResourcesAsMap('test-tree.yang') + def schemaContext = YangTextSchemaSourceSetBuilder.of(yangResourceNameToContent).getSchemaContext() + mockYangTextSchemaSourceSet.getSchemaContext() >> schemaContext + when: 'save data method is invoked with test-tree json data' + def jsonData = org.onap.cps.TestUtils.getResourceFileContent('test-tree.json') + objectUnderTest.saveData(dataspaceName, anchorName, jsonData) + then: 'the persistence service method is invoked with correct parameters' + 1 * mockCpsDataPersistenceService.storeDataNode(dataspaceName, anchorName, + { dataNode -> dataNode.xpath == '/test-tree' }) + } +} \ No newline at end of file -- cgit 1.2.3-korg