summaryrefslogtreecommitdiffstats
path: root/cps-service/src
diff options
context:
space:
mode:
Diffstat (limited to 'cps-service/src')
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/api/impl/CpsDataServiceImplSpec.groovy70
1 files changed, 70 insertions, 0 deletions
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 0000000000..5874e27ece
--- /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