diff options
author | liamfallon <liam.fallon@est.tech> | 2020-09-11 14:28:32 +0100 |
---|---|---|
committer | liamfallon <liam.fallon@est.tech> | 2020-09-11 14:37:24 +0100 |
commit | 9a9127b65920580de8b4a69479a9983481c8faf8 (patch) | |
tree | 35c6449e4850b661f86a639a33684e079beb836d /gui-editors/gui-editor-apex/src/test/java | |
parent | afcf92da0d813028b48ea781df33148bc6f000b6 (diff) |
Add TOSCA support to Apex editor
The APEX editor now loads, saves, and downloads files in TOSCA format,
the same as the apex-pdp does.
The non-standard TOSCA handling for file upload has been refactored to
be aligned with the Policy Frameowkr TOSCA support.
Issue-ID: POLICY-2621
Change-Id: I1ec7475cbcc6ffc23de92687c9f284ac7dfbdd80
Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'gui-editors/gui-editor-apex/src/test/java')
10 files changed, 57 insertions, 1058 deletions
diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/ApexEditorStartupTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/ApexEditorStartupTest.java index c80b816..d78eba3 100644 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/ApexEditorStartupTest.java +++ b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/ApexEditorStartupTest.java @@ -50,16 +50,16 @@ public class ApexEditorStartupTest { final String[] args = new String[] {}; final String outString = runEditor(args); - assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], " - + "State=READY) starting at http://localhost:18989/apexservices/")); - assertTrue(outString.contains("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec], " - + "State=RUNNING) started at http://localhost:18989/apexservices/")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .endsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=-1sec]," - + " State=STOPPED) shut down ")); + + assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain:")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("State=RUNNING) started")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("help=false")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("restPort=18989")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("timeToLive=-1")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("listenAddress=localhost")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("uploadUrl=null")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("uploadUserid=null")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").endsWith(" State=STOPPED) shut down ")); } /** @@ -73,8 +73,7 @@ public class ApexEditorStartupTest { final String[] args = new String[] { "12321" }; assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class) - .hasMessageContaining("Apex Editor REST endpoint (ApexEditorMain: Config=[null], State=STOPPED)" - + " parameter error, too many command line arguments specified : [12321]"); + .hasMessageContaining("parameter error, too many command line arguments specified : [12321]"); } /** @@ -88,8 +87,7 @@ public class ApexEditorStartupTest { final String[] args = new String[] { "12321 12322 12323" }; assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class) - .hasMessageContaining("Apex Editor REST endpoint (ApexEditorMain: Config=[null], State=STOPPED)" - + " parameter error, too many command line arguments specified : [12321 12322 12323]"); + .hasMessageContaining("parameter error, too many command line arguments specified : [12321 12322 12323]"); } /** @@ -102,9 +100,8 @@ public class ApexEditorStartupTest { public void testBadArg2() throws IOException, InterruptedException { final String[] args = new String[] { "-z" }; - assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class) - .hasMessageContaining("Apex Editor REST endpoint (ApexEditorMain: Config=[null], State=STOPPED)" - + " parameter error, invalid command line arguments specified : Unrecognized option: -z"); + assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class).hasMessageContaining( + "parameter error, invalid command line arguments specified : Unrecognized option: -z"); } /** @@ -117,9 +114,8 @@ public class ApexEditorStartupTest { public void testBadArg3() throws IOException, InterruptedException { final String[] args = new String[] { "--hello" }; - assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class) - .hasMessageContaining("Apex Editor REST endpoint (ApexEditorMain: Config=[null], State=STOPPED)" - + " parameter error, invalid command line arguments specified : Unrecognized option: --hello"); + assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class).hasMessageContaining( + "parameter error, invalid command line arguments specified : Unrecognized option: --hello"); } /** @@ -133,9 +129,7 @@ public class ApexEditorStartupTest { final String[] args = new String[] { "-l", "+++++" }; assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class) - .hasMessageContaining("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://+++++:18989/apexservices/, TTL=-1sec], " - + "State=STOPPED) parameters invalid, listen address is not valid. " + .hasMessageContaining("parameters invalid, listen address is not valid. " + "Illegal character in hostname at index 7: http://+++++:18989/apexservices/"); } @@ -179,16 +173,10 @@ public class ApexEditorStartupTest { final String outString = runEditor(args); - assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:12321/apexservices/, TTL=-1sec], " - + "State=READY) starting at http://localhost:12321/apexservices/")); - assertTrue(outString.contains("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:12321/apexservices/, TTL=-1sec], " - + "State=RUNNING) started at http://localhost:12321/apexservices/")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .endsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:12321/apexservices/, TTL=-1sec]," - + " State=STOPPED) shut down ")); + assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain:")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("State=RUNNING) started")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("localhost:12321")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").endsWith(" State=STOPPED) shut down ")); } /** @@ -203,16 +191,10 @@ public class ApexEditorStartupTest { final String outString = runEditor(args); - assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:12321/apexservices/, TTL=-1sec], " - + "State=READY) starting at http://localhost:12321/apexservices/")); - assertTrue(outString.contains("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:12321/apexservices/, TTL=-1sec], " - + "State=RUNNING) started at http://localhost:12321/apexservices/")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .endsWith("(ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:12321/apexservices/, TTL=-1sec]," - + " State=STOPPED) shut down ")); + assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain:")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("State=RUNNING) started")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("localhost:12321")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").endsWith(" State=STOPPED) shut down ")); } /** @@ -226,8 +208,7 @@ public class ApexEditorStartupTest { final String[] args = new String[] { "-p 12321" }; assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class) - .hasMessageContaining("Apex Editor REST endpoint (ApexEditorMain: Config=[null], State=STOPPED)" - + " parameter error, error parsing argument \"port\" :For input string: \" 12321\""); + .hasMessageContaining("parameter error, error parsing argument \"port\" :For input string: \" 12321\""); } /** @@ -241,9 +222,7 @@ public class ApexEditorStartupTest { final String[] args = new String[] { "-p0" }; assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class) - .hasMessageContaining("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:0/apexservices/, TTL=-1sec], " - + "State=STOPPED) parameters invalid, port must be between 1024 and 65535"); + .hasMessageContaining("parameters invalid, port must be between 1024 and 65535"); } /** @@ -257,9 +236,7 @@ public class ApexEditorStartupTest { final String[] args = new String[] { "-p1023" }; assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class) - .hasMessageContaining("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:1023/apexservices/, TTL=-1sec], " - + "State=STOPPED) parameters invalid, port must be between 1024 and 65535"); + .hasMessageContaining("parameters invalid, port must be between 1024 and 65535"); } /** @@ -273,9 +250,7 @@ public class ApexEditorStartupTest { final String[] args = new String[] { "-p65536" }; assertThatThrownBy(() -> runEditor(args)).isInstanceOf(ApexEditorParameterException.class) - .hasMessageContaining("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:65536/apexservices/, TTL=-1sec], " - + "State=STOPPED) parameters invalid, port must be between 1024 and 65535"); + .hasMessageContaining("parameters invalid, port must be between 1024 and 65535"); } /** @@ -290,17 +265,10 @@ public class ApexEditorStartupTest { final String outString = runEditor(args); - assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=10sec], " - + "State=READY) starting at http://localhost:18989/apexservices/")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .contains("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=10sec], State=RUNNING)" - + " started")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .endsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=10sec], State=STOPPED)" - + " shut down ")); + assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain:")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("State=RUNNING) started")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("timeToLive=10")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").endsWith(" State=STOPPED) shut down ")); } /** @@ -315,17 +283,10 @@ public class ApexEditorStartupTest { final String outString = runEditor(args); - assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=10sec], " - + "State=READY) starting at http://localhost:18989/apexservices/")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .contains("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=10sec], State=RUNNING)" - + " started")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .endsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:18989/apexservices/, TTL=10sec], State=STOPPED)" - + " shut down ")); + assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain:")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("State=RUNNING) started")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("timeToLive=10")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").endsWith(" State=STOPPED) shut down ")); } /** @@ -340,17 +301,10 @@ public class ApexEditorStartupTest { final String outString = runEditor(args); - assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:12321/apexservices/, TTL=10sec], " - + "State=READY) starting at http://localhost:12321/apexservices/")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .contains("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:12321/apexservices/, TTL=10sec], State=RUNNING)" - + " started")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .endsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://localhost:12321/apexservices/, TTL=10sec], State=STOPPED)" - + " shut down ")); + assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain:")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("State=RUNNING) started")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("timeToLive=10")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").endsWith(" State=STOPPED) shut down ")); } /** @@ -365,17 +319,10 @@ public class ApexEditorStartupTest { final String outString = runEditor(args); - assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://127.0.0.1:12321/apexservices/, TTL=10sec], " - + "State=READY) starting at http://127.0.0.1:12321/apexservices/")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .contains("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://127.0.0.1:12321/apexservices/, TTL=10sec], State=RUNNING)" - + " started")); - assertTrue(outString.replaceAll("[\\r?\\n]+", " ") - .endsWith("Apex Editor REST endpoint (ApexEditorMain: " - + "Config=[ApexEditorParameters: URI=http://127.0.0.1:12321/apexservices/, TTL=10sec], State=STOPPED)" - + " shut down ")); + assertTrue(outString.startsWith("Apex Editor REST endpoint (ApexEditorMain:")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("State=RUNNING) started")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").contains("timeToLive=10")); + assertTrue(outString.replaceAll("[\\r?\\n]+", " ").endsWith(" State=STOPPED) shut down ")); } /** diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/RestInterfaceTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/RestInterfaceTest.java index 60a2012..cf1c4fa 100644 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/RestInterfaceTest.java +++ b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/RestInterfaceTest.java @@ -42,10 +42,8 @@ import org.junit.BeforeClass; import org.junit.Test; import org.onap.policy.apex.model.basicmodel.concepts.ApexException; import org.onap.policy.apex.model.basicmodel.handling.ApexModelReader; -import org.onap.policy.apex.model.basicmodel.handling.ApexModelStringWriter; import org.onap.policy.apex.model.modelapi.ApexApiResult; import org.onap.policy.apex.model.policymodel.concepts.AxPolicy; -import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel; import org.onap.policy.common.parameters.ParameterService; import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.gui.editors.apex.rest.ApexEditorMain.EditorState; @@ -56,7 +54,7 @@ import org.onap.policy.gui.editors.apex.rest.ApexEditorMain.EditorState; public class RestInterfaceTest { // CHECKSTYLE:OFF: MagicNumber - private static final String TESTMODELFILE = "models/PolicyModel.json"; + private static final String TESTMODELFILE = "models/PolicyModel.yaml"; private static final String TESTPORTNUM = "18989"; private static final long MAX_WAIT = 15000; // 15 sec private static final InputStream SYSIN = System.in; @@ -65,8 +63,7 @@ public class RestInterfaceTest { private static ApexEditorMain editorMain; private static WebTarget target; - private static AxPolicyModel localmodel = null; - private static String localmodelString = null; + private static String localModelString = null; /** * Sets up the tests. @@ -103,10 +100,7 @@ public class RestInterfaceTest { target = c.target(new ApexEditorParameters().getBaseUri()); // load a test model locally - localmodel = new ApexModelReader<>(AxPolicyModel.class, false) - .read(ResourceUtils.getResourceAsStream(TESTMODELFILE)); - localmodelString = new ApexModelStringWriter<AxPolicyModel>(false).writeJsonString(localmodel, - AxPolicyModel.class); + localModelString = ResourceUtils.getResourceAsString(TESTMODELFILE); // initialize a session ID createNewSession(); @@ -159,8 +153,8 @@ public class RestInterfaceTest { } /** - * Create a new session, Upload a test policy model, then get a policy, parse - * it, and compare it to the same policy in the original model. + * Create a new session, Upload a test policy model, then get a policy, parse it, and compare it to the same policy + * in the original model. * * @throws ApexException if there is an Apex Error * @throws JAXBException if there is a JaxB Error @@ -170,7 +164,7 @@ public class RestInterfaceTest { final int sessionId = createNewSession(); - uploadPolicy(sessionId, localmodelString); + uploadPolicy(sessionId, localModelString); final ApexApiResult responseMsg = target.path("editor/" + sessionId + "/Policy/Get") .queryParam("name", "policy").queryParam("version", "0.0.1").request().get(ApexApiResult.class); @@ -180,29 +174,10 @@ public class RestInterfaceTest { // object. Lets parse it final String returnedPolicyAsString = responseMsg.getMessages().get(0); ApexModelReader<AxPolicy> apexPolicyReader = new ApexModelReader<>(AxPolicy.class, false); - final AxPolicy returnedpolicy = apexPolicyReader.read(returnedPolicyAsString); - // AxPolicy returnedpolicy = - // RestUtils.getConceptFromJSON(returnedPolicyAsString, AxPolicy.class); - - // Extract the local copy of that policy from the local Apex Policy Model - final AxPolicy localpolicy = localmodel.getPolicies().get("policy", "0.0.1"); - - // Write that local copy of the AxPolicy object to a Json String, ten parse it - // again - final ApexModelStringWriter<AxPolicy> apexModelWriter = new ApexModelStringWriter<>(false); - final String localPolicyString = apexModelWriter.writeJsonString(localpolicy, AxPolicy.class); - apexPolicyReader = new ApexModelReader<>(AxPolicy.class, false); - final AxPolicy localpolicyReparsed = apexPolicyReader.read(localPolicyString); - // AxPolicy localpolicy_reparsed = - // RestUtils.getConceptFromJSON(returnedPolicyAsString, AxPolicy.class); - - assertNotNull(returnedpolicy); - assertNotNull(localpolicy); - assertNotNull(localpolicyReparsed); - assertEquals(localpolicy, localpolicyReparsed); - assertEquals(localpolicy, returnedpolicy); - } - - // TODO Full unit testing of REST interface + final AxPolicy returnedPolicy = apexPolicyReader.read(returnedPolicyAsString); + assertNotNull(returnedPolicy); + assertEquals("state", returnedPolicy.getFirstState()); + assertEquals(1, returnedPolicy.getStateMap().size()); + } } diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/UploadPluginConfigParametersTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/UploadPluginConfigParametersTest.java deleted file mode 100644 index 3f743a7..0000000 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/UploadPluginConfigParametersTest.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 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.policy.gui.editors.apex.rest; - - -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.Optional; -import org.junit.Test; -import org.onap.policy.gui.editors.apex.rest.handling.config.PolicyUploadPluginConfigKey; - -public class UploadPluginConfigParametersTest { - - @Test - public void setupPropertiesTest() { - final String expectedUrl = "aUrl"; - final boolean expectedEnabled = true; - System.setProperty(PolicyUploadPluginConfigKey.URL.getKey(), expectedUrl); - System.setProperty(PolicyUploadPluginConfigKey.ENABLE.getKey(), String.valueOf(expectedEnabled)); - final UploadPluginConfigParameters uploadPluginConfigParameters = new UploadPluginConfigParameters(); - final String url = uploadPluginConfigParameters.getUrl(); - final Boolean isEnabled = uploadPluginConfigParameters.isEnabled(); - assertThat(url).isEqualTo(expectedUrl); - assertThat(isEnabled).isEqualTo(expectedEnabled); - } - - @Test - public void testGetValue() { - final String expectedUrl = "aUrl"; - final boolean expectedEnabled = true; - System.setProperty(PolicyUploadPluginConfigKey.URL.getKey(), expectedUrl); - System.setProperty(PolicyUploadPluginConfigKey.ENABLE.getKey(), String.valueOf(expectedEnabled)); - UploadPluginConfigParameters uploadPluginConfigParameters = new UploadPluginConfigParameters(); - Optional<String> actualUrl = uploadPluginConfigParameters.getValue(PolicyUploadPluginConfigKey.URL); - assertThat(actualUrl).isPresent().contains(expectedUrl); - Optional<Boolean> actualEnabled = uploadPluginConfigParameters.getValue(PolicyUploadPluginConfigKey.ENABLE); - assertThat(actualEnabled).isPresent().contains(expectedEnabled); - - System.clearProperty(PolicyUploadPluginConfigKey.URL.getKey()); - uploadPluginConfigParameters = new UploadPluginConfigParameters(); - actualUrl = uploadPluginConfigParameters.getValue(PolicyUploadPluginConfigKey.URL); - assertThat(actualUrl).isNotPresent(); - - System.clearProperty(PolicyUploadPluginConfigKey.ENABLE.getKey()); - uploadPluginConfigParameters = new UploadPluginConfigParameters(); - actualEnabled = uploadPluginConfigParameters.getValue(PolicyUploadPluginConfigKey.ENABLE); - assertThat(actualEnabled).isPresent(); - assertThat(actualEnabled.get()).isFalse(); - } - - @Test - public void testValidate() { - final String expectedUrl = "aUrl"; - final boolean expectedEnabled = true; - System.setProperty(PolicyUploadPluginConfigKey.URL.getKey(), expectedUrl); - System.setProperty(PolicyUploadPluginConfigKey.ENABLE.getKey(), String.valueOf(expectedEnabled)); - UploadPluginConfigParameters uploadPluginConfigParameters = new UploadPluginConfigParameters(); - assertThat(uploadPluginConfigParameters.isValid()).isTrue(); - - System.clearProperty(PolicyUploadPluginConfigKey.URL.getKey()); - uploadPluginConfigParameters = new UploadPluginConfigParameters(); - assertThat(uploadPluginConfigParameters.isValid()).isFalse(); - - System.clearProperty(PolicyUploadPluginConfigKey.ENABLE.getKey()); - uploadPluginConfigParameters = new UploadPluginConfigParameters(); - assertThat(uploadPluginConfigParameters.isValid()).isTrue(); - } -}
\ No newline at end of file diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/ApexEditorRestResourceTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/ApexEditorRestResourceTest.java index 9b0ce32..6e9dca4 100644 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/ApexEditorRestResourceTest.java +++ b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/ApexEditorRestResourceTest.java @@ -398,7 +398,7 @@ public class ApexEditorRestResourceTest extends JerseyTest { .queryParam("version", (String) null).request().get(ApexApiResult.class); assertEquals(ApexApiResult.Result.FAILED, result.getResult()); - final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json"); + final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.yaml"); Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON); result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class); diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/ConfigurationRestResourceTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/ConfigurationRestResourceTest.java deleted file mode 100644 index 3820240..0000000 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/ConfigurationRestResourceTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 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.policy.gui.editors.apex.rest.handling; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; - -import javax.ws.rs.core.Application; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; -import org.glassfish.jersey.server.ResourceConfig; -import org.glassfish.jersey.test.JerseyTest; -import org.junit.Test; -import org.onap.policy.apex.model.modelapi.ApexApiResult; -import org.onap.policy.apex.model.modelapi.ApexApiResult.Result; -import org.onap.policy.common.parameters.ParameterService; -import org.onap.policy.gui.editors.apex.rest.UploadPluginConfigParameters; -import org.onap.policy.gui.editors.apex.rest.handling.config.PolicyUploadPluginConfigKey; - -public class ConfigurationRestResourceTest extends JerseyTest { - - private String anUrl; - private Boolean isEnabled; - - @Override - protected Application configure() { - anUrl = "url"; - isEnabled = true; - System.setProperty(PolicyUploadPluginConfigKey.URL.getKey(), anUrl); - System.setProperty(PolicyUploadPluginConfigKey.ENABLE.getKey(), String.valueOf(isEnabled)); - final UploadPluginConfigParameters uploadPluginConfigParameters = new UploadPluginConfigParameters(); - ParameterService.clear(); - ParameterService.register(uploadPluginConfigParameters); - return new ResourceConfig(ConfigurationRestResource.class); - } - - @Test - public void testShowSuccess() { - final Response response = target("/editor/config").request().get(); - assertEquals(Status.OK.getStatusCode(), response.getStatus()); - final ApexApiResult apexApiResult = response.readEntity(ApexApiResult.class); - assertEquals(Result.SUCCESS, apexApiResult.getResult()); - final String message = apexApiResult.getMessage(); - assertThat(message).contains(String.format("\"%s\":\"%s\"", PolicyUploadPluginConfigKey.URL.getKey(), anUrl)) - .contains(String.format("\"%s\":%s", PolicyUploadPluginConfigKey.ENABLE.getKey(), isEnabled)); - } -}
\ No newline at end of file diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/ApexConfigProcessorTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/ApexConfigProcessorTest.java deleted file mode 100644 index 0842b1b..0000000 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/ApexConfigProcessorTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 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.policy.gui.editors.apex.rest.handling.converter.tosca; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.is; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.ApexConfigProcessor.ErrorMessage.INVALID_APEX_CONFIG; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.ApexConfigProcessor.ErrorMessage.INVALID_ENTRY; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.ApexConfigProcessor.ErrorMessage.MISSING_ENTRY; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.ENGINE_SERVICE_PARAMETERS; - -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; -import org.junit.Test; -import org.onap.policy.common.utils.coder.StandardCoder; - -public class ApexConfigProcessorTest { - - private final ApexConfigProcessor apexConfigProcessor = new ApexConfigProcessor(new StandardCoder()); - private final Path testResourcesPath = Paths.get("src", "test", "resources", "processor"); - - @Test - public void testProcessSuccess() throws IOException { - final String fileName = "ApexConfig.json"; - final ProcessedTemplate process; - try (final FileInputStream fileInputStream = readFileAsStream(fileName)) { - process = apexConfigProcessor.process(fileInputStream); - } - assertThat("Template should be valid", process.isValid(), is(true)); - final String expectedContent = readFileAsString(fileName); - assertThat("Content should be the same", process.getContent(), is(expectedContent)); - } - - @Test - public void testProcessMissingPoliciesEntry() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream( - "ApexConfig-missing-engineServiceParameters.json")) { - processedTemplate = apexConfigProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, - List.of(MISSING_ENTRY.getMessage(ENGINE_SERVICE_PARAMETERS.getKey()))); - } - - @Test - public void testProcessInvalidToscaTemplate() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ApexConfig-invalid.jsonbad")) { - processedTemplate = apexConfigProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, List.of(INVALID_APEX_CONFIG.getMessage())); - } - - @Test - public void testProcessInvalidEngineServiceParameters() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream( - "ApexConfig-invalid-engineServiceParameters.json")) { - processedTemplate = apexConfigProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, - List.of(INVALID_ENTRY.getMessage(ENGINE_SERVICE_PARAMETERS.getKey()))); - } - - private void assertProcessedTemplate(final ProcessedTemplate process, boolean isValid, - final List<String> expectedErrorList) { - - assertThat("Template should be valid", process.isValid(), is(isValid)); - if (isValid || expectedErrorList == null) { - return; - } - assertThat("Should contains the expected quantity of errors", process.getErrorSet().size(), - is(expectedErrorList.size())); - expectedErrorList.forEach(errorMsg -> assertThat("Should contains a specific error message", - process.getErrorSet(), contains(errorMsg))); - } - - private FileInputStream readFileAsStream(final String fileName) throws FileNotFoundException { - final Path path = Paths.get(testResourcesPath.toString(), fileName); - return new FileInputStream(path.toFile()); - } - - private String readFileAsString(final String fileName) throws IOException { - final Path path = Paths.get(testResourcesPath.toString(), fileName); - return Files.readString(path); - } - -}
\ No newline at end of file diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/PolicyToscaConverterTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/PolicyToscaConverterTest.java deleted file mode 100644 index ecf896e..0000000 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/PolicyToscaConverterTest.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 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.policy.gui.editors.apex.rest.handling.converter.tosca; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doThrow; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.ENGINE_SERVICE_PARAMETERS; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.POLICIES; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.POLICY_TYPE_IMPL; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.PROPERTIES; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.TOPOLOGY_TEMPLATE; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.TOSCA_DEFINITIONS_VERSION; - -import com.google.gson.JsonObject; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.MockitoAnnotations; -import org.mockito.Spy; -import org.onap.policy.common.utils.coder.CoderException; -import org.onap.policy.common.utils.coder.StandardCoder; -import org.onap.policy.common.utils.coder.StandardYamlCoder; -import org.onap.policy.common.utils.coder.YamlJsonTranslator; -import org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.exception.PolicyToscaConverterException; - -public class PolicyToscaConverterTest { - - @Spy - private final StandardCoder standardCoder = new StandardCoder(); - @Spy - private final YamlJsonTranslator yamlJsonTranslator = new YamlJsonTranslator(); - @InjectMocks - private PolicyToscaConverter policyToscaConverter; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - } - - @Test - public void testConvertSuccess() throws IOException, PolicyToscaConverterException, CoderException { - final String apexConfig = readResourceFileToString(Paths.get("converter", "ApexConfig.json")); - final String apexPolicy = readResourceFileToString(Paths.get("converter", "APEXgRPCPolicy.json")); - final String toscaTemplate = readResourceFileToString(Paths.get("converter", "ToscaTemplate.json")); - final Optional<String> convert = policyToscaConverter.convert(apexPolicy, apexConfig, toscaTemplate); - assertTrue(convert.isPresent()); - final String convertedYaml = convert.get(); - final StandardYamlCoder standardYamlCoder = new StandardYamlCoder(); - @SuppressWarnings("unchecked") final Map<String, Object> yamlAsMap = - standardYamlCoder.decode(convertedYaml, Map.class); - assertThat(yamlAsMap).containsKeys(TOSCA_DEFINITIONS_VERSION.getKey(), TOPOLOGY_TEMPLATE.getKey()); - @SuppressWarnings("unchecked") final Map<String, Object> topology_template = - (Map<String, Object>) yamlAsMap.get(TOPOLOGY_TEMPLATE.getKey()); - assertThat(topology_template).containsKey(POLICIES.getKey()); - @SuppressWarnings("unchecked") final List<Object> policies = - (List<Object>) topology_template.get(POLICIES.getKey()); - assertEquals(1, policies.size()); - @SuppressWarnings("unchecked") final Map<String, Object> firstPolicyMap = (Map<String, Object>) policies.get(0); - assertEquals(1, firstPolicyMap.keySet().size()); - @SuppressWarnings("unchecked") final Map<String, Object> firstPolicy = - (Map<String, Object>) firstPolicyMap.get(firstPolicyMap.keySet().iterator().next()); - assertThat(firstPolicy).containsKey(PROPERTIES.getKey()); - @SuppressWarnings("unchecked") final Map<String, Object> propertiesMap = - (Map<String, Object>) firstPolicy.get(PROPERTIES.getKey()); - assertThat(propertiesMap).containsKey(ENGINE_SERVICE_PARAMETERS.getKey()); - @SuppressWarnings("unchecked") final Map<String, Object> engineServiceParametersProperty = - (Map<String, Object>) propertiesMap.get(ENGINE_SERVICE_PARAMETERS.getKey()); - assertThat(engineServiceParametersProperty).containsKey(POLICY_TYPE_IMPL.getKey()); - } - - @Test - public void testConvertInvalidJsonDecode() throws CoderException { - final String invalidJson = "this is an invalid JSON"; - doThrow(CoderException.class).when(standardCoder).decode(eq(invalidJson), eq(JsonObject.class)); - - final String expectedMsg = String.format("Could not convert JSON string to JSON:\n%s", invalidJson); - assertThatThrownBy(() -> policyToscaConverter.convert(invalidJson, invalidJson, invalidJson)) - .isInstanceOf(PolicyToscaConverterException.class) - .hasMessage(expectedMsg); - } - - @Test - public void testConvertInvalidJsonEncodeToString() throws IOException { - final String apexConfig = readResourceFileToString(Paths.get("converter", "ApexConfig.json")); - final String apexPolicy = readResourceFileToString(Paths.get("converter", "APEXgRPCPolicy.json")); - final String toscaTemplate = readResourceFileToString(Paths.get("converter", "ToscaTemplate.json")); - - doThrow(RuntimeException.class).when(yamlJsonTranslator).toYaml(any(JsonObject.class)); - - assertThatThrownBy(() -> policyToscaConverter.convert(apexPolicy, apexConfig, toscaTemplate)) - .isInstanceOf(PolicyToscaConverterException.class) - .hasMessageContaining("Could not convert JSON Object to YAML:"); - } - - @Test - public void testCouldNotReadFirstPolicy() throws IOException { - final String apexConfig = readResourceFileToString(Paths.get("converter", "ApexConfig.json")); - final String apexPolicy = readResourceFileToString(Paths.get("converter", "APEXgRPCPolicy.json")); - final String toscaTemplate1 = - readResourceFileToString(Paths.get("processor", "ToscaTemplate-missing-policies.json")); - final String expectedError = - String.format("Could not read the first policy in the '%s' entry under '%s'", - POLICIES.getKey(), TOPOLOGY_TEMPLATE.getKey()); - - assertThatThrownBy(() -> policyToscaConverter.convert(apexPolicy, apexConfig, toscaTemplate1)) - .isInstanceOf(PolicyToscaConverterException.class) - .hasMessage(expectedError); - final String toscaTemplate2 = - readResourceFileToString(Paths.get("processor", "ToscaTemplate-missing-policy.json")); - - assertThatThrownBy(() -> policyToscaConverter.convert(apexPolicy, apexConfig, toscaTemplate2)) - .isInstanceOf(PolicyToscaConverterException.class) - .hasMessage(expectedError); - } - - @Test - public void testCouldNotReadPolicyProperties() throws IOException { - final String apexConfig = readResourceFileToString(Paths.get("converter", "ApexConfig.json")); - final String apexPolicy = readResourceFileToString(Paths.get("converter", "APEXgRPCPolicy.json")); - final String toscaTemplate = - readResourceFileToString(Paths.get("processor", "ToscaTemplate-missing-properties.json")); - assertThatThrownBy(() -> policyToscaConverter.convert(apexPolicy, apexConfig, toscaTemplate)) - .isInstanceOf(PolicyToscaConverterException.class) - .hasMessage(String.format("Could not read the policy '%s' entry", PROPERTIES.getKey())); - } - - @Test - public void testCouldNotReadEngineServiceParameters() throws IOException { - final String apexConfig = - readResourceFileToString(Paths.get("converter", "ApexConfig-engineServiceParameters-notAnObject.json")); - final String apexPolicy = readResourceFileToString(Paths.get("converter", "APEXgRPCPolicy.json")); - final String toscaTemplate = - readResourceFileToString(Paths.get("converter", "ToscaTemplate.json")); - assertThatThrownBy(() -> policyToscaConverter.convert(apexPolicy, apexConfig, toscaTemplate)) - .isInstanceOf(PolicyToscaConverterException.class) - .hasMessage( - String.format("Could not read the '%s' in the Apex Config", ENGINE_SERVICE_PARAMETERS.getKey())); - } - - @Test - public void testCouldNotReadTopologyTemplate() throws IOException { - final String apexConfig = readResourceFileToString(Paths.get("converter", "ApexConfig.json")); - final String apexPolicy = readResourceFileToString(Paths.get("converter", "APEXgRPCPolicy.json")); - final String toscaTemplate = - readResourceFileToString(Paths.get("processor", "ToscaTemplate-missing-topology-template.json")); - assertThatThrownBy(() -> policyToscaConverter.convert(apexPolicy, apexConfig, toscaTemplate)) - .isInstanceOf(PolicyToscaConverterException.class) - .hasMessage( - String.format("Could not read the '%s' entry in the Tosca Template", TOPOLOGY_TEMPLATE.getKey())); - } - - private String readResourceFileToString(final Path filePathFromResources) throws IOException { - final Path resourceDirectory = Paths.get("src", "test", "resources"); - final Path converter = Paths.get(resourceDirectory.toString(), filePathFromResources.toString()); - return Files.readString(converter); - } - -}
\ No newline at end of file diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/PolicyUploadHandlerTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/PolicyUploadHandlerTest.java deleted file mode 100644 index 6ec5eef..0000000 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/PolicyUploadHandlerTest.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 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.policy.gui.editors.apex.rest.handling.converter.tosca; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import javax.ws.rs.core.Response; -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey; -import org.onap.policy.apex.model.basicmodel.concepts.AxKeyInfo; -import org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation; -import org.onap.policy.apex.model.modelapi.ApexApiResult; -import org.onap.policy.apex.model.modelapi.ApexModel; -import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel; -import org.onap.policy.gui.editors.apex.rest.UploadPluginConfigParameters; -import org.onap.policy.gui.editors.apex.rest.handling.PolicyUploadHandler; -import org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.exception.PolicyToscaConverterException; -import org.onap.policy.gui.editors.apex.rest.handling.plugin.upload.UploadPluginClient; -import org.onap.policy.gui.editors.apex.rest.handling.plugin.upload.UploadPolicyRequestDto; - -public class PolicyUploadHandlerTest { - - private static final String USER_ID = "cs0008"; - @Mock - private PolicyToscaConverter policyToscaConverter; - @Mock - private ToscaTemplateProcessor toscaTemplateProcessor; - @Mock - private ApexConfigProcessor apexConfigProcessor; - @Mock - private UploadPluginClient uploadPluginClient; - @Mock - private UploadPluginConfigParameters config; - - @InjectMocks - private PolicyUploadHandler policyUploadHandler; - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - when(config.isEnabled()).thenReturn(true); - } - - @Test - public void doUploadResponseSuccessAndFail() throws PolicyToscaConverterException, IOException { - final ApexModel apexModel = mockApexModel(); - final ProcessedTemplate processedToscaTemplate = new ProcessedTemplate(); - processedToscaTemplate.setContent("tosca"); - final ProcessedTemplate processedApexConfig = new ProcessedTemplate(); - processedApexConfig.setContent("apexConfig"); - when(toscaTemplateProcessor.process(any(InputStream.class))).thenReturn(processedToscaTemplate); - when(apexConfigProcessor.process(any(InputStream.class))).thenReturn(processedApexConfig); - when(policyToscaConverter.convert(eq("policy\n"), eq("apexConfig"), eq("tosca"))) - .thenReturn(Optional.of("test")); - when(uploadPluginClient.upload(any(UploadPolicyRequestDto.class))) - .thenReturn(Response.ok().status(201).build()); - - ApexApiResult apexApiResult = policyUploadHandler - .doUpload(apexModel, mock(InputStream.class), mock(InputStream.class), USER_ID); - - assertThat("Response should be ok", apexApiResult.isOk(), is(true)); - String expectedSuccessMsg = - String.format("Policy '%s' uploaded successfully", apexModel.getPolicyModel().getId()); - assertThat("Response message should be as expected", - apexApiResult.getMessage(), is(expectedSuccessMsg + "\n")); - - when(uploadPluginClient.upload(any(UploadPolicyRequestDto.class))) - .thenReturn(Response.serverError().build()); - - apexApiResult = policyUploadHandler - .doUpload(apexModel, mock(InputStream.class), mock(InputStream.class), USER_ID); - - assertThat("Response should not be ok", apexApiResult.isNok(), is(true)); - expectedSuccessMsg = - String.format("An error has occurred while uploading the Policy '%s'. Status was %s", - apexModel.getPolicyModel().getId(), 500); - assertThat("Response message should be as expected", - apexApiResult.getMessage(), is(expectedSuccessMsg + "\n")); - } - - @Test - public void doUploadPluginDisabled() throws IOException { - when(config.isEnabled()).thenReturn(false); - - final ProcessedTemplate processedToscaTemplate = new ProcessedTemplate(); - final ProcessedTemplate processedApexConfig = new ProcessedTemplate(); - when(toscaTemplateProcessor.process(any(InputStream.class))).thenReturn(processedToscaTemplate); - when(apexConfigProcessor.process(any(InputStream.class))).thenReturn(processedApexConfig); - final ApexApiResult apexApiResult = policyUploadHandler - .doUpload(mock(ApexModel.class), mock(InputStream.class), mock(InputStream.class), USER_ID); - - assertThat("Response should not be ok", apexApiResult.isNok(), is(true)); - assertThat("Response message should be as expected", - apexApiResult.getMessage(), is("Upload feature is disabled\n")); - } - - @Test - public void doUploadInvalidToscaTemplate() throws IOException { - when(config.isEnabled()).thenReturn(false); - - final ProcessedTemplate processedToscaTemplate = new ProcessedTemplate(); - final String errorMsg = "an error"; - processedToscaTemplate.addToErrors(Collections.singleton(errorMsg)); - when(toscaTemplateProcessor.process(any(InputStream.class))).thenReturn(processedToscaTemplate); - final ApexApiResult apexApiResult = policyUploadHandler - .doUpload(mock(ApexModel.class), mock(InputStream.class), mock(InputStream.class), USER_ID); - - assertThat("Response should not be ok", apexApiResult.isNok(), is(true)); - assertThat("Response message should be as expected", - apexApiResult.getMessage(), is(errorMsg + "\n")); - } - - @Test - public void doUploadInvalidApexConfigTemplate() throws IOException { - when(config.isEnabled()).thenReturn(false); - - when(toscaTemplateProcessor.process(any(InputStream.class))).thenReturn(new ProcessedTemplate()); - final ProcessedTemplate processedApexConfig = new ProcessedTemplate(); - final String errorMsg = "an error"; - processedApexConfig.addToErrors(Collections.singleton(errorMsg)); - when(apexConfigProcessor.process(any(InputStream.class))).thenReturn(processedApexConfig); - final ApexApiResult apexApiResult = policyUploadHandler - .doUpload(mock(ApexModel.class), mock(InputStream.class), mock(InputStream.class), USER_ID); - - assertThat("Response should not be ok", apexApiResult.isNok(), is(true)); - assertThat("Response message should be as expected", - apexApiResult.getMessage(), is(errorMsg + "\n")); - } - - @Test - public void doUploadConversionFailed() throws PolicyToscaConverterException, IOException { - final ApexModel apexModel = mockApexModel(); - final ProcessedTemplate processedToscaTemplate = new ProcessedTemplate(); - processedToscaTemplate.setContent("tosca"); - final ProcessedTemplate processedApexConfig = new ProcessedTemplate(); - processedApexConfig.setContent("apexConfig"); - when(toscaTemplateProcessor.process(any(InputStream.class))).thenReturn(processedToscaTemplate); - when(apexConfigProcessor.process(any(InputStream.class))).thenReturn(processedApexConfig); - when(policyToscaConverter.convert(eq("policy\n"), eq("apexConfig"), eq("tosca"))) - .thenThrow(PolicyToscaConverterException.class); - when(uploadPluginClient.upload(any(UploadPolicyRequestDto.class))) - .thenReturn(Response.ok().status(201).build()); - - final ApexApiResult apexApiResult = policyUploadHandler - .doUpload(apexModel, mock(InputStream.class), mock(InputStream.class), USER_ID); - - assertThat("Response should not be ok", apexApiResult.isNok(), is(true)); - final String expectedErrorMsg = String - .format("An error has occurred while uploading the converting the Policy '%s' to YAML.", - apexModel.getPolicyModel().getId()); - assertThat("Response message should be as expected", - apexApiResult.getMessage(), is(expectedErrorMsg + "\n")); - } - - private ApexModel mockApexModel() { - final ApexModel apexModel = mock(ApexModel.class); - final ApexApiResult listModelApexApiResult = new ApexApiResult(); - listModelApexApiResult.addMessage("policy"); - when(apexModel.listModel()).thenReturn(listModelApexApiResult); - final AxPolicyModel axPolicyModel = new AxPolicyModel(); - final AxArtifactKey axArtifactKey = new AxArtifactKey("policyKey", "1.0.0"); - final Map<AxArtifactKey, AxKeyInfo> keyInfoMap = new HashMap<>(); - keyInfoMap.put(axArtifactKey, new AxKeyInfo(axArtifactKey)); - final AxKeyInformation axKeyInformation = new AxKeyInformation(axArtifactKey, keyInfoMap); - axPolicyModel.setKeyInformation(axKeyInformation); - when(apexModel.getPolicyModel()).thenReturn(axPolicyModel); - return apexModel; - } -} diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/ToscaTemplateProcessorTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/ToscaTemplateProcessorTest.java deleted file mode 100644 index 7166621..0000000 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/converter/tosca/ToscaTemplateProcessorTest.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 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.policy.gui.editors.apex.rest.handling.converter.tosca; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.is; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.POLICIES; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.PROPERTIES; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.TOPOLOGY_TEMPLATE; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.PolicyToscaConverter.ToscaKey.TOSCA_DEFINITIONS_VERSION; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.ToscaTemplateProcessor.ErrorMessage.INVALID_ENTRY; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.ToscaTemplateProcessor.ErrorMessage.INVALID_POLICY; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.ToscaTemplateProcessor.ErrorMessage.INVALID_TOSCA_TEMPLATE; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.ToscaTemplateProcessor.ErrorMessage.MISSING_ENTRY; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.ToscaTemplateProcessor.ErrorMessage.MISSING_POLICY; -import static org.onap.policy.gui.editors.apex.rest.handling.converter.tosca.ToscaTemplateProcessor.ErrorMessage.ONLY_ONE_POLICY_ALLOWED; - -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; -import org.junit.Test; -import org.onap.policy.common.utils.coder.StandardCoder; - -public class ToscaTemplateProcessorTest { - - private final ToscaTemplateProcessor toscaTemplateProcessor = new ToscaTemplateProcessor(new StandardCoder()); - private final Path testResourcesPath = Paths.get("src", "test", "resources", "processor"); - - @Test - public void testProcessSuccess() throws IOException { - final String fileName = "ToscaTemplate.json"; - final ProcessedTemplate process; - try (final FileInputStream fileInputStream = readFileAsStream(fileName)) { - process = toscaTemplateProcessor.process(fileInputStream); - } - assertThat("Template should be valid", process.isValid(), is(true)); - final String expectedContent = readFileAsString(fileName); - assertThat("Content should be the same", process.getContent(), is(expectedContent)); - } - - @Test - public void testProcessMissingPoliciesEntry() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-missing-policies.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, List.of(MISSING_ENTRY.getMessage(POLICIES.getKey()))); - } - - @Test - public void testProcessMissingTopologyTemplate() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-missing-topology-template.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, - List.of(MISSING_ENTRY.getMessage(TOPOLOGY_TEMPLATE.getKey()))); - } - - @Test - public void testProcessMissingPolicy() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-missing-policy.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, List.of(MISSING_POLICY.getMessage())); - } - - @Test - public void testProcessMissingToscaDefinitionsVersion() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream( - "ToscaTemplate-missing-tosca-definitions-version.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, - List.of(MISSING_ENTRY.getMessage(TOSCA_DEFINITIONS_VERSION.getKey()))); - } - - @Test - public void testProcessMissingProperties() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-missing-properties.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, List.of(MISSING_ENTRY.getMessage(PROPERTIES.getKey()))); - } - - @Test - public void testProcessMoreThanOnePolicy() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-more-than-one-policy.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, List.of(ONLY_ONE_POLICY_ALLOWED.getMessage())); - } - - @Test - public void testProcessInvalidToscaTemplate() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-invalid.jsonbad")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, List.of(INVALID_TOSCA_TEMPLATE.getMessage())); - } - - @Test - public void testProcessInvalidEntryToscaDefinitionsVersion() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-invalid-toscaDefinitions.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, - List.of(INVALID_ENTRY.getMessage(TOSCA_DEFINITIONS_VERSION.getKey()))); - } - - @Test - public void testProcessInvalidEntryTopologyTemplate() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream( - "ToscaTemplate-invalidEntry-topologyTemplate.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, - List.of(INVALID_ENTRY.getMessage(TOPOLOGY_TEMPLATE.getKey()))); - } - - @Test - public void testProcessInvalidEntryPolicies() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-invalidEntry-policies.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, List.of(INVALID_ENTRY.getMessage(POLICIES.getKey()))); - } - - @Test - public void testProcessInvalidPolicy() throws IOException { - ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-invalidPolicy1.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, List.of(INVALID_POLICY.getMessage())); - - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-invalidPolicy2.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, List.of(INVALID_POLICY.getMessage())); - } - - @Test - public void testProcessInvalidEntryProperties() throws IOException { - final ProcessedTemplate processedTemplate; - try (final FileInputStream fileInputStream = readFileAsStream("ToscaTemplate-invalidEntry-properties.json")) { - processedTemplate = toscaTemplateProcessor.process(fileInputStream); - } - assertProcessedTemplate(processedTemplate, false, List.of(INVALID_ENTRY.getMessage(PROPERTIES.getKey()))); - } - - private void assertProcessedTemplate(final ProcessedTemplate process, boolean isValid, - final List<String> expectedErrorList) { - assertThat("Template should be valid", process.isValid(), is(isValid)); - if (isValid || expectedErrorList == null) { - return; - } - assertThat("Should contains the expected quantity of errors", process.getErrorSet().size(), - is(expectedErrorList.size())); - expectedErrorList.forEach(errorMsg -> assertThat("Should contains a specific error message", - process.getErrorSet(), contains(errorMsg))); - } - - private FileInputStream readFileAsStream(final String fileName) throws FileNotFoundException { - final Path path = Paths.get(testResourcesPath.toString(), fileName); - return new FileInputStream(path.toFile()); - } - - private String readFileAsString(final String fileName) throws IOException { - final Path path = Paths.get(testResourcesPath.toString(), fileName); - return Files.readString(path); - } - -}
\ No newline at end of file diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/plugin/upload/UploadPluginClientTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/plugin/upload/UploadPluginClientTest.java deleted file mode 100644 index ab9445e..0000000 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/plugin/upload/UploadPluginClientTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2020 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.policy.gui.editors.apex.rest.handling.plugin.upload; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import javax.ws.rs.client.Client; -import javax.ws.rs.client.Invocation.Builder; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.onap.policy.gui.editors.apex.rest.UploadPluginConfigParameters; -import org.onap.policy.gui.editors.apex.rest.handling.config.PolicyUploadPluginConfigKey; - -public class UploadPluginClientTest { - - private UploadPluginClient uploadPluginClient; - - @Mock - private Client client; - - private static final String url = "aUrl"; - - /** - * Init the mocks and system properties. - */ - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - System.setProperty(PolicyUploadPluginConfigKey.URL.getKey(), url); - final UploadPluginConfigParameters uploadPluginConfigParameters = new UploadPluginConfigParameters(); - uploadPluginClient = new UploadPluginClient(client, uploadPluginConfigParameters); - } - - @Test - public void upload() { - final Builder mockBuilder = mock(Builder.class); - final WebTarget mockWebTarget = mock(WebTarget.class); - final Response mockResponse = mock(Response.class); - doReturn(mockWebTarget).when(client).target(url); - doReturn(mockBuilder).when(mockWebTarget).request(MediaType.APPLICATION_JSON); - when(mockBuilder.post(any())).thenReturn(mockResponse); - final Response actualResponse = uploadPluginClient.upload(new UploadPolicyRequestDto()); - assertEquals(mockResponse, actualResponse); - } -}
\ No newline at end of file |