ff04873b421c7573b1d93f84fd660bf4c6297b74
[sdc.git] / common / openecomp-common-configuration-management / openecomp-configuration-management-test / src / test / java / org / openecomp / config / test / CLITest.java
1 package org.openecomp.config.test;
2
3 import org.openecomp.config.Constants;
4 import org.openecomp.config.api.ConfigurationChangeListener;
5 import org.openecomp.config.api.ConfigurationManager;
6 import org.openecomp.config.util.ConfigTestConstant;
7 import org.openecomp.config.util.TestUtil;
8 import org.junit.After;
9 import org.junit.Assert;
10 import org.junit.Before;
11 import org.junit.Test;
12
13 import javax.management.JMX;
14 import javax.management.MBeanServerConnection;
15 import javax.management.ObjectName;
16 import java.io.IOException;
17 import java.lang.management.ManagementFactory;
18 import java.util.HashMap;
19 import java.util.Map;
20
21 import static org.openecomp.config.util.ConfigTestConstant.*;
22
23 /**
24  * Created by sheetalm on 10/18/2016.
25  * Scenario 17
26  * Verify Configuration Management System - Command Line Interface for query, update and list operations
27  */
28 public class CLITest {
29
30         public final static String NAMESPACE = "CLI";
31         public final static String TENANT = "OPENECOMP";
32         private String updatedValue = "";
33
34     @Before
35     public void setUp() throws IOException {
36         String data = "{name:\"SCM\"}";
37         TestUtil.writeFile(data);
38     }
39
40     @Test
41         public void testCLIApi() throws Exception{
42         //Verify without fallback
43         Map<String, Object> input = new HashMap<>();
44         input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
45         input.put("tenant", TENANT);
46         input.put("namespace", NAMESPACE);
47         input.put("key", ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH);
48
49         MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();
50         ObjectName mbeanName = new ObjectName(Constants.MBEAN_NAME);
51         ConfigurationManager conf = JMX.newMBeanProxy(mbsc, mbeanName, org.openecomp.config.api.ConfigurationManager.class, true);
52         String maxLength = conf.getConfigurationValue(input);
53         Assert.assertEquals("14",maxLength);
54
55         conf.addConfigurationChangeListener(TENANT,NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, new CLIListener());
56
57
58         //Update maxlength
59         input.put("ImplClass", "org.openecomp.config.type.ConfigurationUpdate");
60         input.put("value", "24");
61         conf.updateConfigurationValue(input);
62
63         Thread.sleep(35000);
64
65         Assert.assertEquals("24",updatedValue);
66
67         //Reset value and fetch updated value again
68         input.put("value", "");
69         input.put("ImplClass", "org.openecomp.config.type.ConfigurationQuery");
70         String updatedMaxLength = conf.getConfigurationValue(input);
71         Assert.assertEquals("24",updatedMaxLength);
72
73         Map<String, String> outputMap = conf.listConfiguration(input);
74         for(Map.Entry<String, String> entry : outputMap.entrySet()){
75             System.out.println(entry.getKey()+" : "+entry.getValue());
76             validateCLIListConfig(outputMap);
77         }
78     }
79
80     private class CLIListener implements ConfigurationChangeListener {
81         @Override
82         public void notify(String key, Object oldValue, Object newValue) {
83             System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
84             updatedValue = newValue.toString();
85         }
86     }
87
88     private void validateCLIListConfig(Map<String, String> outputMap ) {
89
90         Assert.assertEquals("@"+System.getProperty("user.home")+"/TestResources/GeneratorsList.json" , outputMap.get(ARTIFACT_JSON_SCHEMA));
91         Assert.assertEquals("appc,catalog", outputMap.get(ARTIFACT_CONSUMER));
92         Assert.assertEquals("6", outputMap.get(ARTIFACT_NAME_MINLENGTH));
93         Assert.assertEquals("true", outputMap.get(ARTIFACT_ENCODED));
94         Assert.assertEquals("24", outputMap.get(ARTIFACT_NAME_MAXLENGTH));
95         Assert.assertEquals("pdf,zip,xml,pdf,tgz,xls", outputMap.get(ARTIFACT_EXT));
96         Assert.assertEquals("Base64,MD5", outputMap.get(ARTIFACT_ENC));
97         Assert.assertEquals("@"+System.getenv("Path")+"/myschema.json", outputMap.get(ARTIFACT_XML_SCHEMA));
98         Assert.assertEquals("a-zA-Z_0-9", outputMap.get(ARTIFACT_NAME_UPPER));
99         Assert.assertEquals("/opt/spool,"+System.getProperty("user.home")+"/asdc", outputMap.get(ARTIFACT_LOC));
100         Assert.assertEquals("deleted,Deleted", outputMap.get(ARTIFACT_STATUS));
101     }
102
103     @After
104     public void tearDown() throws Exception {
105         TestUtil.cleanUp();
106     }
107 }