diff options
Diffstat (limited to 'integration-test/src/test/groovy/org/onap/cps/integration/base/CpsIntegrationSpecBase.groovy')
-rw-r--r-- | integration-test/src/test/groovy/org/onap/cps/integration/base/CpsIntegrationSpecBase.groovy | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/integration-test/src/test/groovy/org/onap/cps/integration/base/CpsIntegrationSpecBase.groovy b/integration-test/src/test/groovy/org/onap/cps/integration/base/CpsIntegrationSpecBase.groovy new file mode 100644 index 000000000..567b33cb4 --- /dev/null +++ b/integration-test/src/test/groovy/org/onap/cps/integration/base/CpsIntegrationSpecBase.groovy @@ -0,0 +1,95 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2023 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.base + +import org.onap.cps.api.impl.CpsAdminServiceImpl +import org.onap.cps.api.impl.CpsDataServiceImpl +import org.onap.cps.api.impl.CpsModuleServiceImpl +import org.onap.cps.integration.DatabaseTestContainer +import org.onap.cps.spi.model.DataNode +import org.onap.cps.spi.repository.DataspaceRepository +import org.onap.cps.spi.impl.utils.CpsValidatorImpl +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.autoconfigure.EnableAutoConfiguration +import org.springframework.boot.autoconfigure.domain.EntityScan +import org.springframework.boot.test.context.SpringBootTest +import org.springframework.context.annotation.ComponentScan +import org.springframework.context.annotation.Lazy +import org.springframework.data.jpa.repository.config.EnableJpaRepositories +import org.testcontainers.spock.Testcontainers +import spock.lang.Shared +import spock.lang.Specification + +@SpringBootTest(classes = [TestConfig, CpsAdminServiceImpl, CpsValidatorImpl]) +@Testcontainers +@EnableAutoConfiguration +@EnableJpaRepositories(basePackageClasses = [DataspaceRepository]) +@ComponentScan(basePackages = ["org.onap.cps.api", "org.onap.cps.spi.repository"]) +@EntityScan("org.onap.cps.spi.entities") +class CpsIntegrationSpecBase extends Specification { + + @Shared + DatabaseTestContainer databaseTestContainer = DatabaseTestContainer.getInstance() + + @Autowired + @Lazy + CpsAdminServiceImpl cpsAdminService + + @Autowired + @Lazy + CpsDataServiceImpl cpsDataService + + @Autowired + @Lazy + CpsModuleServiceImpl cpsModuleService + + def static GENERAL_TEST_DATASPACE = 'generalTestDataSpace' + def static BOOKSTORE_DATASPACE = 'bookstoreDataspace' + def static BOOKSTORE_SCHEMA_SET = 'bookstoreSchemaSet' + def static BOOKSTORE_ANCHOR = 'bookstoreAnchor' + + def static initialized = false + + def setup() { + if (!initialized) { + cpsAdminService.createDataspace(GENERAL_TEST_DATASPACE) + def bookstoreModelFileContent = readResourceFile('bookstore.yang') + cpsModuleService.createSchemaSet(GENERAL_TEST_DATASPACE, BOOKSTORE_SCHEMA_SET, [bookstore : bookstoreModelFileContent]) + initialized = true; + } + } + + def static countDataNodesInTree(DataNode dataNode) { + return 1 + countDataNodesInTree(dataNode.getChildDataNodes()) + } + + def static countDataNodesInTree(Collection<DataNode> dataNodes) { + int nodeCount = 0 + for (DataNode parent : dataNodes) { + nodeCount += countDataNodesInTree(parent) + } + return nodeCount + } + + def static readResourceFile(filename) { + return new File('src/test/resources/data/' + filename).text + } +} |