aboutsummaryrefslogtreecommitdiffstats
path: root/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer
diff options
context:
space:
mode:
authorPatrick Brady <pb071s@att.com>2017-12-13 11:14:21 -0800
committerPatrick Brady <pb071s@att.com>2017-12-13 11:14:31 -0800
commit161df8a94bb3b0c34ed16fd4fdba078bd1eeef9a (patch)
tree21f410d053d5e390902d72bb3ebe6889451dd633 /appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer
parent0756759f39e125b02d63b4e93de83b3c6b13beea (diff)
Second part of onap rename
This is the second commit of the rename. The folder structure is renamed for appc-adapters and appc-config in this commit. Change-Id: Iaa2b8c937ff1ca1b5d1178128961fb115ee65d9b Signed-off-by: Patrick Brady <pb071s@att.com> Issue-ID: APPC-13
Diffstat (limited to 'appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer')
-rw-r--r--appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestArtifactProcessor.java105
-rw-r--r--appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestGenerateArtifactObject.java254
-rw-r--r--appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestGenerateArtifactString.java155
-rw-r--r--appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestPropertyQueryString.java171
-rw-r--r--appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestReadArtifact.java103
5 files changed, 788 insertions, 0 deletions
diff --git a/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestArtifactProcessor.java b/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestArtifactProcessor.java
new file mode 100644
index 000000000..33845ddca
--- /dev/null
+++ b/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestArtifactProcessor.java
@@ -0,0 +1,105 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdnc.config.params.transformer.tosca;
+
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.openecomp.sdnc.config.params.transformer.tosca.exceptions.ArtifactProcessorException;
+
+import java.io.*;
+
+public class TestArtifactProcessor{
+ @Rule
+ public TemporaryFolder temporaryFolder = new TemporaryFolder();
+
+ @Test
+ public void testArtifactProcessor() throws IOException, ArtifactProcessorException {
+
+ ArtifactProcessor arp = ArtifactProcessorFactory.getArtifactProcessor();
+
+ String pdString = getFileContent("tosca/ExamplePropertyDefinition.yml");
+ OutputStream outstream=null;
+
+ File tempFile = temporaryFolder.newFile("TestTosca.yml");
+ outstream = new FileOutputStream(tempFile);
+ arp.generateArtifact(pdString,outstream);
+ outstream.flush();
+ outstream.close();
+
+ String expectedTosca = getFileContent("tosca/ExpectedTosca.yml");
+ String toscaString = getFileContent(tempFile);
+ Assert.assertEquals(expectedTosca,toscaString);
+ }
+
+ @Test
+ public void testArtifactProcessorWithStringOutput() throws IOException, ArtifactProcessorException {
+
+ ArtifactProcessor arp = ArtifactProcessorFactory.getArtifactProcessor();
+
+ String pdString = getFileContent("tosca/ExamplePropertyDefinition.yml");
+ OutputStream outstream=null;
+
+ outstream = new ByteArrayOutputStream();
+ arp.generateArtifact(pdString,outstream);
+ outstream.flush();
+ outstream.close();
+
+ String expectedTosca = getFileContent("tosca/ExpectedTosca.yml");
+ String toscaString = outstream.toString();
+ }
+
+ private String getFileContent(String fileName) throws IOException{
+ ClassLoader classLoader = new TestArtifactProcessor().getClass().getClassLoader();
+ InputStream is = new FileInputStream(classLoader.getResource(fileName).getFile());
+ BufferedReader buf = new BufferedReader(new InputStreamReader(is));
+ String line = buf.readLine();
+ StringBuilder sb = new StringBuilder();
+
+ while (line != null) {
+ sb.append(line).append("\n");
+ line = buf.readLine();
+ }
+ String fileString = sb.toString();
+ is.close();
+ return fileString;
+ }
+
+ private String getFileContent(File file) throws IOException{
+ InputStream is = new FileInputStream(file);
+ BufferedReader buf = new BufferedReader(new InputStreamReader(is));
+ String line = buf.readLine();
+ StringBuilder sb = new StringBuilder();
+
+ while (line != null) {
+ sb.append(line).append("\n");
+ line = buf.readLine();
+ }
+ String fileString = sb.toString();
+ is.close();
+ return fileString;
+ }
+}
diff --git a/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestGenerateArtifactObject.java b/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestGenerateArtifactObject.java
new file mode 100644
index 000000000..950180262
--- /dev/null
+++ b/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestGenerateArtifactObject.java
@@ -0,0 +1,254 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdnc.config.params.transformer.tosca;
+
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.openecomp.sdnc.config.params.data.Parameter;
+import org.openecomp.sdnc.config.params.data.PropertyDefinition;
+import org.openecomp.sdnc.config.params.data.RequestKey;
+import org.openecomp.sdnc.config.params.data.ResponseKey;
+import org.openecomp.sdnc.config.params.transformer.tosca.exceptions.ArtifactProcessorException;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.List;
+
+public class TestGenerateArtifactObject
+{
+ @Rule
+ public TemporaryFolder temporaryFolder = new TemporaryFolder();
+
+ @Test
+ public void testObjectArtifactProcessor() throws IOException, ArtifactProcessorException {
+
+ String expectedTosca="node_types:\n" +
+ " VNF:\n" +
+ " derived_from: org.openecomp.genericvnf\n" +
+ " version: V1\n" +
+ " description: ''\n" +
+ " properties:\n" +
+ " LOCAL_ACCESS_IP_ADDR:\n" +
+ " type: string\n" +
+ " required: false\n" +
+ " default: 0.0.0.0\n" +
+ " status: SUPPORTED\n" +
+ " LOCAL_CORE_ALT_IP_ADDR:\n" +
+ " type: String\n" +
+ " required: false\n" +
+ " default: value\n" +
+ " status: SUPPORTED\n" +
+ "topology_template:\n" +
+ " node_templates:\n" +
+ " VNF_Template:\n" +
+ " type: VNF\n" +
+ " properties:\n" +
+ " LOCAL_ACCESS_IP_ADDR: <rule-type = myRule1> <response-keys = > <source-system = source> <request-keys = class-type:interface-ip-address , address_fqdn:someVal , address_type:v4>\n" +
+ " LOCAL_CORE_ALT_IP_ADDR: <rule-type = myRule2> <response-keys = name1:value1:field1> <source-system = source> <request-keys = >\n";
+ //Create object
+ PropertyDefinition pd = new PropertyDefinition();
+ pd.setKind("VNF");
+ pd.setVersion("V1");
+ pd.setParameters(createParameters());
+
+ //Call ArtifactProcessor
+ OutputStream outstream=null;
+
+ File toscaFile =temporaryFolder.newFile("TestTosca.yml");
+ outstream = new FileOutputStream(toscaFile);
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ arp.generateArtifact(pd,outstream);
+ outstream.flush();
+ outstream.close();
+
+ String toscaString = getFileContent(toscaFile);
+ Assert.assertEquals(expectedTosca,toscaString);
+
+ }
+
+ @Test
+ public void testPDpropertiesSetNull() throws IOException, ArtifactProcessorException {
+ String expectedTosca = "node_types:\n" +
+ " PropertyDefinition:\n" +
+ " derived_from: org.openecomp.genericvnf\n" +
+ " version: V1\n" +
+ " description: ''\n" +
+ "topology_template:\n" +
+ " node_templates:\n" +
+ " PropertyDefinition_Template:\n" +
+ " type: PropertyDefinition\n";
+ //Create object
+ PropertyDefinition pd = new PropertyDefinition();
+ pd.setKind("PropertyDefinition");
+ pd.setVersion("V1");
+ OutputStream outstream=null;
+
+ File toscaFile =temporaryFolder.newFile("TestTosca.yml");
+ outstream = new FileOutputStream(toscaFile);
+
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ arp.generateArtifact(pd,outstream);
+ outstream.flush();
+ outstream.close();
+
+ String toscaString = getFileContent(toscaFile);
+ Assert.assertEquals(expectedTosca,toscaString);
+ }
+
+ @Test
+ public void testArtifactGeneratorInvalidStream() throws IOException {
+ String expectedMsg = "java.io.IOException: Stream Closed";
+ PropertyDefinition pd = new PropertyDefinition();
+ pd.setKind("VNF");
+ pd.setVersion("V1");
+ pd.setParameters(createParameters());
+
+ //Call ArtifactProcessor
+ OutputStream outstream=null;
+ try {
+ File toscaFile =temporaryFolder.newFile("TestTosca.yml");
+ outstream = new FileOutputStream(toscaFile);
+ outstream.close();
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ arp.generateArtifact(pd,outstream);
+ Assert.fail();
+ }
+ catch (ArtifactProcessorException e)
+ {
+ Assert.assertEquals(expectedMsg,e.getMessage());
+ }
+ }
+
+ private List<Parameter> createParameters()
+ {
+ //Create single Parameter object 1
+ Parameter singleParameter1 = new Parameter();
+ singleParameter1.setName("LOCAL_ACCESS_IP_ADDR");
+ singleParameter1.setRequired(false);
+ singleParameter1.setSource("source");
+ singleParameter1.setDefaultValue("0.0.0.0");
+ singleParameter1.setRuleType("myRule1");
+ singleParameter1.setRequestKeys(createRequestKeys());
+
+ //Create single Parameter object 2
+ Parameter singleParameter2 = new Parameter();
+ singleParameter2.setName("LOCAL_CORE_ALT_IP_ADDR");
+ singleParameter2.setType("String");
+ singleParameter2.setRequired(false);
+ singleParameter2.setSource("source");
+ singleParameter2.setDefaultValue("value");
+ singleParameter2.setRuleType("myRule2");
+ singleParameter2.setResponseKeys(createResponseKeys());
+
+ //Add the Parameter objects to the List
+ List<Parameter> parameterList = new ArrayList<Parameter>();
+ parameterList.add(singleParameter1);
+ parameterList.add(singleParameter2);
+ return parameterList;
+ }
+
+ private List<RequestKey> createRequestKeys()
+ {
+ //Create RequestKey object 1
+ RequestKey requestKey1 = new RequestKey();
+ requestKey1.setKeyName("class-type");
+ requestKey1.setKeyValue("interface-ip-address");
+
+ //Create RequestKey object 2
+ RequestKey requestKey2 = new RequestKey();
+ requestKey2.setKeyName("address_fqdn");
+ requestKey2.setKeyValue("someVal");
+
+ //Create RequestKey object 3
+ RequestKey requestKey3 = new RequestKey();
+ requestKey3.setKeyName("address_type");
+ requestKey3.setKeyValue("v4");
+
+ //Add the RequestKey Objects to the List
+ List<RequestKey> requestKeyList = new ArrayList<RequestKey>();
+ requestKeyList.add(requestKey1);
+ requestKeyList.add(requestKey2);
+ requestKeyList.add(requestKey3);
+ return requestKeyList;
+ }
+
+ private List<ResponseKey> createResponseKeys()
+ {
+ //Create RequestKey object 1
+ ResponseKey responseKey1 = new ResponseKey();
+
+ responseKey1.setUniqueKeyName("name1");
+ responseKey1.setUniqueKeyValue("value1");
+ responseKey1.setFieldKeyName("field1");
+
+ //Add the RequestKey Objects to the List
+ List<ResponseKey> responseKeyList = new ArrayList<ResponseKey>();
+ responseKeyList.add(responseKey1);
+
+ return responseKeyList;
+ }
+
+ private Parameter createParameter()
+ {
+ Parameter singleParameter1 = new Parameter();
+ singleParameter1.setName("LOCAL_ACCESS_IP_ADDR");
+ singleParameter1.setRequired(false);
+ singleParameter1.setSource("source");
+ singleParameter1.setDefaultValue("0.0.0.0");
+ singleParameter1.setRequestKeys(createRequestKeys());
+ singleParameter1.setResponseKeys(createResponseKeys());
+ return singleParameter1;
+ }
+
+ @Test(expected =Exception.class)
+ public void testPDnull() throws IOException, ArtifactProcessorException {
+ PropertyDefinition pd = null;
+ OutputStream outstream=null;
+
+ outstream = new FileOutputStream(".\\TestTosca.yml");
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ arp.generateArtifact(pd,outstream);
+ outstream.flush();
+ outstream.close();
+ }
+
+ private String getFileContent(File file) throws IOException
+ {
+ InputStream is = new FileInputStream(file);
+ BufferedReader buf = new BufferedReader(new InputStreamReader(is));
+ String line = buf.readLine();
+ StringBuilder sb = new StringBuilder();
+
+ while (line != null) {
+ sb.append(line).append("\n");
+ line = buf.readLine();
+ }
+ String fileString = sb.toString();
+ is.close();
+ return fileString;
+ }
+}
diff --git a/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestGenerateArtifactString.java b/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestGenerateArtifactString.java
new file mode 100644
index 000000000..4ffbe5298
--- /dev/null
+++ b/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestGenerateArtifactString.java
@@ -0,0 +1,155 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdnc.config.params.transformer.tosca;
+
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.openecomp.sdnc.config.params.transformer.tosca.exceptions.ArtifactProcessorException;
+
+import java.io.*;
+import java.net.URL;
+
+public class TestGenerateArtifactString{
+
+ @Rule
+ public TemporaryFolder temporaryFolder = new TemporaryFolder();
+
+ @Test
+ public void testStringArtifactGenerator() throws IOException, ArtifactProcessorException {
+
+ String pdString = getFileContent("tosca/ExamplePropertyDefinition.yml");
+ OutputStream outstream=null;
+
+ File tempFile = temporaryFolder.newFile("TestTosca.yml");
+ outstream = new FileOutputStream(tempFile);
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ arp.generateArtifact(pdString,outstream);
+ outstream.flush();
+ outstream.close();
+
+ String expectedTosca = getFileContent("tosca/ExpectedTosca.yml");
+ String toscaString = getFileContent(tempFile);
+ Assert.assertEquals(expectedTosca,toscaString);
+
+ }
+
+ @Test
+ public void testArtifactGeneratorWithParameterNameBlank() throws IOException, ArtifactProcessorException {
+
+ String pdString = getFileContent("tosca/ExamplePropertyDefinition2.yml");
+ OutputStream outstream=null;
+ String expectedMsg ="Parameter name is empty,null or contains whitespace";
+
+ File tempFile = temporaryFolder.newFile("TestTosca.yml");
+ outstream = new FileOutputStream(tempFile);
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ try {
+ arp.generateArtifact(pdString, outstream);
+ }
+ catch (ArtifactProcessorException e)
+ {
+ Assert.assertEquals(expectedMsg,e.getMessage());
+ }
+ outstream.flush();
+ outstream.close();
+ }
+
+ @Test
+ public void testArtifactGeneratorWithParameterNameNull() throws IOException, ArtifactProcessorException {
+
+ String pdString = getFileContent("tosca/ExamplePropertyDefinition3.yml");
+ OutputStream outstream=null;
+ String expectedMsg ="Parameter name is empty,null or contains whitespace";
+
+ File tempFile = temporaryFolder.newFile("TestTosca.yml");
+ outstream = new FileOutputStream(tempFile);
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ try {
+ arp.generateArtifact(pdString, outstream);
+ }
+ catch (ArtifactProcessorException e)
+ {
+ Assert.assertEquals(expectedMsg,e.getMessage());
+ }
+ outstream.flush();
+ outstream.close();
+ }
+
+ @Test
+ public void testArtifactGeneratorWithKindNull() throws IOException, ArtifactProcessorException {
+
+ String pdString = getFileContent("tosca/ExamplePropertyDefinition4.yml");
+ OutputStream outstream=null;
+ String expectedMsg ="Kind in PropertyDefinition is blank or null";
+
+ File tempFile = temporaryFolder.newFile("TestTosca.yml");
+ outstream = new FileOutputStream(tempFile);
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ try {
+ arp.generateArtifact(pdString, outstream);
+ }
+ catch (ArtifactProcessorException e)
+ {
+ Assert.assertEquals(expectedMsg,e.getMessage());
+ }
+ outstream.flush();
+ outstream.close();
+ }
+
+ private String getFileContent(String fileName) throws IOException
+ {
+ ClassLoader classLoader = new TestGenerateArtifactString().getClass().getClassLoader();
+ InputStream is = new FileInputStream(classLoader.getResource(fileName).getFile());
+ BufferedReader buf = new BufferedReader(new InputStreamReader(is));
+ String line = buf.readLine();
+ StringBuilder sb = new StringBuilder();
+
+ while (line != null) {
+ sb.append(line).append("\n");
+ line = buf.readLine();
+ }
+ String fileString = sb.toString();
+ is.close();
+ return fileString;
+ }
+
+ private String getFileContent(File file) throws IOException
+ {
+ InputStream is = new FileInputStream(file);
+ BufferedReader buf = new BufferedReader(new InputStreamReader(is));
+ String line = buf.readLine();
+ StringBuilder sb = new StringBuilder();
+
+ while (line != null) {
+ sb.append(line).append("\n");
+ line = buf.readLine();
+ }
+ String fileString = sb.toString();
+ is.close();
+ return fileString;
+ }
+}
diff --git a/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestPropertyQueryString.java b/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestPropertyQueryString.java
new file mode 100644
index 000000000..3eb231ae9
--- /dev/null
+++ b/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestPropertyQueryString.java
@@ -0,0 +1,171 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdnc.config.params.transformer.tosca;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.sdnc.config.params.data.RequestKey;
+import org.openecomp.sdnc.config.params.data.ResponseKey;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TestPropertyQueryString
+{
+ @Test
+ public void testBuildResponseKeys()
+ {
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ String properties= arp.buildResponseKeyExpression(createResponseKeys());
+ Assert.assertEquals("<response-keys = address-fqdn:0000000000000:ipaddress-v4 , key2:value2:field2>",properties);
+ }
+
+ @Test
+ public void testBuildRequestKeys()
+ {
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ String properties= arp.buildRequestKeyExpression(createRequestKeys());
+ Assert.assertEquals("<request-keys = class-type:interface-ip-address , address_fqdn:00000000000000 , address_type:v4>",properties);
+ }
+
+ @Test
+ public void testEncoding()
+ {
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+
+ String expected1 = "&lt;class-type&gt;";
+ String encoded1 = arp.encode("<class-type>");
+ Assert.assertEquals(expected1,encoded1);
+
+ String expected2 = "&lt;&lt;&lt;metallica&lt;&gt;iron_maiden&gt;&gt;&gt;";
+ String encoded2 = arp.encode("<<<metallica<>iron_maiden>>>");
+ Assert.assertEquals(expected2,encoded2);
+
+ String expected3 = "band-list&colon;metallica&comma;ironmaiden";
+ String encoded3 = arp.encode("band-list:metallica,ironmaiden");
+ Assert.assertEquals(expected3,encoded3);
+
+ String expected4 = "motorhead&equals;lemmy";
+ String encoded4 = arp.encode("motorhead=lemmy");
+ Assert.assertEquals(expected4,encoded4);
+
+ String expected5 = "DreamTheater";
+ String encoded5 = arp.encode(" DreamTheater ");
+ Assert.assertEquals(expected5,encoded5);
+ }
+
+ @Test
+ public void testBuildRuleType()
+ {
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ String input = "IPV4";
+ String expected = "<rule-type = IPV4>";
+ Assert.assertEquals(expected,arp.buildRuleType(input));
+ }
+
+ @Test
+ public void testRuleTypeSetNull()
+ {
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ String expected = "<rule-type = >";
+ Assert.assertEquals(expected,arp.buildRuleType(null));
+ }
+
+ @Test
+ public void testBuildRequestKeysWithKeyNull()
+ {
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ List<RequestKey> requestKeyList = new ArrayList<RequestKey>();
+ requestKeyList.add(null);
+ String properties= arp.buildRequestKeyExpression(requestKeyList);
+ Assert.assertEquals("<request-keys = >",properties);
+ }
+
+ @Test
+ public void testBuildResponseKeysWithKeyNull()
+ {
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ List<ResponseKey> responseKeyList = new ArrayList<ResponseKey>();
+ responseKeyList.add(null);
+ String properties= arp.buildResponseKeyExpression(responseKeyList);
+ Assert.assertEquals("<response-keys = >",properties);
+ }
+
+ @Test
+ public void testBuildSourceSystem()
+ {
+ ArtifactProcessorImpl arp = new ArtifactProcessorImpl();
+ Assert.assertEquals("<source-system = source>",arp.buildSourceSystem("source"));
+ }
+
+ //@Test
+ private List<RequestKey> createRequestKeys()
+ {
+ //Create RequestKey object 1
+ RequestKey requestKey1 = new RequestKey();
+ requestKey1.setKeyName("class-type");
+ requestKey1.setKeyValue("interface-ip-address");
+
+ //Create RequestKey object 2
+ RequestKey requestKey2 = new RequestKey();
+ requestKey2.setKeyName("address_fqdn");
+ requestKey2.setKeyValue("00000000000000");
+
+ //Create RequestKey object 3
+ RequestKey requestKey3 = new RequestKey();
+ requestKey3.setKeyName("address_type");
+ requestKey3.setKeyValue("v4");
+
+ //Add the RequestKey Objects to the List
+ List<RequestKey> requestKeyList = new ArrayList<RequestKey>();
+ requestKeyList.add(requestKey1);
+ requestKeyList.add(requestKey2);
+ requestKeyList.add(requestKey3);
+ return requestKeyList;
+ }
+
+ //@Test
+ private List<ResponseKey> createResponseKeys()
+ {
+ //Create RequestKey object 1
+ ResponseKey responseKey1 = new ResponseKey();
+
+ responseKey1.setUniqueKeyName("address-fqdn");
+ responseKey1.setUniqueKeyValue("0000000000000");
+ responseKey1.setFieldKeyName("ipaddress-v4");
+
+ ResponseKey responseKey2 = new ResponseKey();
+ responseKey2.setUniqueKeyName("key2");
+ responseKey2.setUniqueKeyValue("value2");
+ responseKey2.setFieldKeyName("field2");
+
+ //Add the RequestKey Objects to the List
+ List<ResponseKey> responseKeyList = new ArrayList<ResponseKey>();
+ responseKeyList.add(responseKey1);
+ responseKeyList.add(responseKey2);
+
+ return responseKeyList;
+ }
+}
diff --git a/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestReadArtifact.java b/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestReadArtifact.java
new file mode 100644
index 000000000..1b65a21f6
--- /dev/null
+++ b/appc-config/appc-config-params/provider/src/test/java/org/onap/sdnc/config/params/transformer/tosca/TestReadArtifact.java
@@ -0,0 +1,103 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdnc.config.params.transformer.tosca;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.sdnc.config.params.data.PropertyDefinition;
+import org.openecomp.sdnc.config.params.transformer.tosca.exceptions.ArtifactProcessorException;
+
+import java.io.*;
+
+public class TestReadArtifact {
+ @Test
+ public void testReadArtifactPositive() throws ArtifactProcessorException, IOException {
+
+ String toscaArtifact = getFileContent("tosca/ReadArtifactPositiveInputTosca.yml");
+ ArtifactProcessorImpl artifact = new ArtifactProcessorImpl();
+ PropertyDefinition ouptPD = artifact.readArtifact(toscaArtifact);
+ Assert.assertEquals(ouptPD.getKind(),"Property Definition");
+ Assert.assertEquals(ouptPD.getVersion(),"V1");
+
+ Assert.assertEquals(ouptPD.getParameters().get(0).getDefaultValue(),"0.0.0.0");
+ Assert.assertEquals(ouptPD.getParameters().get(0).getName(),"abc");
+ Assert.assertEquals(ouptPD.getParameters().get(0).getSource(),"source");
+ Assert.assertEquals(ouptPD.getParameters().get(0).getRuleType(),"interface-ip-address");
+ Assert.assertEquals(ouptPD.getParameters().get(0).getDescription(),"param_desc");
+ Assert.assertEquals(ouptPD.getParameters().get(0).getType(),"param1_type");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getRequestKeys().get(0).getKeyName(),"address_fqdn");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getRequestKeys().get(0).getKeyValue(),"0");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getRequestKeys().get(0).getKeyName(),"address_fqdn");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getRequestKeys().get(0).getKeyValue(),"0");
+ Assert.assertEquals(ouptPD.getParameters().get(0).getResponseKeys().get(0).getUniqueKeyName(),"address-0");
+ Assert.assertEquals(ouptPD.getParameters().get(0).getResponseKeys().get(0).getFieldKeyName(),"0");
+
+ Assert.assertEquals(ouptPD.getParameters().get(1).getDefaultValue(),"value");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getName(),"param 2");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getSource(),"source");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getRuleType(),"interface-ip-address");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getDescription(),"param2");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getType(),"param2 type");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getRequestKeys().get(0).getKeyName(),"address_fqdn");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getRequestKeys().get(0).getKeyValue(),"0");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getRequestKeys().get(1).getKeyName(),"address_type");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getRequestKeys().get(1).getKeyValue(),"v4");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getResponseKeys().get(0).getUniqueKeyName(),"address-0");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getResponseKeys().get(0).getUniqueKeyValue(),"0");
+ Assert.assertEquals(ouptPD.getParameters().get(1).getResponseKeys().get(0).getFieldKeyName(),"0");
+
+ }
+
+ @Test
+ public void testReadArtifactNegetive() throws IOException {
+
+ String toscaArtifact = getFileContent("tosca/ReadArtifactNegetiveInputTosca.yml");
+ ArtifactProcessorImpl artifact = new ArtifactProcessorImpl();
+ try {
+ PropertyDefinition ouptPD = artifact.readArtifact(toscaArtifact);
+ } catch (ArtifactProcessorException e) {
+ Assert.assertNotNull(e);
+ Assert.assertEquals(e.getMessage(),"Invalid input found <> source1 <reqk1:reqv1 , reqk2:reqv2>");
+ }
+ }
+
+ private String getFileContent(String fileName) throws IOException
+ {
+ ClassLoader classLoader = new TestReadArtifact().getClass().getClassLoader();
+ InputStream is = new FileInputStream(classLoader.getResource(fileName).getFile());
+ BufferedReader buf = new BufferedReader(new InputStreamReader(is));
+ String line = buf.readLine();
+ StringBuilder sb = new StringBuilder();
+
+ while (line != null) {
+ sb.append(line).append("\n");
+ line = buf.readLine();
+ }
+ String fileString = sb.toString();
+ is.close();
+ return fileString;
+ }
+
+}