aboutsummaryrefslogtreecommitdiffstats
path: root/common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java
diff options
context:
space:
mode:
authorAviZi <avi.ziv@amdocs.com>2017-06-09 02:39:56 +0300
committerAviZi <avi.ziv@amdocs.com>2017-06-09 02:39:56 +0300
commit280f8015d06af1f41a3ef12e8300801c7a5e0d54 (patch)
tree9c1d3978c04cd28068f02073038c936bb49ca9e0 /common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java
parentfd3821dad11780d33c5373d74c957c442489945e (diff)
[SDC-29] Amdocs OnBoard 1707 initial commit.
Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370 Signed-off-by: AviZi <avi.ziv@amdocs.com>
Diffstat (limited to 'common/openecomp-common-configuration-management/openecomp-configuration-management-test/src/test/java')
-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
24 files changed, 1567 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");
+ }
+}