[SDC-29] Amdocs OnBoard 1707 initial commit.

Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370
Signed-off-by: AviZi <avi.ziv@amdocs.com>
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/pom.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/pom.xml
new file mode 100644
index 0000000..ee25013
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/pom.xml
@@ -0,0 +1,84 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <name>openecomp-configuration-management-test</name>
+    <groupId>org.openecomp.sdc.common</groupId>
+    <artifactId>openecomp-configuration-management-test</artifactId>
+
+    <parent>
+        <artifactId>openecomp-common-configuration-management</artifactId>
+        <groupId>org.openecomp.sdc.common</groupId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <dependencies>
+        <dependency>
+	    <groupId>org.openecomp.sdc.common</groupId>
+	    <artifactId>openecomp-configuration-management-core</artifactId>
+	    <version>${project.version}</version>
+	</dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+           <!-- <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin-->
+            <!--<plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>${mvn.surefire.version}</version>
+            </plugin>-->
+            <!-- any other plugins -->
+           <!-- <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>${mvn.shade.version}</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <artifactSet>
+                                <excludes>
+                                    <exclude>com.google.guava:*</exclude>
+                                </excludes>
+                            </artifactSet>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>-->
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>${mvn.surefire.version}</version>
+                <configuration>
+                    <skipTests>true</skipTests>
+                    <systemPropertyVariables>
+                        <config.location>${project.basedir}/src/test/resources</config.location>
+                        <node.config.location>${user.home}/TestResources</node.config.location>
+                    </systemPropertyVariables>
+                    <includes>
+                        <include>**/TestCMSuite.java</include>
+                    </includes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/TestCMSuite.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/TestCMSuite.java
new file mode 100644
index 0000000..4ef46f6
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/TestCMSuite.java
@@ -0,0 +1,58 @@
+package org.openecomp.config;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.test.*;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * Created by sheetalm on 10/25/2016.
+ */
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+        JAVAPropertiesConfigTest.class,
+        JSONConfigTest.class,
+        XMLConfigTest.class,
+        YAMLConfigTest.class,
+        CLIFallbackAndLookupTest.class,
+        CLITest.class,
+        ConfigSourceLocationTest.class,
+        DynamicConfigurationTest.class,
+        FallbackConfigTest.class,
+        FallbackToGlobalNSTest.class,
+        GlobalAndNSConfigTest.class,
+        ModeAsConfigPropTest.class,
+        MultiTenancyConfigTest.class,
+        NodeSpecificCLITest.class,
+        NotificationForNodeConfigTest.class,
+        NotificationOnPropValTest.class,
+        ResourceChangeNotificationTest.class,
+        UnregisterNotificationTest.class,
+        ValidateDefaultModeTest.class,
+        ValidateNodeConfigTest.class,
+        LoadOrderMergeAndOverrideTest.class
+
+
+})
+
+public class TestCMSuite extends junit.framework.TestSuite {
+
+    private TestCMSuite() {
+
+    }
+
+    @AfterClass
+    public static void tearDown(){
+        try {
+            ConfigurationUtils.executeDdlSql("truncate dox.configuration_change");
+            ConfigurationUtils.executeDdlSql("truncate dox.configuration");
+        }
+        catch(Exception e){
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLIFallbackAndLookupTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLIFallbackAndLookupTest.java
new file mode 100644
index 0000000..4f7ab92
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLIFallbackAndLookupTest.java
@@ -0,0 +1,83 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.Constants;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.Assert;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.management.JMX;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.util.HashMap;
+import java.util.Map;
+
+
+
+/**
+ * Created by sheetalm on 10/18/2016.
+ * Scenario 21, Scenario 23
+ * 21 - Verify the CLI fetches only the current value unless the fallback option is specified
+ * 23 - Fetch value using CLI for a key with underlying resource
+ */
+public class CLIFallbackAndLookupTest {
+
+    public final static String NAMESPACE = "CLIFallback";
+    public final static String TENANT = "OPENECOMP";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+    }
+
+    @Test
+    public void testCLIFallbackAndLookup() throws Exception{
+
+        //Verify without fallback
+        Map<String, Object> input = new HashMap<>();
+        input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+        input.put("tenant", TENANT);
+        input.put("namespace", NAMESPACE);
+        input.put("key", ConfigTestConstant.ARTIFACT_MAXSIZE);
+
+        MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();
+        ObjectName mbeanName = new ObjectName(Constants.MBEAN_NAME);
+        ConfigurationManager conf = JMX.newMBeanProxy(mbsc, mbeanName, org.openecomp.config.api.ConfigurationManager.class, true);
+        String maxSizeWithNoFallback = conf.getConfigurationValue(input);
+        Assert.assertEquals("",maxSizeWithNoFallback);
+
+        //Verify underlying resource without lookup switch
+        input.put("key", ConfigTestConstant.ARTIFACT_JSON_SCHEMA);
+        String jsonSchema = conf.getConfigurationValue(input);
+        System.out.println("jsonSchema=="+jsonSchema);
+        Assert.assertEquals("@"+System.getProperty("user.home")+"/TestResources/GeneratorsList.json" , jsonSchema);
+
+        //Verify underlying resource with lookup switch
+        input.put("externalLookup", true);
+        jsonSchema = conf.getConfigurationValue(input);
+        System.out.println("jsonSchema=="+jsonSchema);
+        Assert.assertEquals("{name:\"SCM\"}" , jsonSchema);
+
+        //Verify with fallback
+        Map<String, Object> fallbackInput = new HashMap<>();
+        fallbackInput.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+        fallbackInput.put("fallback", true);
+        fallbackInput.put("tenant", TENANT);
+        fallbackInput.put("namespace", NAMESPACE);
+        fallbackInput.put("key", ConfigTestConstant.ARTIFACT_MAXSIZE);
+
+        String maxSizeWithFallback = conf.getConfigurationValue(fallbackInput);
+        Assert.assertEquals("1024",maxSizeWithFallback);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+      TestUtil.cleanUp();
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLITest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLITest.java
new file mode 100644
index 0000000..ff04873
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLITest.java
@@ -0,0 +1,107 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.Constants;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.management.JMX;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import java.io.IOException;
+import java.lang.management.ManagementFactory;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.openecomp.config.util.ConfigTestConstant.*;
+
+/**
+ * Created by sheetalm on 10/18/2016.
+ * Scenario 17
+ * Verify Configuration Management System - Command Line Interface for query, update and list operations
+ */
+public class CLITest {
+
+        public final static String NAMESPACE = "CLI";
+        public final static String TENANT = "OPENECOMP";
+        private String updatedValue = "";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+    }
+
+    @Test
+        public void testCLIApi() throws Exception{
+        //Verify without fallback
+        Map<String, Object> input = new HashMap<>();
+        input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+        input.put("tenant", TENANT);
+        input.put("namespace", NAMESPACE);
+        input.put("key", ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH);
+
+        MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();
+        ObjectName mbeanName = new ObjectName(Constants.MBEAN_NAME);
+        ConfigurationManager conf = JMX.newMBeanProxy(mbsc, mbeanName, org.openecomp.config.api.ConfigurationManager.class, true);
+        String maxLength = conf.getConfigurationValue(input);
+        Assert.assertEquals("14",maxLength);
+
+        conf.addConfigurationChangeListener(TENANT,NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, new CLIListener());
+
+
+        //Update maxlength
+        input.put("ImplClass", "org.openecomp.config.type.ConfigurationUpdate");
+        input.put("value", "24");
+        conf.updateConfigurationValue(input);
+
+        Thread.sleep(35000);
+
+        Assert.assertEquals("24",updatedValue);
+
+        //Reset value and fetch updated value again
+        input.put("value", "");
+        input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+        String updatedMaxLength = conf.getConfigurationValue(input);
+        Assert.assertEquals("24",updatedMaxLength);
+
+        Map<String, String> outputMap = conf.listConfiguration(input);
+        for(Map.Entry<String, String> entry : outputMap.entrySet()){
+            System.out.println(entry.getKey()+" : "+entry.getValue());
+            validateCLIListConfig(outputMap);
+        }
+    }
+
+    private class CLIListener implements ConfigurationChangeListener {
+        @Override
+        public void notify(String key, Object oldValue, Object newValue) {
+            System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+            updatedValue = newValue.toString();
+        }
+    }
+
+    private void validateCLIListConfig(Map<String, String> outputMap ) {
+
+        Assert.assertEquals("@"+System.getProperty("user.home")+"/TestResources/GeneratorsList.json" , outputMap.get(ARTIFACT_JSON_SCHEMA));
+        Assert.assertEquals("appc,catalog", outputMap.get(ARTIFACT_CONSUMER));
+        Assert.assertEquals("6", outputMap.get(ARTIFACT_NAME_MINLENGTH));
+        Assert.assertEquals("true", outputMap.get(ARTIFACT_ENCODED));
+        Assert.assertEquals("24", outputMap.get(ARTIFACT_NAME_MAXLENGTH));
+        Assert.assertEquals("pdf,zip,xml,pdf,tgz,xls", outputMap.get(ARTIFACT_EXT));
+        Assert.assertEquals("Base64,MD5", outputMap.get(ARTIFACT_ENC));
+        Assert.assertEquals("@"+System.getenv("Path")+"/myschema.json", outputMap.get(ARTIFACT_XML_SCHEMA));
+        Assert.assertEquals("a-zA-Z_0-9", outputMap.get(ARTIFACT_NAME_UPPER));
+        Assert.assertEquals("/opt/spool,"+System.getProperty("user.home")+"/asdc", outputMap.get(ARTIFACT_LOC));
+        Assert.assertEquals("deleted,Deleted", outputMap.get(ARTIFACT_STATUS));
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ConfigSourceLocationTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ConfigSourceLocationTest.java
new file mode 100644
index 0000000..7eb591c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ConfigSourceLocationTest.java
@@ -0,0 +1,53 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Assert;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Properties;
+import java.io.OutputStream;
+import java.io.FileOutputStream;
+
+/**
+ * Created by sheetalm on 10/14/2016.
+ * Scenario 11
+ * Validate conventional and configurational source location
+ *
+ * Pre-requisite - set -Dconfig.location=${"user.home"}/TestResources/ while running test
+ */
+public class ConfigSourceLocationTest {
+    public final static String NAMESPACE = "SourceLocation";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+
+        Properties props = new Properties();
+        props.setProperty("maxCachedBufferSize", "1024");
+        props.setProperty("artifact.maxsize", "1024");
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        OutputStream out = new FileOutputStream( f );
+        props.store(out, "Config Property at Conventional Resource");
+        out.close();
+    }
+
+    @Test
+    public void testMergeStrategyInConfig() throws IOException, InterruptedException {
+        Configuration config = ConfigurationManager.lookup();
+        Assert.assertEquals("a-zA-Z_0-9", config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_UPPER));
+        Assert.assertEquals("1024", config.getAsString(ConfigTestConstant.ARTIFACT_MAXSIZE));
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/DynamicConfigurationTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/DynamicConfigurationTest.java
new file mode 100644
index 0000000..1ca41f8
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/DynamicConfigurationTest.java
@@ -0,0 +1,66 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.api.DynamicConfiguration;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Properties;
+
+/**
+ * Created by sheetalm on 10/17/2016.
+ * Pre-requisite - set -Dconfig.location=${"user.home"}/TestResources/ while running test
+ * Scenario 20
+ * Update the central configuration and fetch the Dynamic Configuration
+ */
+public class DynamicConfigurationTest {
+
+    public final static String NAMESPACE = "DynamicConfiguration";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+    }
+
+    @Test
+    public void testDynamicConfig() throws IOException, InterruptedException {
+        Configuration config = ConfigurationManager.lookup();
+        Properties props = new Properties();
+        props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "20");
+        props.setProperty("_config.namespace",NAMESPACE);
+        props.setProperty("_config.mergeStrategy","override");
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        OutputStream out = new FileOutputStream( f );
+        props.store(out, "Override Config Property at Conventional Resource");
+        out.close();
+
+        //Verify configuration with Configuration without wait. This should fetch cached value
+        Assert.assertEquals("14" , config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+        Thread.sleep(10000);
+
+        DynamicConfiguration dynaConfig = config.getDynamicConfiguration(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH,String.class,"14");
+        //Verify configuration with DynamicConfiguration This should fetch values from DB
+        Assert.assertEquals("20" , dynaConfig.get());
+
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        if(f.exists()) {
+            boolean isDeleted = f.delete();
+        }
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackConfigTest.java
new file mode 100644
index 0000000..09fca87
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackConfigTest.java
@@ -0,0 +1,39 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/14/2016.
+ *
+ * Validate configuration with properties,xml,json,yaml file format with mode
+ */
+public class FallbackConfigTest {
+
+    public static final String NAMESPACE = "fallback";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        writeFile(data);
+    }
+
+    @Test
+    public void testConfigurationWithFallbackFileFormat(){
+        validateConfiguraton(NAMESPACE);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        String data = "{name:\"SCM\"}";
+        writeFile(data);
+        //ConfigurationUtils.executeDDLSQL("truncate dox.configuration");
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackToGlobalNSTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackToGlobalNSTest.java
new file mode 100644
index 0000000..1efc462
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackToGlobalNSTest.java
@@ -0,0 +1,42 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Assert;
+
+import java.io.IOException;
+
+/**
+ * Scenario 12
+ * Verify configuration value fallback to the global namespace if the configuraton property doesnot exist in the namespace configuration
+ * Created by sheetalm on 10/14/2016.
+ */
+public class FallbackToGlobalNSTest {
+
+    public final static String NAMESPACE = "FallbackToGlobalNS";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+    }
+
+    @Test
+    public void testFallbackToGlobalNS() throws IOException, InterruptedException {
+        Configuration config = ConfigurationManager.lookup();
+        Assert.assertEquals("14",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+        Assert.assertEquals("1024",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_MAXSIZE));
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+    }
+
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/GlobalAndNSConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/GlobalAndNSConfigTest.java
new file mode 100644
index 0000000..87324aa
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/GlobalAndNSConfigTest.java
@@ -0,0 +1,45 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by sheetalm on 10/13/2016.
+ * Scenario 10 Verify configuration present in both global and defined namespace
+ */
+public class GlobalAndNSConfigTest {
+
+    public final static String NAMESPACE = "GlobalAndNSConfig";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+    }
+
+    @Test
+    public void testNamespaceInConfig() throws IOException, InterruptedException {
+        Configuration config = ConfigurationManager.lookup();
+        Assert.assertEquals("a-zA-Z",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_UPPER ));
+        Assert.assertEquals("a-zA-Z_0-9",config.getAsString(ConfigTestConstant.ARTIFACT_NAME_UPPER ));
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+    }
+
+
+
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JAVAPropertiesConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JAVAPropertiesConfigTest.java
new file mode 100644
index 0000000..23c5fa3
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JAVAPropertiesConfigTest.java
@@ -0,0 +1,40 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/13/2016.
+ *
+ * Scenario 1
+ * Validate configuration with Java Properties file format with mode
+ */
+public class JAVAPropertiesConfigTest {
+
+    public static final String NAMESPACE = "javaProperties";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        writeFile(data);
+    }
+
+    @Test
+    public void testConfigurationWithPropertiesFileFormat(){
+        validateConfiguraton(NAMESPACE);
+    }
+
+
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JSONConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JSONConfigTest.java
new file mode 100644
index 0000000..5f2d24e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JSONConfigTest.java
@@ -0,0 +1,41 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/14/2016.
+ *
+ * Scenario 3
+ * Validate configuration with JSON file format with mode
+ */
+public class JSONConfigTest {
+
+    public static final String NAMESPACE = "JSONConfig";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        writeFile(data);
+    }
+
+    @Test
+    public void testConfigurationWithJSONFileFormat(){
+        validateConfiguraton(NAMESPACE);
+    }
+
+
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/LoadOrderMergeAndOverrideTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/LoadOrderMergeAndOverrideTest.java
new file mode 100644
index 0000000..7ce508a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/LoadOrderMergeAndOverrideTest.java
@@ -0,0 +1,47 @@
+package org.openecomp.config.test;
+
+import static org.openecomp.config.util.ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH;
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.TestUtil;
+
+import java.io.IOException;
+
+/**
+ * Scenario
+ * Check loadorder for merge and overide. Higher loadorder takes precedence for override
+ * LoWer loadorder takes precedence for merge.
+ */
+public class LoadOrderMergeAndOverrideTest {
+
+    public static final String NAMESPACE = "LoadOrderConfiguration";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        writeFile(data);
+    }
+
+    @Test
+    public void testConfigurationWithPropertiesFileFormat(){
+        Configuration config = ConfigurationManager.lookup();
+
+        Assert.assertEquals(config.getAsString(NAMESPACE, ARTIFACT_NAME_MAXLENGTH ), "14");
+        Assert.assertEquals("5", config.getAsString(NAMESPACE, "artifact.length"));
+        Assert.assertEquals("56", config.getAsString(NAMESPACE, "artifact.size"));
+    }
+
+
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ModeAsConfigPropTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ModeAsConfigPropTest.java
new file mode 100644
index 0000000..470694e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ModeAsConfigPropTest.java
@@ -0,0 +1,88 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Scenario 8
+ * Validate configuration with mode specified as a configuration property
+ */
+
+public class ModeAsConfigPropTest {
+
+	String newValue = null;
+	
+	public final static String NAMESPACE = "ModeAsConfigProp";
+	
+	@Before
+	public void setUp() throws IOException {
+		String data = "{name:\"SCM\"}";
+		TestUtil.writeFile(data);
+	}
+
+	@Test
+	public void testMergeStrategyInConfig() throws IOException, InterruptedException {
+		Configuration config = ConfigurationManager.lookup();
+
+		Assert.assertEquals("14",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+		Assert.assertEquals("1048",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_MAXSIZE));
+
+		List<String> expectedExtList = new ArrayList<String>();
+		expectedExtList.add("pdf");
+		expectedExtList.add("zip");
+		expectedExtList.add("xml");
+		expectedExtList.add("pdf");
+		expectedExtList.add("tgz");
+		expectedExtList.add("xls");
+		List<String> extList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_EXT);
+		Assert.assertEquals(expectedExtList, extList);
+
+		List<String> expectedEncList = new ArrayList<String>();
+		expectedEncList.add("Base64");
+		expectedEncList.add("MD5");
+		List<String> encList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_ENC);
+		Assert.assertEquals(expectedEncList, encList);
+
+		String newValue = config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_JSON_SCHEMA);
+		Assert.assertEquals("{name:\"SCM\"}",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_JSON_SCHEMA));
+
+		Assert.assertEquals("a-zA-Z_0-9",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_UPPER ));
+
+		Assert.assertEquals("Deleted",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_STATUS) );
+
+		List<String> expectedLocList = new ArrayList<String>();
+		expectedLocList.add("/opt/spool");
+		expectedLocList.add(System.getProperty("user.home")+"/asdc");
+		List<String> locList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_LOC);
+		Assert.assertEquals(expectedLocList, locList);
+
+		Assert.assertEquals("@"+System.getenv("Path")+"/myschema.json",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_XML_SCHEMA));
+
+		List<String> artifactConsumer = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_CONSUMER );
+		Assert.assertEquals(config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_CONSUMER_APPC ), artifactConsumer);
+
+		Assert.assertEquals(config.getAsBooleanValue(NAMESPACE, ConfigTestConstant.ARTIFACT_MANDATORY_NAME ), true);
+
+		Assert.assertEquals(config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MINLENGTH ), "6");
+
+		Assert.assertEquals(config.getAsBooleanValue(NAMESPACE, ConfigTestConstant.ARTIFACT_ENCODED ), true);
+	}
+
+	@After
+	public void tearDown() throws Exception {
+		TestUtil.cleanUp();
+	}
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/MultiTenancyConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/MultiTenancyConfigTest.java
new file mode 100644
index 0000000..66feea3
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/MultiTenancyConfigTest.java
@@ -0,0 +1,55 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.openecomp.config.util.ConfigTestConstant.*;
+import static org.openecomp.config.util.ConfigTestConstant.ARTIFACT_ENCODED;
+import static org.openecomp.config.util.ConfigTestConstant.ARTIFACT_MANDATORY_NAME;
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/14/2016.
+ *
+ * Scenario 17
+ * Verify Configuration management System - Support for Multi-Tenancy
+ */
+public class MultiTenancyConfigTest {
+
+    public static final String NAMESPACE = "tenancy";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        writeFile(data);
+    }
+
+    @Test
+    public void testConfigurationWithMultiTenancyFileFormat(){
+        Configuration config = ConfigurationManager.lookup();
+
+        Assert.assertEquals(config.getAsString("OPENECOMP",NAMESPACE, ARTIFACT_NAME_MAXLENGTH ), "20");
+
+        Assert.assertEquals(config.getAsString("Telefonica",NAMESPACE, ARTIFACT_STATUS ), "Deleted");
+
+        Assert.assertEquals(config.getAsString("TID",NAMESPACE, ARTIFACT_NAME_MAXLENGTH ), "14");
+
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NodeSpecificCLITest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NodeSpecificCLITest.java
new file mode 100644
index 0000000..795780b
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NodeSpecificCLITest.java
@@ -0,0 +1,117 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.Constants;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Test;
+
+import javax.management.JMX;
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.lang.management.ManagementFactory;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * Created by sheetalm on 10/19/2016.
+ * Scenario 19
+ * Pre-requisite - set -Dnode.config.location=${"user.home"}/TestResources/ while running test
+ * Verify node specific override using CLI
+ */
+public class NodeSpecificCLITest {
+
+    public final static String NAMESPACE = "NodeCLI";
+    private String updatedValue = "";
+
+    @Test
+    public void testCLIApi() throws Exception{
+        //Verify without fallback
+        Map<String, Object> input = new HashMap<>();
+        input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+        input.put("namespace", NAMESPACE);
+        input.put("key", ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH);
+
+        MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();
+        ObjectName mbeanName = new ObjectName(Constants.MBEAN_NAME);
+        ConfigurationManager conf = JMX.newMBeanProxy(mbsc, mbeanName, org.openecomp.config.api.ConfigurationManager.class, true);
+        String maxLength = conf.getConfigurationValue(input);
+
+        //Verify Property from Namespace configurations
+        Assert.assertEquals("30",maxLength);
+
+        //Add node specific configurations
+        Properties props = new Properties();
+        props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "50");
+        props.setProperty("_config.namespace",NAMESPACE);
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        OutputStream out = new FileOutputStream( f );
+        props.store(out, "Node Config Property");
+        out.close();
+
+        Thread.sleep(35000);
+
+        //Verify property from node specific configuration
+        input.put("nodeSpecific", true);
+        String nodeVal = conf.getConfigurationValue(input);
+        Assert.assertEquals("50", nodeVal);
+
+        //Add Change Listener
+        conf.addConfigurationChangeListener(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, new CLINodeListener());
+
+        //Update maxlength
+        input.put("ImplClass", "org.openecomp.config.type.ConfigurationUpdate");
+        input.put("nodeOverride", true);
+        input.put("nodeSpecific", false);
+        input.put("value", "60");
+        conf.updateConfigurationValue(input);
+
+        Thread.sleep(35000);
+
+        Assert.assertEquals("60",updatedValue);
+
+        //Fetch the updated nodespecific value
+        input.put("nodeOverride", false);
+        input.put("nodeSpecific", true);
+        input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+        String updatedMaxLength = conf.getConfigurationValue(input);
+        Assert.assertEquals("60",updatedMaxLength);
+
+        //Verify maxlength on other nodes by deleting node specific configuration
+        if(f.exists()) {
+            boolean isDeleted = f.delete();
+        }
+
+        Thread.sleep(35000);
+
+        input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
+        input.put("nodeOverride", false);
+        input.put("nodeSpecific", false);
+        System.out.println("val on other node is::"+conf.getConfigurationValue(input));
+        Assert.assertEquals("30",conf.getConfigurationValue(input));
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        TestUtil.cleanUp();
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        if(f.exists()) {
+            boolean isDeleted = f.delete();
+        }
+    }
+
+    private class CLINodeListener implements ConfigurationChangeListener {
+        @Override
+        public void notify(String key, Object oldValue, Object newValue) {
+            System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+            updatedValue = newValue.toString();
+        }
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationForNodeConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationForNodeConfigTest.java
new file mode 100644
index 0000000..3d1579e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationForNodeConfigTest.java
@@ -0,0 +1,85 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Properties;
+
+/**
+ * Scenario 15
+ * Update and Verify Change Notifications for any change in the registered key for node specific configuration
+ * Pre-requisite - set -Dnode.config.location=${"user.home"}/TestResources/ while running test
+ * Created by sheetalm on 10/17/2016.
+ */
+public class NotificationForNodeConfigTest {
+    public final static String NAMESPACE = "NotificationForNodeConfig";
+
+    public String updatedValue = null;
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+    }
+
+    @Test
+    public void testNotificationForNode() throws IOException, InterruptedException {
+        Configuration config = ConfigurationManager.lookup();
+
+        System.out.println(config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+        Properties props = new Properties();
+        props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "30");
+        props.setProperty("_config.namespace",NAMESPACE);
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        OutputStream out = new FileOutputStream( f );
+        props.store(out, "Node Config Property");
+        out.close();
+
+        Thread.sleep(35000);
+
+        //Verify property from node specific configuration
+        Assert.assertEquals("30", config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+        config.addConfigurationChangeListener(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, new NodePropValListener());
+
+        props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "80");
+        out = new FileOutputStream( f );
+        props.store(out, "Updated Node Config Property");
+        out.close();
+
+        Thread.sleep(35000);
+
+        //Verify change listenere is invoked when node specific configuration is changed.
+        Assert.assertEquals("80", updatedValue);
+
+    }
+
+    private class NodePropValListener implements ConfigurationChangeListener {
+        @Override
+        public void notify(String key, Object oldValue, Object newValue) {
+            System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+            updatedValue = newValue.toString();
+        }
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        if(f.exists()) {
+            boolean isDeleted = f.delete();
+        }
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationOnPropValTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationOnPropValTest.java
new file mode 100644
index 0000000..8a46150
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationOnPropValTest.java
@@ -0,0 +1,76 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Assert;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Properties;
+
+/**
+ * Pre-requisite - set -Dconfig.location=${"user.home"}/TestResources/ while running test
+ * Scenario 14 - Verify Change Notifications for any change in the registered key
+ * Created by sheetalm on 10/14/2016.
+ */
+public class NotificationOnPropValTest {
+
+    public final static String NAMESPACE = "NotificationOnPropVal";
+
+    public String updatedValue = null;
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+    }
+
+    @Test
+    public void testNotification() throws IOException, InterruptedException {
+        Configuration config = ConfigurationManager.lookup();
+
+        System.out.println(config.getAsString(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+        config.addConfigurationChangeListener(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, new PropValListener());
+
+        Properties props = new Properties();
+        props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "20");
+        props.setProperty("_config.namespace",NAMESPACE);
+        props.setProperty("_config.mergeStrategy","override");
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        OutputStream out = new FileOutputStream( f );
+        props.store(out, "Override Config Property at Conventional Resource");
+        out.close();
+
+        Thread.sleep(35000);
+
+        System.out.println(config.getAsString(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+        Assert.assertEquals("20" , updatedValue);
+    }
+
+     private class PropValListener implements ConfigurationChangeListener {
+        @Override
+        public void notify(String key, Object oldValue, Object newValue) {
+            System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+            updatedValue = newValue.toString();
+        }
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        if(f.exists()) {
+            boolean isDeleted = f.delete();
+        }
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ResourceChangeNotificationTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ResourceChangeNotificationTest.java
new file mode 100644
index 0000000..e3e4e24
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ResourceChangeNotificationTest.java
@@ -0,0 +1,91 @@
+package org.openecomp.config.test;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.util.ConfigTestConstant;
+
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+
+/**
+ * Scenario 7
+ * Test to Validate notification on changes to the underlying source
+ * Resource here is GeneratorsList.json ehich is created in test itself
+ */
+
+public class ResourceChangeNotificationTest  {
+
+	String newValue = null;
+
+	public final static String NAMESPACE = "Notification";
+	
+	@Before
+	public void setUp() throws IOException {
+		String data = "{name:\"SCM\"}";
+		TestUtil.writeFile(data);
+	}
+
+	@Test
+	public void testNotification() throws IOException, InterruptedException {		
+		Configuration config = ConfigurationManager.lookup();		
+		config.addConfigurationChangeListener(NAMESPACE,ConfigTestConstant.ARTIFACT_JSON_SCHEMA, new MyListener());
+		updateJsonInFile();
+		Thread.sleep(35000);
+		String newValue = config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_JSON_SCHEMA);
+
+		Assert.assertEquals("{name:\"updated SCM\"}",newValue);
+		
+		Assert.assertEquals( "14",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH ));
+		
+		Assert.assertEquals( "a-zA-Z", config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_UPPER ));
+		
+		String artifactConsumer = config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_CONSUMER );
+		Assert.assertEquals(artifactConsumer,config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_CONSUMER_APPC ));
+
+		List<String> expectedExtList = new ArrayList<String>();
+		expectedExtList.add("pdf"); expectedExtList.add("zip"); expectedExtList.add("xml");
+		List<String> extList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_EXT);
+		Assert.assertEquals(expectedExtList, extList);
+		
+		List<String> expectedEncList = new ArrayList<String>();
+		expectedEncList.add("Base64"); expectedEncList.add("MD5"); 
+		List<String> encList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_ENC);
+		Assert.assertEquals(expectedEncList, encList);		
+		
+		List<String> expectedLocList = new ArrayList<String>();
+		expectedLocList.add("/opt/spool"); expectedLocList.add(System.getProperty("user.home")+"/asdc");
+		List<String> locList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_LOC);
+		Assert.assertEquals(expectedLocList, locList);
+
+		Assert.assertEquals("@"+System.getenv("Path")+"/myschema.json",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_XML_SCHEMA));
+	}
+	
+	class MyListener implements ConfigurationChangeListener{
+		@Override
+		public void notify(String key, Object oldValue, Object newValue) {			
+			System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);			
+		}		
+	}
+	
+	private void updateJsonInFile() throws IOException{	
+		String data = "{name:\"updated SCM\"}";
+		TestUtil.writeFile(data);
+	}
+	
+	@After
+	public void tearDown() throws Exception {
+		TestUtil.cleanUp();
+	}
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/UnregisterNotificationTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/UnregisterNotificationTest.java
new file mode 100644
index 0000000..a53f3c2
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/UnregisterNotificationTest.java
@@ -0,0 +1,94 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationChangeListener;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Properties;
+
+/**
+ * Pre-requisite - set -Dconfig.location=${"user.home"}/TestResources/ while running test
+ * Created by sheetalm on 10/19/2016.
+ * Scenario 24
+ * Unregister notification and verify listener
+ */
+public class UnregisterNotificationTest {
+    public final static String NAMESPACE = "UnregisterNotification";
+
+    public String updatedValue = null;
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+    }
+
+    @Test
+    public void testNotification() throws IOException, InterruptedException {
+        Configuration config = ConfigurationManager.lookup();
+
+        System.out.println(config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+        PropertyListener propListener = new PropertyListener();
+        config.addConfigurationChangeListener(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH,propListener);
+
+        updateValue("20");
+
+        Thread.sleep(35000);
+
+        System.out.println(config.getAsString(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+        //Verify listener is invoked and updated value to 20
+        Assert.assertEquals("20" , updatedValue);
+
+        config.removeConfigurationChangeListener(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH,propListener);
+
+        updateValue("22");
+
+        Thread.sleep(35000);
+
+        //When listener is unregistered updating value does not invoke any listener and  value from listener should remain unchanged
+        Assert.assertEquals("20" , updatedValue);
+
+        //Verify value is updated even if listener is unregistered
+        Assert.assertEquals("22" , config.getAsString(NAMESPACE,ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+    }
+
+    private void updateValue(String newValue) throws IOException {
+        Properties props = new Properties();
+        props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, newValue);
+        props.setProperty("_config.namespace",NAMESPACE);
+        props.setProperty("_config.mergeStrategy","override");
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        OutputStream out = new FileOutputStream( f );
+        props.store(out, "Override Config Property at Conventional Resource");
+        out.close();
+    }
+
+    private class PropertyListener implements ConfigurationChangeListener {
+        @Override
+        public void notify(String key, Object oldValue, Object newValue) {
+            System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
+            updatedValue = newValue.toString();
+        }
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        if(f.exists()) {
+            boolean isDeleted = f.delete();
+        }
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateDefaultModeTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateDefaultModeTest.java
new file mode 100644
index 0000000..7ae2e0a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateDefaultModeTest.java
@@ -0,0 +1,60 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.openecomp.config.util.ConfigTestConstant.*;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/17/2016.
+ *
+ * Scenario 22
+ * Validate the default mode if the mode is not set
+ */
+public class ValidateDefaultModeTest {
+
+    public static final String NAMESPACE = "defaultmode";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        writeFile(data);
+    }
+
+    @Test
+    public void testConfigurationWithValidateDefaultMode(){
+        Configuration config = ConfigurationManager.lookup();
+
+        Assert.assertEquals(config.getAsString(NAMESPACE, ARTIFACT_NAME_MAXLENGTH ), "14");
+
+        Assert.assertEquals(config.getAsString(NAMESPACE, ARTIFACT_MAXSIZE ), "1048");
+
+        List<String> expectedExtList = new ArrayList<String>();
+        expectedExtList.add("pdf");
+        expectedExtList.add("tgz");
+        expectedExtList.add("xls");
+        List<String> extList = config.getAsStringValues(NAMESPACE, ConfigTestConstant.ARTIFACT_EXT);
+        Assert.assertEquals(expectedExtList, extList);
+
+        Assert.assertEquals(config.getAsString(NAMESPACE, ARTIFACT_NAME_MINLENGTH ), "6");
+
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        String data = "{name:\"SCM\"}";
+        writeFile(data);
+       // ConfigurationUtils.executeDDLSQL("truncate dox.configuration");
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateNodeConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateNodeConfigTest.java
new file mode 100644
index 0000000..03a6786
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateNodeConfigTest.java
@@ -0,0 +1,80 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.openecomp.config.util.ConfigTestConstant;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Assert;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Properties;
+
+/**
+ * Scenario 13
+ * Validate node specific configuration
+ * Pre-requisite - set -Dnode.config.location=${"user.home"}/TestResources/ while running test
+ *
+ * Created by sheetalm on 10/14/2016.
+ */
+public class ValidateNodeConfigTest {
+
+    public final static String NAMESPACE = "ValidateNodeConfig";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+    }
+
+    @Test
+    public void testValidateNodeConfig() throws IOException, InterruptedException {
+        Configuration config = ConfigurationManager.lookup();
+
+        Properties props = new Properties();
+        props.setProperty(ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, "56");
+        props.setProperty("_config.namespace","ValidateNodeConfig");
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        OutputStream out = new FileOutputStream( f );
+        props.store(out, "Node Config Property");
+        out.close();
+
+        System.out.println(System.getProperty("node.config.location"));
+
+        Thread.sleep(35000);
+
+        //Verify property from node specific configuration
+        Assert.assertEquals("56", config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH));
+
+        //Verify if property is not in node specific then fetch from namespace
+        //Assert.assertEquals("a-zA-Z",config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_UPPER));
+
+        //Verify if property is not in node specific and namespace then fetch from global
+        Assert.assertEquals("1024", config.getAsString(NAMESPACE, "maxCachedBufferSize"));
+
+        //Deleting node configurations to test property is fetched from namespace configuration when node configuration is not present
+        if(f.exists()) {
+            boolean isDeleted = f.delete();
+            System.out.println(isDeleted);
+        }
+
+        Thread.sleep(35000);
+
+        Assert.assertEquals(config.getAsString(NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH), "14");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+        File f = new File(TestUtil.jsonSchemaLoc+"config.properties");
+        if(f.exists()) {
+            boolean isDeleted = f.delete();
+        }
+    }
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/XMLConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/XMLConfigTest.java
new file mode 100644
index 0000000..8af5ebf
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/XMLConfigTest.java
@@ -0,0 +1,41 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/14/2016.
+ *
+ * Scenario 2
+ * Validate configuration with XML file format with mode
+ */
+public class XMLConfigTest {
+
+    public static final String NAMESPACE = "XMLConfig";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        writeFile(data);
+    }
+
+    @Test
+    public void testConfigurationWithXMLFileFormat(){
+        validateConfiguraton(NAMESPACE);
+    }
+
+
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/YAMLConfigTest.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/YAMLConfigTest.java
new file mode 100644
index 0000000..bc172b0
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/YAMLConfigTest.java
@@ -0,0 +1,41 @@
+package org.openecomp.config.test;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.util.TestUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.openecomp.config.util.TestUtil.validateConfiguraton;
+import static org.openecomp.config.util.TestUtil.writeFile;
+
+/**
+ * Created by ARR on 10/14/2016.
+ *
+ * Scenario 4
+ * Validate configuration with YAML file format with mode
+ */
+public class YAMLConfigTest {
+
+    public static final String NAMESPACE = "YAMLConfig";
+
+    @Before
+    public void setUp() throws IOException {
+        String data = "{name:\"SCM\"}";
+        writeFile(data);
+    }
+
+    @Test
+    public void testConfigurationWithYAMLFileFormat(){
+        validateConfiguraton(NAMESPACE);
+    }
+
+
+
+    @After
+    public void tearDown() throws Exception {
+        TestUtil.cleanUp();
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/ConfigTestConstant.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/ConfigTestConstant.java
new file mode 100644
index 0000000..d639cca
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/ConfigTestConstant.java
@@ -0,0 +1,23 @@
+package org.openecomp.config.util;
+
+public class ConfigTestConstant {
+	
+	public static final String ARTIFACT_NAME_MAXLENGTH = "artifact.name.maxlength";
+	public static final String ARTIFACT_MAXSIZE = "artifact.maxsize";
+	public static final String ARTIFACT_EXT = "artifact.extension";
+	public static final String ARTIFACT_ENC = "artifact.supportedEncryption";
+	public static final String ARTIFACT_NAME_UPPER = "artifact.name.allowedChar";
+	public static final String ARTIFACT_NAME_LOWER = "artifact.name.allowedchar";
+	public static final String ARTIFACT_STATUS = "artifact.status";
+	public static final String ARTIFACT_LOC = "artifact.persistLocation";
+	public static final String ARTIFACT_JSON_SCHEMA = "artifact.jsonSchema";
+	public static final String ARTIFACT_XML_SCHEMA = "artifact.xmlSchema";
+	public static final String ARTIFACT_CONSUMER_APPC = "artifact.consumerAPPC";
+	public static final String ARTIFACT_CONSUMER = "artifact.consumer";
+	public static final String ARTIFACT_MANDATORY_NAME = "artifact.mandatory.name";
+	public static final String ARTIFACT_NAME_MINLENGTH = "artifact.name.minlength";
+	public static final String ARTIFACT_ENCODED = "artifact.encoded";
+
+	public static final String ONBOARDING_NAMESPACE = "onboarding";
+
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/TestUtil.java b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/TestUtil.java
new file mode 100644
index 0000000..a04f14c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/TestUtil.java
@@ -0,0 +1,95 @@
+package org.openecomp.config.util;
+
+import org.openecomp.config.ConfigurationUtils;
+import org.openecomp.config.api.Configuration;
+import org.openecomp.config.api.ConfigurationManager;
+import org.junit.Assert;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.openecomp.config.util.ConfigTestConstant.*;
+import static org.openecomp.config.util.ConfigTestConstant.ARTIFACT_ENCODED;
+import static org.openecomp.config.util.ConfigTestConstant.ARTIFACT_MANDATORY_NAME;
+
+/**
+ * Created by sheetalm on 10/13/2016.
+ */
+public class TestUtil {
+
+    public final static String jsonSchemaLoc = System.getProperty("user.home")+"/TestResources/";
+    public static FileWriter fileWriter ;
+
+    public static void writeFile(String data) throws IOException {
+        File dir = new File(jsonSchemaLoc);
+        File file = null;
+        dir.mkdirs();
+        file = new File(jsonSchemaLoc+"/GeneratorsList.json");
+        file.createNewFile();
+        fileWriter = new FileWriter(file);
+        fileWriter.write(data);
+        fileWriter.close();
+    }
+
+    public static void cleanUp() throws Exception {
+        String data = "{name:\"SCM\"}";
+        TestUtil.writeFile(data);
+        //ConfigurationUtils.executeDdlSql("truncate dox.configuration");
+        try{
+            ConfigurationUtils.executeDdlSql("truncate dox.configuration_change");
+        }
+        catch(Exception e){
+            e.printStackTrace();
+        }
+
+    }
+
+    public static void validateConfiguraton(String nameSpace) {
+        Configuration config = ConfigurationManager.lookup();
+
+        Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_NAME_MAXLENGTH ), "14");
+
+        // First value from list is picked from Merge properties
+        Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_MAXSIZE ), "1048576");
+
+        List<String> expectedExtList = new ArrayList<String>();
+        expectedExtList.add("pdf");
+        expectedExtList.add("zip");
+        expectedExtList.add("xml");
+        expectedExtList.add("pdf");
+        expectedExtList.add("tgz");
+        expectedExtList.add("xls");
+        List<String> extList = config.getAsStringValues(nameSpace, ConfigTestConstant.ARTIFACT_EXT);
+        Assert.assertEquals(expectedExtList, extList);
+
+        List<String> expectedEncList = new ArrayList<String>();
+        expectedEncList.add("Base64");
+        expectedEncList.add("MD5");
+        List<String> encList = config.getAsStringValues(nameSpace, ConfigTestConstant.ARTIFACT_ENC);
+        Assert.assertEquals(expectedEncList, encList);
+
+        Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_NAME_UPPER ), "a-zA-Z_0-9");
+        Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_NAME_LOWER ), "a-zA-Z");
+        Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_STATUS ), "deleted");
+
+        List<String> expectedLocList = new ArrayList<String>();
+        expectedLocList.add("/opt/spool");
+        expectedLocList.add(System.getProperty("user.home")+"/asdc");
+        List<String> locList = config.getAsStringValues(nameSpace, ConfigTestConstant.ARTIFACT_LOC);
+        Assert.assertEquals(expectedLocList, locList);
+
+        Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_JSON_SCHEMA ), "@GeneratorList.json");
+
+        Assert.assertEquals("@"+System.getenv("Path")+"/myschema.json",config.getAsString(nameSpace, ConfigTestConstant.ARTIFACT_XML_SCHEMA));
+
+        List<String> artifactConsumer = config.getAsStringValues(nameSpace, ConfigTestConstant.ARTIFACT_CONSUMER );
+        Assert.assertEquals(config.getAsStringValues(nameSpace, ConfigTestConstant.ARTIFACT_CONSUMER_APPC ), artifactConsumer);
+
+        Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_NAME_MINLENGTH ), "6");
+        Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_MANDATORY_NAME ), "true");
+        Assert.assertEquals(config.getAsString(nameSpace, ARTIFACT_ENCODED ), "true");
+    }
+}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config-NS.properties
new file mode 100644
index 0000000..a50cabc
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config-NS.properties
@@ -0,0 +1,12 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@${sys:user.home}/TestResources/GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=OPENECOMP:CLI
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.json
new file mode 100644
index 0000000..5d98a32
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.json
@@ -0,0 +1,8 @@
+{
+    "artifact": {
+      "name": { "minlength": "6" },
+      "extension": "pdf,tgz,xls"
+    },
+  "_config":{"namespace": "OPENECOMP:CLI", "mergeStrategy": "union"}
+
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.properties
new file mode 100644
index 0000000..4daad19
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.xml
new file mode 100644
index 0000000..2f09871
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <extension>gz,tgz</extension>
+        <supportedencryption>Base64</supportedencryption>
+        <status>deleted</status>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+        <_config>
+            <namespace>OPENECOMP:CLI</namespace>
+            <mergeStrategy>merge</mergeStrategy>
+        </_config>
+    </artifact>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.yaml
new file mode 100644
index 0000000..4333f3e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+  allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+_config:
+  namespace: "OPENECOMP:CLI"
+  mergeStrategy: "override"
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config-NS.properties
new file mode 100644
index 0000000..32da54f
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config-NS.properties
@@ -0,0 +1,12 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@${sys:user.home}/TestResources/GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=OPENECOMP:CLIFallback
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.json
new file mode 100644
index 0000000..a1db251
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.json
@@ -0,0 +1,8 @@
+{
+    "artifact": {
+      "name": { "minlength": "6" },
+      "extension": "pdf,tgz,xls"
+    },
+  "_config":{"namespace": "OPENECOMP:CLIFallback", "mergeStrategy": "union"}
+
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.properties
new file mode 100644
index 0000000..4daad19
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.xml
new file mode 100644
index 0000000..4c46762
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <extension>gz,tgz</extension>
+        <supportedencryption>Base64</supportedencryption>
+        <status>deleted</status>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+        <_config>
+            <namespace>OPENECOMP:CLIFallback</namespace>
+            <mergeStrategy>merge</mergeStrategy>
+        </_config>
+    </artifact>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.yaml
new file mode 100644
index 0000000..b0b195f
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+  allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+_config:
+  namespace: "OPENECOMP:CLIFallback"
+  mergeStrategy: "override"
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.json
new file mode 100644
index 0000000..c909fe8
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.json
@@ -0,0 +1,8 @@
+{
+
+    "artifact": {
+      "name": { "minlength": "6" },
+      "extension": "pdf,tgz,xls"
+    },
+    "_config": {"namespace": "DynamicConfiguration", "mergeStrategy": "union"}
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.properties
new file mode 100644
index 0000000..c382548
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=DynamicConfiguration
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.xml
new file mode 100644
index 0000000..3f046e2
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <extension>gz,tgz</extension>
+        <supportedencryption>Base64</supportedencryption>
+        <status>deleted</status>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+        <_config>
+            <namespace>DynamicConfiguration</namespace>
+            <mergeStrategy>merge</mergeStrategy>
+        </_config>
+    </artifact>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.yaml
new file mode 100644
index 0000000..12ba1f0
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+  allowedChar: "a-zA-Z_0-9"
+encoded: true
+consumer: "appc,catalog"
+_config:
+ namespace: "DynamicConfiguration"
+ mergeStrategy: "override"
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config-NS.properties
new file mode 100644
index 0000000..b7e985b
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config-NS.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=FallbackToGlobalNS
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.json
new file mode 100644
index 0000000..6f3d68a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.json
@@ -0,0 +1,9 @@
+{
+
+    "artifact": {
+      "name": { "minlength": "6" },
+      "extension": "pdf,tgz,xls"
+    },
+    "_config":{"namespace": "FallbackToGlobalNS" , "mergeStrategy": "union"}
+
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.properties
new file mode 100644
index 0000000..4daad19
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.xml
new file mode 100644
index 0000000..9a881ab
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <extension>gz,tgz</extension>
+        <supportedencryption>Base64</supportedencryption>
+        <status>deleted</status>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+    </artifact>
+    <_config>
+        <namespace>FallbackToGlobalNS</namespace>
+        <mergeStrategy>merge</mergeStrategy>
+    </_config>
+
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.yaml
new file mode 100644
index 0000000..46f50b6
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+  allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+ _config:
+  namespace: "FallbackToGlobalNS"
+  mergeStrategy: "override"
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.json
new file mode 100644
index 0000000..e59e658
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.json
@@ -0,0 +1,10 @@
+{
+  
+    "artifact": {
+      "name": { "minlength": "6" },
+      "maxsize": "1048",
+      "extension": "pdf,tgz,xls"
+    },
+    "_config": { "mergeStrategy": "union","namespace":"GlobalAndNSConfig" }
+  
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.properties
new file mode 100644
index 0000000..1a86f68
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.properties
@@ -0,0 +1,10 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64, MD5
+artifact.name.allowedChar=a-zA-Z 
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=GlobalAndNSConfig
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.xml
new file mode 100644
index 0000000..d8292c1
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <extension>gz,tgz</extension>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+    </artifact>
+    <_config>
+        <namespace>GlobalAndNSConfig</namespace>
+        <mergeStrategy>merge</mergeStrategy>
+    </_config>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.yaml
new file mode 100644
index 0000000..bbbdde2
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.yaml
@@ -0,0 +1,7 @@
+ artifact: 
+  name: 
+   allowedChar: "a-zA-Z_0-9"
+  encoded: true
+  consumer: "appc,catalog"
+ _config: 
+  mergeStrategy: "override"
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-M.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-M.json
new file mode 100644
index 0000000..9c33572
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-M.json
@@ -0,0 +1,16 @@
+{
+
+  "artifact": {
+    "name": { "maxlength": "28" },
+    "maxsize": "1048576",
+    "extension": "gz,tgz",
+    "supportedencryption": "Base64",
+    "status": "deleted",
+    "mandatory": { "name": "true" }
+  },
+  "_config": {
+    "namespace": "JSONConfig",
+    "mergeStrategy": "merge"
+  }
+
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-O.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-O.json
new file mode 100644
index 0000000..c324fc7
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-O.json
@@ -0,0 +1,11 @@
+{
+  "artifact": {
+    "name": { "allowedChar": "a-zA-Z_0-9" },
+    "encoded": "true",
+    "consumer": "appc,catalog"
+  },
+  "_config": {
+    "namespace": "JSONConfig",
+    "mergeStrategy": "override"
+  }
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-U.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-U.json
new file mode 100644
index 0000000..05a7e2d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-U.json
@@ -0,0 +1,11 @@
+{
+  "artifact": {
+    "name": { "minlength": "6" },
+    "maxsize": "1048",
+    "extension": "pdf,tgz,xls"
+  },
+  "_config": {
+    "namespace": "JSONConfig",
+    "mergeStrategy": "union"
+  }
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config.json
new file mode 100644
index 0000000..0538ba1
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config.json
@@ -0,0 +1,30 @@
+{
+  "artifact": {
+    "name": {
+      "maxlength": "14",
+      "allowedChar": "a-zA-Z",
+      "allowedchar": "a-zA-Z"
+    },
+    "extension": [
+      "pdf",
+      "zip,xml"
+
+    ],
+    "supportedEncryption": [
+      "Base64",
+      "MD5"
+    ],
+    "status": [
+      "deleted",
+      "Deleted"
+    ],
+    "persistLocation": "/opt/spool,${sys:user.home}/asdc",
+    "jsonSchema": "@GeneratorList.json",
+    "xmlSchema": "@${env:path}/myschema.json",
+    "consumerAPPC": "${artifact.consumer}"
+
+  },
+  "_config": {
+    "namespace": "JSONConfig"
+  }
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-M.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-M.properties
new file mode 100644
index 0000000..5082081
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-M.properties
@@ -0,0 +1,9 @@
+artifact.name.maxlength=28
+artifact.maxsize=1048576
+artifact.extension=gz, tgz
+artifact.supportedencryption=Base64
+artifact.mandatory.name=true
+artifact.length=2
+_config.namespace=LoadOrderConfiguration
+_config.mergeStrategy=merge
+_config.loadOrder=2
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-O.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-O.properties
new file mode 100644
index 0000000..4501826
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-O.properties
@@ -0,0 +1,7 @@
+artifact.name.allowedChar=a-zA-Z_0-9
+artifact.encoded=true
+artifact.consumer=appc, catalog
+artifact.size=75
+_config.namespace=LoadOrderConfiguration
+_config.mergeStrategy=override
+_config.loadOrder=1
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-U.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-U.properties
new file mode 100644
index 0000000..cb5d596
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-U.properties
@@ -0,0 +1,5 @@
+artifact.maxsize=1048
+artifact.extension=pdf,tgz, xls
+artifact.name.minlength=6
+_config.namespace=LoadOrderConfiguration
+_config.mergeStrategy=union
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-M.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-M.properties
new file mode 100644
index 0000000..79d0815
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-M.properties
@@ -0,0 +1,9 @@
+artifact.name.maxlength=28
+artifact.maxsize=1048576
+artifact.extension=gz, tgz
+artifact.supportedencryption=Base64
+artifact.mandatory.name=true
+artifact.length=5
+_config.namespace=LoadOrderConfiguration
+_config.mergeStrategy=merge
+_config.loadOrder=1
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-O.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-O.properties
new file mode 100644
index 0000000..164706d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-O.properties
@@ -0,0 +1,7 @@
+artifact.name.allowedChar=a-zA-Z_0-9
+artifact.encoded=true
+artifact.consumer=appc, catalog
+artifact.size=56
+_config.namespace=LoadOrderConfiguration
+_config.mergeStrategy=override
+_config.loadOrder=2
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config.properties
new file mode 100644
index 0000000..ae1f445
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config.properties
@@ -0,0 +1,14 @@
+artifact.name.maxlength=14
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=LoadOrderConfiguration
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.json
new file mode 100644
index 0000000..7c6d552
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.json
@@ -0,0 +1,8 @@
+{
+  "artifact": {
+      "name": { "minlength": "6" },
+      "maxsize": "1048",
+      "extension": "pdf,tgz,xls"
+    },
+    "_config": { "mergeStrategy": "union" , "namespace":"ModeAsConfigProp" }
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.properties
new file mode 100644
index 0000000..a82e6b2
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.properties
@@ -0,0 +1,10 @@
+artifact.name.maxlength=14
+artifact.extension=pdf,zip,xml
+artifact.supportedEncryption=Base64,MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@${sys:user.home}/TestResources/GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=ModeAsConfigProp
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.xml
new file mode 100644
index 0000000..2d05d27
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <extension>gz,tgz</extension>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+    </artifact>
+    <_config>
+        <namespace>ModeAsConfigProp</namespace>
+        <mergeStrategy>merge</mergeStrategy>
+    </_config>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.yaml
new file mode 100644
index 0000000..ef08bba
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+   allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+_config:
+ mergeStrategy: "override"
+ namespace: "ModeAsConfigProp"
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NodeCLI/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NodeCLI/config.properties
new file mode 100644
index 0000000..435f98a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NodeCLI/config.properties
@@ -0,0 +1,9 @@
+artifact.name.maxlength=30
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.name.allowedChar=a-zA-Z
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=NodeCLI
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/Notification/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/Notification/config.properties
new file mode 100644
index 0000000..4076eef
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/Notification/config.properties
@@ -0,0 +1,15 @@
+artifact.name.maxlength=14
+artifact.consumer=APPC
+artifact.maxsize=1048
+artifact.extension=pdf,zip,xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool,${sys:user.home}/asdc
+artifact.jsonSchema=@${sys:user.home}/TestResources/GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=Notification
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig.zip b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig.zip
new file mode 100644
index 0000000..42d14a6
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig.zip
Binary files differ
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.json
new file mode 100644
index 0000000..0d6395a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.json
@@ -0,0 +1,12 @@
+{
+
+    "artifact": {
+      "name": { "minlength": "6" },
+      "extension": "pdf,tgz,xls"
+    },
+    "_config":{
+      "namespace": "NotificationForNodeConfig",
+      "mergestrategy": "union"
+    }
+
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.properties
new file mode 100644
index 0000000..d2c41aa
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.properties
@@ -0,0 +1,14 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=NotificationForNodeConfig
+
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.xml
new file mode 100644
index 0000000..20768aa
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <extension>gz,tgz</extension>
+        <supportedencryption>Base64</supportedencryption>
+        <status>deleted</status>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+    </artifact>
+    <_config>
+        <namespace>NotificationForNodeConfig</namespace>
+        <mergestrategy>merge</mergestrategy>
+    </_config>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.yaml
new file mode 100644
index 0000000..ee85a0c
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.yaml
@@ -0,0 +1,8 @@
+artifact:
+ name:
+  allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+_config:
+ namespace: "NotificationForNodeConfig"
+ mergestrategy: "override"
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config-NS.properties
new file mode 100644
index 0000000..279d407
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config-NS.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=NotificationOnPropVal
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.json
new file mode 100644
index 0000000..fc7f234
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.json
@@ -0,0 +1,9 @@
+{
+  "artifact": {
+      "name": { "minlength": "6" },
+      "extension": "pdf,tgz,xls"
+   },
+
+  "_config": { "mergeStrategy": "union","namespace":"NotificationOnPropVal" }
+
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.properties
new file mode 100644
index 0000000..4daad19
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.xml
new file mode 100644
index 0000000..e3a24fb
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <extension>gz,tgz</extension>
+        <supportedencryption>Base64</supportedencryption>
+        <status>deleted</status>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+    </artifact>
+    <_config>
+        <namespace>NotificationOnPropVal</namespace>
+        <mergeStrategy>merge</mergeStrategy>
+    </_config>
+  </configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.yaml
new file mode 100644
index 0000000..7283df4
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.yaml
@@ -0,0 +1,9 @@
+
+ artifact:
+  name:
+   allowedChar: "a-zA-Z_0-9"
+  encoded: true
+  consumer: "appc,catalog"
+  _config:
+   mergeStrategy: "override"
+   namespace: "NotificationOnPropVal"
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.json
new file mode 100644
index 0000000..42c6be9
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.json
@@ -0,0 +1,10 @@
+{
+  
+    "artifact": {
+      "name": { "minlength": "6" },
+      "maxsize": "1048",
+      "extension": "pdf,tgz,xls"
+    },
+	"_config": { "mergeStrategy": "union","namespace":"SourceLocation" }
+  
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.properties
new file mode 100644
index 0000000..22c9840
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.properties
@@ -0,0 +1,14 @@
+artifact.name.maxlength=14
+artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z 
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=SourceLocation
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.xml
new file mode 100644
index 0000000..1162af5
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+       <name>
+            <maxlength>28</maxlength>
+       </name>
+        <maxsize>1048576</maxsize>
+        <extension>gz,tgz</extension>
+        <supportedencryption>Base64</supportedencryption>
+        <status>deleted</status>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+    </artifact>
+	<_config>
+        <namespace>SourceLocation</namespace>
+        <mergeStrategy>merge</mergeStrategy>
+    </_config>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.yaml
new file mode 100644
index 0000000..4e073ce
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.yaml
@@ -0,0 +1,8 @@
+artifact: 
+ name: 
+  allowedChar: "a-zA-Z_0-9"
+ encoded: true
+ consumer: "appc,catalog"
+_config:
+ mergeStrategy: "override"
+ namespace: "SourceLocation"
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config-NS.properties
new file mode 100644
index 0000000..40b4518
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config-NS.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=UnregisterNotification
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.json
new file mode 100644
index 0000000..3e04640
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.json
@@ -0,0 +1,9 @@
+{
+  "artifact": {
+      "name": { "minlength": "6" },
+      "extension": "pdf,tgz,xls"
+   },
+
+  "_config": { "mergeStrategy": "union","namespace":"UnregisterNotification" }
+
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.properties
new file mode 100644
index 0000000..4daad19
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.xml
new file mode 100644
index 0000000..1153658
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <extension>gz,tgz</extension>
+        <supportedencryption>Base64</supportedencryption>
+        <status>deleted</status>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+    </artifact>
+    <_config>
+        <namespace>UnregisterNotification</namespace>
+        <mergeStrategy>merge</mergeStrategy>
+    </_config>
+  </configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.yaml
new file mode 100644
index 0000000..1deb37a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.yaml
@@ -0,0 +1,9 @@
+
+ artifact:
+  name:
+   allowedChar: "a-zA-Z_0-9"
+  encoded: true
+  consumer: "appc,catalog"
+  _config:
+   mergeStrategy: "override"
+   namespace: "UnregisterNotification"
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.json
new file mode 100644
index 0000000..7283302
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.json
@@ -0,0 +1,8 @@
+{
+  "artifact": {
+    "name": {
+      "minlength": "6"
+    },
+    "extension": "pdf,tgz,xls"
+  }
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.properties
new file mode 100644
index 0000000..c857da3
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.properties
@@ -0,0 +1,2 @@
+artifact.name.maxlength=14
+artifact.maxsize=1048
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config-NS.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config-NS.properties
new file mode 100644
index 0000000..a782e25
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config-NS.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorsList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=ValidateNodeConfig
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config.properties
new file mode 100644
index 0000000..4daad19
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config.properties
@@ -0,0 +1,3 @@
+maxCachedBufferSize=1024
+artifact.maxsize=1024
+artifact.name.maxlength=28
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-M.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-M.xml
new file mode 100644
index 0000000..320e533
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-M.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <maxsize>1048576</maxsize>
+        <extension>gz,tgz</extension>
+        <supportedencryption>Base64</supportedencryption>
+        <status>deleted</status>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+    </artifact>
+    <_config>
+        <namespace>XMLConfig</namespace>
+        <mergeStrategy>merge</mergeStrategy>
+    </_config>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-O.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-O.xml
new file mode 100644
index 0000000..508c920
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-O.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <allowedChar>a-zA-Z_0-9</allowedChar>
+        </name>
+        <encoded>true</encoded>
+        <consumer>appc,catalog</consumer>
+    </artifact>
+    <_config>
+        <namespace>XMLConfig</namespace>
+        <mergeStrategy>override</mergeStrategy>
+    </_config>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-U.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-U.xml
new file mode 100644
index 0000000..962bd34
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-U.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <minlength>6</minlength>
+        </name>
+        <maxsize>1048</maxsize>
+        <extension>pdf,tgz,xls</extension>
+    </artifact>
+    <_config>
+        <namespace>XMLConfig</namespace>
+        <mergeStrategy>union</mergeStrategy>
+    </_config>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config.xml
new file mode 100644
index 0000000..2fff65b
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>14</maxlength>
+            <allowedChar>a-zA-Z</allowedChar>
+            <allowedchar>a-zA-Z</allowedchar>
+        </name>
+       <!-- <maxsize></maxsize>-->
+        <extension>pdf</extension>
+        <extension>zip,xml</extension>
+
+        <supportedEncryption>Base64</supportedEncryption>
+        <supportedEncryption>MD5</supportedEncryption>
+        <status>deleted</status>
+        <status>Deleted</status>
+        <persistLocation>/opt/spool,${sys:user.home}/asdc</persistLocation>
+        <jsonSchema>@GeneratorList.json</jsonSchema>
+        <xmlSchema>@${env:path}/myschema.json</xmlSchema>
+        <consumerAPPC>${artifact.consumer}</consumerAPPC>
+    </artifact>
+    <_config>
+        <namespace>XMLConfig</namespace>
+    </_config>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-M.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-M.yaml
new file mode 100644
index 0000000..8ff08cd
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-M.yaml
@@ -0,0 +1,12 @@
+ artifact:
+  name:
+   maxlength: 28
+  maxsize: 1048576
+  extension: "gz,tgz"
+  supportedencryption: Base64
+  status: deleted
+  mandatory:
+   name: true
+ _config:
+  namespace: YAMLConfig
+  mergeStrategy: merge
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-O.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-O.yaml
new file mode 100644
index 0000000..051d41d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-O.yaml
@@ -0,0 +1,8 @@
+ artifact:
+  name:
+   allowedChar: "a-zA-Z_0-9"
+  encoded: true
+  consumer: "appc,catalog"
+ _config:
+  namespace: YAMLConfig
+  mergeStrategy: override
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-U.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-U.yaml
new file mode 100644
index 0000000..8a9ab0e
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-U.yaml
@@ -0,0 +1,8 @@
+ artifact:
+  name:
+   minlength: 6
+  maxsize: 1048
+  extension: "pdf,tgz,xls"
+ _config:
+  namespace: YAMLConfig
+  mergeStrategy: union
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config.yaml
new file mode 100644
index 0000000..706b22d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config.yaml
@@ -0,0 +1,27 @@
+artifact:
+  name:
+   maxlength: 14
+   allowedChar: "a-zA-Z"
+   allowedchar: "a-zA-Z"
+  #maxsize: ""
+  extension:
+   -
+    pdf
+   -
+    zip,xml
+  supportedEncryption:
+   -
+    Base64
+   -
+    MD5
+  status:
+   -
+    deleted
+   -
+    Deleted
+  persistLocation: "/opt/spool,${sys:user.home}/asdc"
+  jsonSchema: "@GeneratorList.json"
+  xmlSchema: "@${env:path}/myschema.json"
+  consumerAPPC: "${artifact.consumer}"
+_config:
+  namespace: YAMLConfig
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/config-system.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/config-system.properties
new file mode 100644
index 0000000..934f0fc
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/config-system.properties
@@ -0,0 +1,22 @@
+driverClassName=com.github.adejanovski.cassandra.jdbc.CassandraDriver
+jdbcURL=jdbc:${dbname}://${dbhost}:${dbport}/${configdb}
+dbuser=
+dbpassword=
+config.Table=configuration
+config.monitor.Table=configuration_change
+configKey=key
+configValue=value
+configNameColumn=name
+configdb=dox
+dbhost=127.0.0.1
+dbport=9042
+dbname=cassandra
+createtablecql=create table if not exists ${configdb}.${config.Table} (name text\, key text\, value text\, PRIMARY KEY (name\, key)) with clustering order by (key asc)
+createmonitoringtablecql=create table if not exists ${configdb}.${config.monitor.Table} (name text\, changed_when bigint\, key text\, old_value text\, new_value text\, PRIMARY KEY (name\, changed_when)) with clustering order by (changed_when desc)
+insertconfigurationchangecql=insert into ${configdb}.${config.monitor.Table} (name\, changed_when\, key\, old_value\, new_value) values(?\, ?\, ?\, ?\, ?)
+fetchkeysql=select ${configKey} from ${config.Table} where ${configNameColumn}=?
+fetchlastchangecql=select changed_when from ${configdb}.${config.monitor.Table} where name=? limit 1
+fetchnamescql=select distinct name from ${configdb}.${config.Table}
+config.size.max=100
+config.refresh.interval=30000
+event.fetch.delay=5000
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-merge.xml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-merge.xml
new file mode 100644
index 0000000..3595efd
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-merge.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <artifact>
+        <name>
+            <maxlength>28</maxlength>
+        </name>
+        <maxsize>1048576</maxsize>
+        <extension>gz,tgz</extension>
+        <supportedencryption>Base64</supportedencryption>
+        <status>deleted</status>
+        <mandatory>
+            <name>true</name>
+        </mandatory>
+    </artifact>
+</configuration>
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-override.json b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-override.json
new file mode 100644
index 0000000..dd6087b
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-override.json
@@ -0,0 +1,7 @@
+{
+  "artifact": {
+    "name": { "allowedChar": "a-zA-Z_0-9" },
+    "encoded": "true",
+    "consumer": "appc,catalog"
+  }
+}
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-union.yaml b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-union.yaml
new file mode 100644
index 0000000..957b75d
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-union.yaml
@@ -0,0 +1,5 @@
+ artifact:
+  name:
+   minlength: 6
+  maxsize: 1048
+  extension: "pdf,tgz,xls"
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback.properties
new file mode 100644
index 0000000..7839839
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback.properties
@@ -0,0 +1,13 @@
+artifact.name.maxlength=14
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-M.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-M.properties
new file mode 100644
index 0000000..8a571eb
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-M.properties
@@ -0,0 +1,7 @@
+artifact.name.maxlength=28
+artifact.maxsize=1048576
+artifact.extension=gz, tgz
+artifact.supportedencryption=Base64
+artifact.mandatory.name=true
+_config.namespace=javaProperties
+_config.mergeStrategy=merge
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-O.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-O.properties
new file mode 100644
index 0000000..b27c67a
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-O.properties
@@ -0,0 +1,5 @@
+artifact.name.allowedChar=a-zA-Z_0-9
+artifact.encoded=true
+artifact.consumer=appc, catalog
+_config.namespace=javaProperties
+_config.mergeStrategy=override
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-U.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-U.properties
new file mode 100644
index 0000000..615f2a2
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-U.properties
@@ -0,0 +1,5 @@
+artifact.maxsize=1048
+artifact.extension=pdf,tgz, xls
+artifact.name.minlength=6
+_config.namespace=javaProperties
+_config.mergeStrategy=union
\ No newline at end of file
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config.properties
new file mode 100644
index 0000000..d9051f6
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config.properties
@@ -0,0 +1,14 @@
+artifact.name.maxlength=14
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.supportedEncryption=MD5
+artifact.name.allowedChar=a-zA-Z
+artifact.name.allowedchar=a-zA-Z
+artifact.status=deleted
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=javaProperties
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-at.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-at.properties
new file mode 100644
index 0000000..3bc7733
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-at.properties
@@ -0,0 +1,11 @@
+artifact.name.maxlength=20
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.name.allowedChar=a-zA-Z
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=OPENECOMP:tenancy
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-tf.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-tf.properties
new file mode 100644
index 0000000..196bafe
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-tf.properties
@@ -0,0 +1,10 @@
+artifact.name.maxlength=30
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.name.allowedChar=a-zA-Z
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=Telefonica:tenancy
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-vf.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-vf.properties
new file mode 100644
index 0000000..4c0c6ad
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-vf.properties
@@ -0,0 +1,11 @@
+artifact.name.maxlength=24
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.name.allowedChar=a-zA-Z
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=Vodafone:tenancy
diff --git a/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config.properties b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config.properties
new file mode 100644
index 0000000..8ed2485
--- /dev/null
+++ b/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config.properties
@@ -0,0 +1,11 @@
+artifact.name.maxlength=14
+#artifact.maxsize=
+artifact.extension=pdf, zip, xml
+artifact.supportedEncryption=Base64
+artifact.name.allowedChar=a-zA-Z
+artifact.status=Deleted
+artifact.persistLocation=/opt/spool, ${sys:user.home}/asdc
+artifact.jsonSchema=@GeneratorList.json
+artifact.xmlSchema=@${env:path}/myschema.json
+artifact.consumerAPPC=${artifact.consumer}
+_config.namespace=tenancy