1 package org.openecomp.config.test;
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;
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;
21 import static org.openecomp.config.util.ConfigTestConstant.*;
24 * Created by sheetalm on 10/18/2016.
26 * Verify Configuration Management System - Command Line Interface for query, update and list operations
28 public class CLITest {
30 public final static String NAMESPACE = "CLI";
31 public final static String TENANT = "OPENECOMP";
32 private String updatedValue = "";
35 public void setUp() throws IOException {
36 String data = "{name:\"SCM\"}";
37 TestUtil.writeFile(data);
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);
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);
55 conf.addConfigurationChangeListener(TENANT,NAMESPACE, ConfigTestConstant.ARTIFACT_NAME_MAXLENGTH, new CLIListener());
59 input.put("ImplClass", "org.openecomp.config.type.ConfigurationUpdate");
60 input.put("value", "24");
61 conf.updateConfigurationValue(input);
65 Assert.assertEquals("24",updatedValue);
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);
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);
80 private class CLIListener implements ConfigurationChangeListener {
82 public void notify(String key, Object oldValue, Object newValue) {
83 System.out.println("received notification::oldValue=="+oldValue+" newValue=="+newValue);
84 updatedValue = newValue.toString();
88 private void validateCLIListConfig(Map<String, String> outputMap ) {
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));
104 public void tearDown() throws Exception {