diff options
Diffstat (limited to 'cps-service/src')
6 files changed, 0 insertions, 252 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/api/CpService.java b/cps-service/src/main/java/org/onap/cps/api/CpService.java deleted file mode 100755 index 29e164d621..0000000000 --- a/cps-service/src/main/java/org/onap/cps/api/CpService.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation - * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. - * ================================================================================ - * 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; - -/** - * Configuration and persistency service interface which holds methods for parsing and storing yang models and data. - */ -public interface CpService { - - /** - * Store the JSON structure in the database. - * - * @param jsonStructure the JSON structure. - * @return entity ID. - */ - Integer storeJsonStructure(String jsonStructure); - - /** - * Read a JSON Object using the object identifier. - * - * @param jsonObjectId the JSON object identifier. - * @return the JSON structure. - */ - String getJsonById(int jsonObjectId); - - /** - * Delete a JSON Object using the object identifier. - * - * @param jsonObjectId the JSON object identifier. - */ - void deleteJsonById(int jsonObjectId); - -} diff --git a/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java b/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java index 94ebea2fc2..325893d6fd 100644 --- a/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java +++ b/cps-service/src/main/java/org/onap/cps/api/CpsModuleService.java @@ -19,7 +19,6 @@ package org.onap.cps.api; -import java.io.File; import org.onap.cps.spi.exceptions.CpsException; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -29,22 +28,6 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext; public interface CpsModuleService { /** - * Parse and validate a string representing a yang model to generate a schema context. - * - * @param yangModelContent the input stream - * @return the schema context - */ - SchemaContext parseAndValidateModel(String yangModelContent); - - /** - * Parse and validate a file representing a yang model to generate a schema context. - * - * @param yangModelFile the yang file - * @return the schema context - */ - SchemaContext parseAndValidateModel(File yangModelFile); - - /** * Store schema context for a yang model. * * @param schemaContext the schema context diff --git a/cps-service/src/main/java/org/onap/cps/api/impl/CpServiceImpl.java b/cps-service/src/main/java/org/onap/cps/api/impl/CpServiceImpl.java deleted file mode 100755 index 3ec08cd733..0000000000 --- a/cps-service/src/main/java/org/onap/cps/api/impl/CpServiceImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation - * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. - * ================================================================================ - * 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.api.CpService; -import org.onap.cps.spi.DataPersistenceService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class CpServiceImpl implements CpService { - - @Autowired - private DataPersistenceService dataPersistenceService; - - - @Override - public final Integer storeJsonStructure(final String jsonStructure) { - return dataPersistenceService.storeJsonStructure(jsonStructure); - } - - @Override - public final String getJsonById(final int jsonObjectId) { - return dataPersistenceService.getJsonById(jsonObjectId); - } - - @Override - public void deleteJsonById(final int jsonObjectId) { - dataPersistenceService.deleteJsonById(jsonObjectId); - } -}
\ No newline at end of file diff --git a/cps-service/src/main/java/org/onap/cps/api/impl/CpsModuleServiceImpl.java b/cps-service/src/main/java/org/onap/cps/api/impl/CpsModuleServiceImpl.java index c7fa04759a..2c600b5571 100644 --- a/cps-service/src/main/java/org/onap/cps/api/impl/CpsModuleServiceImpl.java +++ b/cps-service/src/main/java/org/onap/cps/api/impl/CpsModuleServiceImpl.java @@ -20,20 +20,12 @@ package org.onap.cps.api.impl; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; import java.util.Optional; import org.onap.cps.api.CpsModuleService; import org.onap.cps.spi.CpsModulePersistenceService; -import org.onap.cps.spi.exceptions.CpsException; -import org.onap.cps.spi.exceptions.ModelValidationException; -import org.onap.cps.utils.YangUtils; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.model.parser.api.YangParserException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -44,30 +36,6 @@ public class CpsModuleServiceImpl implements CpsModuleService { private CpsModulePersistenceService cpsModulePersistenceService; @Override - public SchemaContext parseAndValidateModel(final String yangModelContent) { - try { - final File tempFile = File.createTempFile("yang", ".yang"); - try (final BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile))) { - writer.write(yangModelContent); - } - return parseAndValidateModel(tempFile); - } catch (final IOException e) { - throw new CpsException(e); - } - } - - @Override - public SchemaContext parseAndValidateModel(final File yangModelFile) { - try { - return YangUtils.parseYangModelFile(yangModelFile); - } catch (final YangParserException e) { - throw new ModelValidationException("Yang file validation failed", e.getMessage(), e); - } catch (final IOException e) { - throw new CpsException(e); - } - } - - @Override public void storeSchemaContext(final SchemaContext schemaContext, final String dataspaceName) { for (final Module module : schemaContext.getModules()) { final Optional<Revision> optionalRevision = module.getRevision(); diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpServiceImplSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpServiceImplSpec.groovy deleted file mode 100755 index 873aba78ab..0000000000 --- a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpServiceImplSpec.groovy +++ /dev/null @@ -1,75 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation - * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. - * ================================================================================ - * 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.spi.DataPersistenceService -import spock.lang.Specification - -class CpServiceImplSpec extends Specification { - - def mockDataPersistenceService = Mock(DataPersistenceService) - def objectUnderTest = new CpServiceImpl() - - def setup() { - objectUnderTest.dataPersistenceService = mockDataPersistenceService - } - - def 'Cps Service provides to its client the id assigned by the system when storing a data structure'() { - given: 'that data persistence service is giving id 123 to a data structure it is asked to store' - mockDataPersistenceService.storeJsonStructure(_) >> 123 - expect: 'Cps service returns the same id when storing data structure' - objectUnderTest.storeJsonStructure('') == 123 - } - - def 'Read a JSON object with a valid identifier'(){ - given: 'that the data persistence service returns a JSON structure for identifier 1' - mockDataPersistenceService.getJsonById(1) >> '{name : hello}' - expect: 'that the same JSON structure is returned by CPS' - objectUnderTest.getJsonById(1) == '{name : hello}' - } - - def 'Read a JSON object with an identifier that does not exist'(){ - given: 'that the data persistence service throws an exception' - def exceptionThrownByPersistenceService = new IllegalStateException() - mockDataPersistenceService.getJsonById(_) >> {throw exceptionThrownByPersistenceService} - when: 'we try to get the JSON structure' - objectUnderTest.getJsonById(1); - then: 'the same exception is thrown by CPS' - thrown(IllegalStateException) - } - - def 'Delete a JSON object with a valid identifier'(){ - given: 'that the data persistence service can delete a JSON structure for identifier 1' - mockDataPersistenceService.deleteJsonById(1) - expect: 'No exception is thrown when we delete a JSON structure with identifier 1' - objectUnderTest.deleteJsonById(1) - } - - def 'Delete a JSON object with an identifier that does not exist'(){ - given: 'that the data persistence service throws an exception' - mockDataPersistenceService.deleteJsonById(_) >> {throw new IllegalStateException()} - when: 'we try to delete a JSON structure' - objectUnderTest.deleteJsonById(100); - then: 'the same exception is thrown by CPS' - thrown(IllegalStateException) - } -} diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModulePersistenceServiceImplSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModulePersistenceServiceImplSpec.groovy index da2df404eb..d2a69d6552 100644 --- a/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModulePersistenceServiceImplSpec.groovy +++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/CpsModulePersistenceServiceImplSpec.groovy @@ -35,39 +35,11 @@ class CpsModulePersistenceServiceImplSpec extends Specification { objectUnderTest.cpsModulePersistenceService = mockModuleStoreService } - def 'Parse and Validate a Yang Model with a Valid Yang Model'() { - given: 'a yang model (file)' - def yangModel = TestUtils.getResourceFileContent('bookstore.yang') - when: 'a valid model is parsed and validated' - def result = objectUnderTest.parseAndValidateModel(yangModel) - then: 'Verify a schema context for that model is created with the correct identity' - assertModule(result) - } - - def 'Parse and Validate a Yang Model Using a File'() { - given: 'a yang file that contains a yang model' - File file = new File(ClassLoader.getSystemClassLoader().getResource('bookstore.yang').getFile()) - when: 'a model is parsed and validated' - def result = objectUnderTest.parseAndValidateModel(file) - then: 'Verify a schema context for that model is created with the correct identity' - assertModule(result) - - } - def assertModule(SchemaContext schemaContext) { def optionalModule = schemaContext.findModule('stores', Revision.of('2020-09-15')) return schemaContext.modules.size() == 1 && optionalModule.isPresent() } - def 'Parse and Validate an Invalid Model'() { - given: 'a yang file that contains a invalid yang model' - File file = new File(ClassLoader.getSystemClassLoader().getResource('invalid.yang').getFile()) - when: 'the model is parsed and validated' - objectUnderTest.parseAndValidateModel(file) - then: 'a CpsValidationException is thrown' - thrown(CpsException) - } - def 'Store a SchemaContext'() { expect: 'No exception to be thrown when a valid model (schema) is stored' objectUnderTest.storeSchemaContext(Stub(SchemaContext.class), "sampleDataspace") |