diff options
author | 2020-02-06 10:23:01 +0100 | |
---|---|---|
committer | 2020-03-03 12:41:30 -0800 | |
commit | f0a648cc89cb870a4053d47a06fe2a4a54cc3f1c (patch) | |
tree | 73943b8d2e363ff74393f60160f3d2d23f3c86ff /src/test/java/org/onap | |
parent | fb445e11abb3ad59e5e2305b023422e2b4796989 (diff) |
Rework tosca converter
New code to convert the Policy Tosca Yaml to Json Schema for the Clamp
UI
Issue-ID: CLAMP-253
Change-Id: I10c1d3d81c5feae402773de94bd88c190ec68645
Signed-off-by: WeberLaurent <weberlaurent23@gmail.com>
Diffstat (limited to 'src/test/java/org/onap')
6 files changed, 425 insertions, 0 deletions
diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ArrayFieldTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/ArrayFieldTest.java new file mode 100644 index 00000000..abf65c36 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/ArrayFieldTest.java @@ -0,0 +1,50 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. 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. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.tosca.update; + +import com.google.gson.JsonArray; +import java.io.IOException; +import java.util.ArrayList; +import junit.framework.TestCase; +import org.onap.clamp.clds.util.ResourceFileUtil; + +public class ArrayFieldTest extends TestCase { + + /** + * Test the deploy method. + * + * @throws IOException in case of failure + */ + public void testDeploy() throws IOException { + TemplateManagement templateManagement = new TemplateManagement(ResourceFileUtil.getResourceAsString( + "tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties")); + Component component = templateManagement.getComponents().get("onap.datatype.controlloop.Actor"); + Property property = component.getProperties().get("actor"); + ArrayField arrayParser = new ArrayField((ArrayList<Object>) property.getItems().get("default")); + JsonArray toTest = arrayParser.deploy(); + String reference = "[1,\"String\",5.5,true]"; + assertEquals(reference, String.valueOf(toTest)); + } +}
\ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ComponentTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/ComponentTest.java new file mode 100644 index 00000000..0494ee11 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/ComponentTest.java @@ -0,0 +1,49 @@ +/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. 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.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.clds.tosca.update;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import junit.framework.TestCase;
+import org.onap.clamp.clds.util.ResourceFileUtil;
+
+public class ComponentTest extends TestCase {
+
+ /**
+ * Test propertiesName.
+ *
+ * @throws IOException In case of failure
+ */
+ public void testPropertiesNames() throws IOException {
+ ArrayList<String> reference = new ArrayList<>(Arrays.asList("actor", "operation", "target", "payload"));
+ TemplateManagement templateManagement =
+ new TemplateManagement(
+ ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
+ ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
+ Component component = templateManagement.getComponents().get("onap.datatype.controlloop.Actor");
+ assertEquals(reference, component.propertiesNames());
+ }
+
+}
diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ConstraintTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/ConstraintTest.java new file mode 100644 index 00000000..a71ea8ac --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/ConstraintTest.java @@ -0,0 +1,97 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. 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. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.tosca.update; + +import com.google.gson.JsonObject; +import java.io.IOException; +import java.util.ArrayList; +import junit.framework.TestCase; +import org.onap.clamp.clds.util.ResourceFileUtil; + +public class ConstraintTest extends TestCase { + + TemplateManagement templateManagement = new TemplateManagement( + ResourceFileUtil.getResourceAsString("tosca/new-converter/constraints.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties")); + + Component component = templateManagement.getComponents().get("onap.datatype.controlloop.Operation"); + + public ConstraintTest() throws IOException { + } + + /** + * Test get value array. + */ + public void testGetValuesArray() { + Property property = component.getProperties().get("timeout"); + Template template = templateManagement.getTemplates().get("integer"); + JsonObject resultProcess = new JsonObject(); + property.addConstraintsAsJson(resultProcess, (ArrayList<Object>) property.getItems().get("constraints"), + template); + String reference = "{\"enum\":[3,4,5.5,6,10]}"; + assertEquals(reference, String.valueOf(resultProcess)); + property = component.getProperties().get("success"); + template = templateManagement.getTemplates().get("string"); + resultProcess = new JsonObject(); + property.addConstraintsAsJson(resultProcess, (ArrayList<Object>) property.getItems().get("constraints"), + template); + reference = "{\"enum\":[\"VALID\",\"TERMINATED\"]}"; + assertEquals(reference, String.valueOf(resultProcess)); + } + + /** + * Test get Specific length. + */ + public void testGetSpecificLength() { + //Test for string type, same process for array + Property property = component.getProperties().get("id"); + Template template = templateManagement.getTemplates().get("string"); + JsonObject resultProcess = new JsonObject(); + property.addConstraintsAsJson(resultProcess, (ArrayList<Object>) property.getItems().get("constraints"), + template); + int specificLength = 8; + int toTest = resultProcess.get("minLength").getAsInt(); + assertEquals(specificLength, toTest); + toTest = resultProcess.get("maxLength").getAsInt(); + assertEquals(specificLength, toTest); + } + + /** + * Test get limit value. + */ + public void testGetLimitValue() { + //Test for array type, same process for string + Property property = component.getProperties().get("description"); + Template template = templateManagement.getTemplates().get("array"); + JsonObject resultProcess = new JsonObject(); + property.addConstraintsAsJson(resultProcess, (ArrayList<Object>) property.getItems().get("constraints"), + template); + + int toTest = resultProcess.get("minItems").getAsInt(); + assertEquals(5, toTest); + toTest = resultProcess.get("maxItems").getAsInt(); + assertEquals(7, toTest); + } + +}
\ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/PropertyTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/PropertyTest.java new file mode 100644 index 00000000..cf183af8 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/PropertyTest.java @@ -0,0 +1,69 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. 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. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.tosca.update; + +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import java.io.IOException; +import java.util.ArrayList; +import junit.framework.TestCase; +import org.onap.clamp.clds.util.ResourceFileUtil; + +public class PropertyTest extends TestCase { + public PropertyTest() throws IOException { + } + + /** + * Test Parse array. + * + * @throws IOException In case of failure + */ + public void testParseArray() throws IOException { + TemplateManagement templateManagement = new TemplateManagement( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPoliciesEXTENTED.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties")); + Component component = templateManagement.getComponents().get("onap.datatype.controlloop.Actor"); + Property property = component.getProperties().get("actor"); + JsonArray toTest = property.parseArray((ArrayList<Object>) property.getItems().get("default")); + assertNotNull(toTest); + } + + /** + * Test add constraint as json. + * + * @throws IOException In case of failure + */ + public void testAddConstraintsAsJson() throws IOException { + TemplateManagement templateManagement = new TemplateManagement( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties")); + Component component = templateManagement.getComponents().get("onap.datatype.controlloop.operation.Failure"); + Property property = component.getProperties().get("category"); + Template template = templateManagement.getTemplates().get("string"); + JsonObject toTest = new JsonObject(); + property.addConstraintsAsJson(toTest, (ArrayList<Object>) property.getItems().get("constraints"), template); + String test = "{\"enum\":[\"error\",\"timeout\",\"retries\",\"guard\",\"exception\"]}"; + assertEquals(test, String.valueOf(toTest)); + } +}
\ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/TemplateManagementTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/TemplateManagementTest.java new file mode 100644 index 00000000..8e411069 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/TemplateManagementTest.java @@ -0,0 +1,116 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. 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. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.tosca.update; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import junit.framework.TestCase; +import org.onap.clamp.clds.util.ResourceFileUtil; + +public class TemplateManagementTest extends TestCase { + + /** + * Test the launch translation. + * + * @throws IOException In case of failure + * @throws UnknownComponentException In case of failure + */ + public void testLaunchTranslation() throws IOException, UnknownComponentException { + TemplateManagement templateManagement = + new TemplateManagement( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties")); + assertNull(templateManagement.getParseToJson()); + String componentName = "onap.policies.controlloop.operational.common.Drools"; + templateManagement.launchTranslation(componentName); + assertNotNull(templateManagement.getParseToJson()); + } + + /** + * Test addTemplate. + * + * @throws IOException In case of failure + */ + public void testAddTemplate() throws IOException { + TemplateManagement templateManagement = + new TemplateManagement( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties")); + int count = templateManagement.getTemplates().size(); + ArrayList<String> templateFields = + new ArrayList<>(Arrays.asList("type", "description", "required", "metadata", "constraints")); + templateManagement.addTemplate("test", templateFields); + assertNotSame(count, templateManagement.getTemplates().size()); + } + + /** + * test Remove template. + * + * @throws IOException In case of failure + */ + public void testRemoveTemplate() throws IOException { + TemplateManagement templateManagement = + new TemplateManagement( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties")); + int count = templateManagement.getTemplates().size(); + templateManagement.removeTemplate("string"); + assertNotSame(count, templateManagement.getTemplates().size()); + } + + /** + * Test update template. + * + * @throws IOException In case of failure + */ + public void testUpdateTemplate() throws IOException { + TemplateManagement templateManagement = + new TemplateManagement( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties")); + int count = templateManagement.getTemplates().get("integer").getFields().size(); + templateManagement.updateTemplate("integer", "type", false); + assertNotSame(count, templateManagement.getTemplates().get("integer").getFields().size()); + } + + /** + * Test has template. + * + * @throws IOException In case of failure + */ + public void testHasTemplate() throws IOException { + TemplateManagement templateManagement = + new TemplateManagement( + ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"), + ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties")); + boolean has = true; + ArrayList<String> templateFieldsString = + new ArrayList<>(Arrays.asList("type", "description", "required", "metadata", "constraints")); + Template templateTest = new Template("String", templateFieldsString); + has = templateManagement.hasTemplate(templateTest); + assertEquals(false, has); + } + +} diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/TemplateTest.java b/src/test/java/org/onap/clamp/clds/tosca/update/TemplateTest.java new file mode 100644 index 00000000..ebc119f0 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/tosca/update/TemplateTest.java @@ -0,0 +1,44 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. 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. + * ============LICENSE_END============================================ + * =================================================================== + * + */ + +package org.onap.clamp.clds.tosca.update; + +import java.util.ArrayList; +import java.util.Arrays; +import junit.framework.TestCase; + +public class TemplateTest extends TestCase { + + /** + * Test check failed. + */ + public void testCheckFields() { + Template toTest = new Template("toTest"); + ArrayList<String> fields = new ArrayList<>(Arrays.asList("type", "description", "enum")); + toTest.setFields(fields); + Template reference = new Template("toTest"); + reference.setFields(fields); + assertTrue(toTest.checkFields(reference)); + } + +}
\ No newline at end of file |