From: ToineSiebelink Date: Tue, 7 Dec 2021 11:30:10 +0000 (+0000) Subject: Undo manipulation of YangResource string as this is now handled correctly in DMI... X-Git-Tag: mr/823/126723/7~23^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=cps.git;a=commitdiff_plain;h=3f142303c10370a1e0261160abd9f68dcddb4c4b Undo manipulation of YangResource string as this is now handled correctly in DMI PLugin Issue-ID: CPS-788 Signed-off-by: ToineSiebelink Change-Id: I7d308a62699709770f3629cbc55a26fb0e382010 --- diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/JsonUtils.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/JsonUtils.java deleted file mode 100644 index 6768777e1..000000000 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/JsonUtils.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * ============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.ncmp.api.impl; - -public class JsonUtils { - - private static final String BACK_SLASH = "\\"; - private static final String NEW_LINE = "\n"; - private static final String QUOTE = "\""; - - private JsonUtils() { - throw new IllegalStateException(); - } - - /** - * Remove redundant beginning and end characters. - * @param input string to format - * @return formatted string - */ - public static String removeWrappingTokens(final String input) { - return input.substring(1, input.length() - 1); - } - - /** - * Remove redundant escape characters. - * @param input string to format - * @return formatted string - */ - public static String removeRedundantEscapeCharacters(final String input) { - return input.replace(BACK_SLASH + "n", NEW_LINE) - .replace(BACK_SLASH + QUOTE, QUOTE) - .replace(BACK_SLASH + BACK_SLASH + QUOTE, BACK_SLASH + QUOTE); - } -} diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java index fb929a234..363dbc211 100755 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java @@ -365,12 +365,7 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService final YangResource yangResource = new YangResource(); yangResource.setModuleName(yangResourceAsJson.get("moduleName").getAsString()); yangResource.setRevision(yangResourceAsJson.get("revision").getAsString()); - final String yangSourceJson = yangResourceAsJson.get("yangSource").getAsString(); - - String yangSource = JsonUtils.removeWrappingTokens(yangSourceJson); - yangSource = JsonUtils.removeRedundantEscapeCharacters(yangSource); - yangResource.setYangSource(yangSource); - + yangResource.setYangSource(yangResourceAsJson.get("yangSource").getAsString()); return yangResource; } diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/JsonUtilsSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/JsonUtilsSpec.groovy deleted file mode 100644 index be27dfad5..000000000 --- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/JsonUtilsSpec.groovy +++ /dev/null @@ -1,51 +0,0 @@ -/* - * ============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.ncmp.api.impl - -import spock.lang.Specification - -class JsonUtilsSpec extends Specification { - def 'Remove redundant escape characters.'() { - expect: 'removing redundant escape characters returns the correct output for #scenario' - JsonUtils.removeRedundantEscapeCharacters(input) == expectedOutput - where: 'the following input is used' - scenario | input || expectedOutput - 'two lines' | 'line1\\nline2' || 'line1\nline2' - 'a string inside quotes' | 'a \\"word in quotes\\"' || 'a "word in quotes"' - 'quotes inside quotes (double escape)' | '\\"quotes \\\\\\"inside\\\\\\" quotes\\"' || '"quotes \\"inside\\" quotes"' // human readable: "quotes \"inside\" quotes" - } - def 'Remove wrapping tokens.'() { - expect: 'removing wrapping tokens returns the correct output for #scenario' - JsonUtils.removeWrappingTokens(input) == expectedOutput - where: 'the following input is used' - scenario | input || expectedOutput - 'a string in quotes' | '"abc"' || 'abc' - 'a string in apostrophes' | "'abc'" || 'abc' - 'a string inside any other tokens' | 'abcde' || 'bcd' - } - - def 'Cannot use constructor.'() { - when: 'attempt to construct object' - new JsonUtils() - then: 'an exception is thrown' - thrown(IllegalStateException) - } -} - diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplModelSyncSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplModelSyncSpec.groovy index 2a85a4a6a..a5c1f45d5 100644 --- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplModelSyncSpec.groovy +++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplModelSyncSpec.groovy @@ -65,10 +65,10 @@ class NetworkCmProxyDataServiceImplModelSyncSpec extends Specification { and: 'admin service create anchor method has been called with correct parameters' 1 * mockCpsAdminService.createAnchor(expectedDataspaceName, cmHandleForModelSync.getId(), cmHandleForModelSync.getId()) where: 'the following parameters are used' - scenario | additionalProperties | existingModuleResourcesInCps | sdncReponseBody || expectedYangResourceToContentMap | expectedKnownModules | expectedJsonForAdditionalProperties - 'one unknown module' | ['name1': 'value1'] | [new ModuleReference('module2', '2'), new ModuleReference('module3', '3')] | '[{"moduleName" : "module1", "revision" : "1","yangSource": "[some yang source]"}]' || [module1: 'some yang source'] | [new ModuleReference('module2', '2')] | '{"name1":"value1"}' - 'no add. properties' | [:] | [new ModuleReference('module2', '2'), new ModuleReference('module3', '3')] | '[{"moduleName" : "module1", "revision" : "1","yangSource": "[some yang source]"}]' || [module1: 'some yang source'] | [new ModuleReference('module2', '2')] | '{}' - 'additional properties is null' | null | [new ModuleReference('module2', '2'), new ModuleReference('module3', '3')] | '[{"moduleName" : "module1", "revision" : "1","yangSource": "[some yang source]"}]' || [module1: 'some yang source'] | [new ModuleReference('module2', '2')] | '{}' - 'no unknown module' | [:] | [new ModuleReference('module1', '1'), new ModuleReference('module2', '2')] | '[]' || [:] | [new ModuleReference('module1', '1'), new ModuleReference('module2', '2')] | '{}' + scenario | additionalProperties | existingModuleResourcesInCps | sdncReponseBody || expectedYangResourceToContentMap | expectedKnownModules | expectedJsonForAdditionalProperties + 'one unknown module' | ['name1': 'value1'] | [new ModuleReference('module2', '2'), new ModuleReference('module3', '3')] | '[{"moduleName" : "module1", "revision" : "1","yangSource": "some yang source"}]' || [module1: 'some yang source'] | [new ModuleReference('module2', '2')] | '{"name1":"value1"}' + 'no add. properties' | [:] | [new ModuleReference('module2', '2'), new ModuleReference('module3', '3')] | '[{"moduleName" : "module1", "revision" : "1","yangSource": "some yang source"}]' || [module1: 'some yang source'] | [new ModuleReference('module2', '2')] | '{}' + 'additional properties is null' | null | [new ModuleReference('module2', '2'), new ModuleReference('module3', '3')] | '[{"moduleName" : "module1", "revision" : "1","yangSource": "some yang source"}]' || [module1: 'some yang source'] | [new ModuleReference('module2', '2')] | '{}' + 'no unknown module' | [:] | [new ModuleReference('module1', '1'), new ModuleReference('module2', '2')] | '[]' || [:] | [new ModuleReference('module1', '1'), new ModuleReference('module2', '2')] | '{}' } } diff --git a/docs/release-notes.rst b/docs/release-notes.rst index fdb0b004b..1339d155d 100755 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -34,6 +34,7 @@ Bug Fixes --------- - `CPS-762 `_ Query cm handles for module names returns incorrect cm handle identifiers + - `CPS-788 `_ Yang Resource formatting is incorrect Known Limitations, Issues and Workarounds -----------------------------------------