aboutsummaryrefslogtreecommitdiffstats
path: root/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test')
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/TestCMSuite.java58
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLIFallbackAndLookupTest.java83
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/CLITest.java107
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ConfigSourceLocationTest.java53
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/DynamicConfigurationTest.java66
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackConfigTest.java39
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/FallbackToGlobalNSTest.java42
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/GlobalAndNSConfigTest.java45
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JAVAPropertiesConfigTest.java40
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/JSONConfigTest.java41
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/LoadOrderMergeAndOverrideTest.java47
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ModeAsConfigPropTest.java88
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/MultiTenancyConfigTest.java55
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NodeSpecificCLITest.java117
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationForNodeConfigTest.java85
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/NotificationOnPropValTest.java76
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ResourceChangeNotificationTest.java91
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/UnregisterNotificationTest.java94
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateDefaultModeTest.java60
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/ValidateNodeConfigTest.java80
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/XMLConfigTest.java41
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/test/YAMLConfigTest.java41
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/ConfigTestConstant.java23
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java/org/openecomp/config/util/TestUtil.java95
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config-NS.properties12
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.json8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLI/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config-NS.properties12
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.json8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/CLIFallback/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.json8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/DynamicConfiguration/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config-NS.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.json9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.xml19
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/FallbackToGlobalNS/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.json10
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.properties10
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.xml16
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/GlobalAndNSConfig/config.yaml7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-M.json16
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-O.json11
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config-U.json11
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/JSONConfiguration/config.json30
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-M.properties9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-O.properties7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-U.properties5
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-M.properties9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config-loadorder-O.properties7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/LoadOrderConfiguration/config.properties14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.json8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.properties10
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.xml16
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/MergeStrategyAsConfigProp/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NodeCLI/config.properties9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/Notification/config.properties15
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig.zipbin0 -> 1705 bytes
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.json12
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.properties14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationForNodeConfig/config.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config-NS.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.json9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/NotificationOnPropVal/config.yaml9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.json10
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.properties14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.xml19
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/SourceLocation/appjarconfig.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config-NS.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.json9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.xml18
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/UnregisterNotification/config.yaml9
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.json8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateDefaultMode/config-defaultmode.properties2
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config-NS.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/ValidateNodeConfig/config.properties3
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-M.xml19
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-O.xml14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config-U.xml14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/XMLConfiguration/config.xml25
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-M.yaml12
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-O.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config-U.yaml8
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/YAMLConfiguration/config.yaml27
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/config-system.properties22
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-merge.xml15
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-override.json7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback-union.yaml5
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/fallback/config-fallback.properties13
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-M.properties7
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-O.properties5
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config-U.properties5
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/java-properties/config.properties14
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-at.properties11
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-tf.properties10
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config-vf.properties11
-rw-r--r--common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/resources/multitenancy/config.properties11
107 files changed, 2488 insertions, 0 deletions
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 0000000000..4ef46f6c9d
--- /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 0000000000..4f7ab92dd0
--- /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 0000000000..ff04873b42
--- /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 0000000000..7eb591c6d2
--- /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 0000000000..1ca41f8a81
--- /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 0000000000..09fca879b0
--- /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 0000000000..1efc462d4e
--- /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 0000000000..87324aa35c
--- /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 0000000000..23c5fa3130
--- /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 0000000000..5f2d24e67f
--- /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 0000000000..7ce508a063
--- /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 0000000000..470694e355
--- /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 0000000000..66feea3928
--- /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 0000000000..795780b83b
--- /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 0000000000..3d1579e25e
--- /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 0000000000..8a461503ae
--- /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 0000000000..e3e4e24f28
--- /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 0000000000..a53f3c2d40
--- /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 0000000000..7ae2e0a644
--- /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 0000000000..03a6786275
--- /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 0000000000..8af5ebf89d
--- /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 0000000000..bc172b0eb7
--- /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 0000000000..d639ccad42
--- /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 0000000000..a04f14cb84
--- /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 0000000000..a50cabc151
--- /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 0000000000..5d98a327db
--- /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 0000000000..4daad19dcc
--- /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 0000000000..2f09871bd5
--- /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 0000000000..4333f3e83e
--- /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 0000000000..32da54ffbc
--- /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 0000000000..a1db251671
--- /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 0000000000..4daad19dcc
--- /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 0000000000..4c46762cdd
--- /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 0000000000..b0b195f354
--- /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 0000000000..c909fe8466
--- /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 0000000000..c3825487a9
--- /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 0000000000..3f046e232b
--- /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 0000000000..12ba1f093e
--- /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 0000000000..b7e985b90a
--- /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 0000000000..6f3d68ab75
--- /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 0000000000..4daad19dcc
--- /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 0000000000..9a881ab4a7
--- /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 0000000000..46f50b6087
--- /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 0000000000..e59e65855c
--- /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 0000000000..1a86f68a65
--- /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 0000000000..d8292c167e
--- /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 0000000000..bbbdde22a4
--- /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 0000000000..9c335724bc
--- /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 0000000000..c324fc777c
--- /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 0000000000..05a7e2d7ff
--- /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 0000000000..0538ba1717
--- /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 0000000000..5082081102
--- /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 0000000000..45018269dd
--- /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 0000000000..cb5d5968f5
--- /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 0000000000..79d0815a39
--- /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 0000000000..164706dba7
--- /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 0000000000..ae1f445efd
--- /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 0000000000..7c6d552b82
--- /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 0000000000..a82e6b23fe
--- /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 0000000000..2d05d2724c
--- /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 0000000000..ef08bba6ce
--- /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 0000000000..435f98ab39
--- /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 0000000000..4076eefa58
--- /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 0000000000..42d14a64db
--- /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 0000000000..0d6395af4f
--- /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 0000000000..d2c41aa4b5
--- /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 0000000000..20768aa949
--- /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 0000000000..ee85a0c68d
--- /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 0000000000..279d407664
--- /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 0000000000..fc7f2347aa
--- /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 0000000000..4daad19dcc
--- /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 0000000000..e3a24fbc32
--- /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 0000000000..7283df4ecb
--- /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 0000000000..42c6be91b9
--- /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 0000000000..22c9840fad
--- /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 0000000000..1162af576e
--- /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 0000000000..4e073ce7f9
--- /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 0000000000..40b4518945
--- /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 0000000000..3e0464016d
--- /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 0000000000..4daad19dcc
--- /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 0000000000..1153658161
--- /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 0000000000..1deb37ac7a
--- /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 0000000000..72833024c4
--- /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 0000000000..c857da38e9
--- /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 0000000000..a782e25835
--- /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 0000000000..4daad19dcc
--- /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 0000000000..320e53348d
--- /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 0000000000..508c920b83
--- /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 0000000000..962bd342f3
--- /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 0000000000..2fff65b2e0
--- /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 0000000000..8ff08cdc43
--- /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 0000000000..051d41d76b
--- /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 0000000000..8a9ab0e13e
--- /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 0000000000..706b22db5e
--- /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 0000000000..934f0fcf37
--- /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 0000000000..3595efd87b
--- /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 0000000000..dd6087b70c
--- /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 0000000000..957b75d40a
--- /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 0000000000..7839839258
--- /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 0000000000..8a571ebc89
--- /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 0000000000..b27c67a78d
--- /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 0000000000..615f2a2093
--- /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 0000000000..d9051f6ec4
--- /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 0000000000..3bc773369b
--- /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 0000000000..196bafe4e4
--- /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 0000000000..4c0c6ad897
--- /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 0000000000..8ed2485dc2
--- /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