summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/onap/dcae/ApplicationSettings.java15
-rw-r--r--src/main/java/org/onap/dcae/RestConfCollector.java8
-rwxr-xr-xsrc/main/java/org/onap/dcae/common/Constants.java4
-rwxr-xr-xsrc/main/java/org/onap/dcae/common/DataChangeEventListener.java2
-rw-r--r--src/main/java/org/onap/dcae/common/EventProcessor.java4
-rwxr-xr-xsrc/main/java/org/onap/dcae/common/RestapiCallNode.java8
-rwxr-xr-xsrc/main/java/org/onap/dcae/common/XmlParser.java2
-rw-r--r--src/main/java/org/onap/dcae/controller/AccessController.java18
-rw-r--r--src/main/java/org/onap/dcae/controller/EnvProps.java5
-rw-r--r--src/main/java/org/onap/dcae/controller/PersistentEventConnection.java4
-rw-r--r--src/main/java/org/onap/dcae/restapi/ServletConfig.java4
-rw-r--r--src/test/java/org/onap/dcae/AccessControllerTest.java43
-rw-r--r--src/test/java/org/onap/dcae/ApplicationSettingsTest.java69
-rw-r--r--src/test/java/org/onap/dcae/RestApiCallNodeUtilTest.java204
-rw-r--r--src/test/java/org/onap/dcae/TLSTest.java47
-rw-r--r--src/test/java/org/onap/dcae/TLSTestBase.java4
-rw-r--r--src/test/java/org/onap/dcae/common/AdditionalHeaderWebTargetTest.java50
-rw-r--r--src/test/java/org/onap/dcae/common/EventProcessorTest.java7
-rw-r--r--src/test/java/org/onap/dcae/common/RestApiCallNodeTest.java131
-rw-r--r--src/test/java/org/onap/dcae/common/XmlJsonUtilTest.java19
-rwxr-xr-xsrc/test/resources/testTemplatefile18
21 files changed, 593 insertions, 73 deletions
diff --git a/src/main/java/org/onap/dcae/ApplicationSettings.java b/src/main/java/org/onap/dcae/ApplicationSettings.java
index c7e42c5..45f01ce 100644
--- a/src/main/java/org/onap/dcae/ApplicationSettings.java
+++ b/src/main/java/org/onap/dcae/ApplicationSettings.java
@@ -120,11 +120,11 @@ public class ApplicationSettings {
return httpsPort() > 0;
}
- public String rcc_keystorePasswordFileLocation() {
+ public String rccKeystorePasswordFileLocation() {
return prependWithUserDirOnRelative(properties.getString("collector.keystore.passwordfile", "etc/rcc_passwordfile"));
}
- public String rcc_keystoreFileLocation() {
+ public String rccKeystoreFileLocation() {
return prependWithUserDirOnRelative(properties.getString("collector.keystore.file.location", "etc/keystore"));
}
@@ -163,7 +163,7 @@ public class ApplicationSettings {
return prependWithUserDirOnRelative(properties.getString("collector.rcc.truststore.file.location", "etc/truststore.onap.client.jks"));
}
- public String rcc_policy() {
+ public String rccPolicy() {
return properties.getString("rcc_policy", "");
}
@@ -175,15 +175,6 @@ public class ApplicationSettings {
return properties.getString("collector.rcc.dmaap.streamid", null);
}
- private void updateProperty(String key, String value) {
- if (properties.containsKey(key)) {
- properties.setProperty(key, value);
- log.info("Retrives property: " + key + "Value " + value);
- } else {
- properties.addProperty(key, value);
- }
- }
-
public void addOrUpdate(String key, String value) {
if (properties.containsKey(key)) {
properties.setProperty(key, value);
diff --git a/src/main/java/org/onap/dcae/RestConfCollector.java b/src/main/java/org/onap/dcae/RestConfCollector.java
index 1812d23..27fccd6 100644
--- a/src/main/java/org/onap/dcae/RestConfCollector.java
+++ b/src/main/java/org/onap/dcae/RestConfCollector.java
@@ -131,9 +131,9 @@ public class RestConfCollector {
}
private static void controllerConfig(ApplicationSettings properties) {
- oplog.info("Policy received " + properties.rcc_policy());
- if (!properties.rcc_policy().equals("")) {
- JSONArray contollers = new JSONArray(properties.rcc_policy());
+ oplog.info("Policy received " + properties.rccPolicy());
+ if (!properties.rccPolicy().equals("")) {
+ JSONArray contollers = new JSONArray(properties.rccPolicy());
for (int i = 0; i < contollers.length(); i++) {
JSONObject controller = contollers.getJSONObject(i);
oplog.info(" object " + controller.toString());
@@ -152,7 +152,7 @@ public class RestConfCollector {
public static void handleEvents(EventData ev) throws Exception {
if (!fProcessingInputQueue.offer(ev)) {
- throw new Exception();
+ throw new InterruptedException();
}
log.info("RestConfCollector.handleEvents:EVENTS has been published successfully!");
}
diff --git a/src/main/java/org/onap/dcae/common/Constants.java b/src/main/java/org/onap/dcae/common/Constants.java
index 1fe5624..4c2c7b5 100755
--- a/src/main/java/org/onap/dcae/common/Constants.java
+++ b/src/main/java/org/onap/dcae/common/Constants.java
@@ -25,7 +25,7 @@ public class Constants {
public static final String KDEFAULT_REQUESTBODY = "requestBody";
public static final String KSETTING_REST_API_URL = "restapiUrl";
public static final String KSETTING_REST_UNAME = "restapiUser";
- public static final String KSETTING_REST_PASSWORD = "restapiPassword";
+ public static final String KSETTING_REST_PASSWD = "restapiPassword";
public static final String KSETTING_HTTP_METHOD = "httpMethod";
public static final String KSETTING_RESP_PREFIX = "responsePrefix";
public static final String KSETTING_SKIP_SENDING = "skipSending";
@@ -44,5 +44,5 @@ public class Constants {
public static final String KSETTING_TRUST_STORE_FILENAME = "trustStoreFileName";
public static final String KSETTING_TRUST_STORE_PASSWORD = "trustStorePassword";
public static final String KSETTING_KEY_STORE_FILENAME = "keyStoreFileName";
- public static final String KSETTING_KEY_STORE_PASSWORD = "keyStorePassword";
+ public static final String KSETTING_KEY_STORE_PASSWD = "keyStorePassword";
}
diff --git a/src/main/java/org/onap/dcae/common/DataChangeEventListener.java b/src/main/java/org/onap/dcae/common/DataChangeEventListener.java
index 6e13f73..2492c21 100755
--- a/src/main/java/org/onap/dcae/common/DataChangeEventListener.java
+++ b/src/main/java/org/onap/dcae/common/DataChangeEventListener.java
@@ -61,7 +61,7 @@ public class DataChangeEventListener implements EventListener {
log.info("Received heart beat ");
}
} catch (Exception e) {
- e.printStackTrace();
+ log.info("InboundEvent event is malformed");
}
}
diff --git a/src/main/java/org/onap/dcae/common/EventProcessor.java b/src/main/java/org/onap/dcae/common/EventProcessor.java
index bb0f095..164aed3 100644
--- a/src/main/java/org/onap/dcae/common/EventProcessor.java
+++ b/src/main/java/org/onap/dcae/common/EventProcessor.java
@@ -36,7 +36,7 @@ public class EventProcessor implements Runnable {
private static final Logger log = LoggerFactory.getLogger(EventProcessor.class);
private Map<String, String[]> streamidHash = new HashMap<>();
- public EventData ev;
+
private EventPublisher eventPublisher;
public EventProcessor(EventPublisher eventPublisher, Map<String, String[]> streamidHash) {
@@ -48,7 +48,7 @@ public class EventProcessor implements Runnable {
@Override
public void run() {
try {
-
+ EventData ev;
while (true) {
ev = RestConfCollector.fProcessingInputQueue.take();
diff --git a/src/main/java/org/onap/dcae/common/RestapiCallNode.java b/src/main/java/org/onap/dcae/common/RestapiCallNode.java
index af0245d..01da72d 100755
--- a/src/main/java/org/onap/dcae/common/RestapiCallNode.java
+++ b/src/main/java/org/onap/dcae/common/RestapiCallNode.java
@@ -265,7 +265,7 @@ public class RestapiCallNode {
byte[] encoded = Files.readAllBytes(Paths.get(fileName));
return new String(encoded, "UTF-8");
} catch (IOException | SecurityException e) {
- throw new Exception("Unable to read file " + fileName + e.getLocalizedMessage(), e);
+ throw new IOException("Unable to read file " + fileName + e.getLocalizedMessage(), e);
}
}
@@ -289,14 +289,14 @@ public class RestapiCallNode {
if (p.restapiUser != null && p.restapiPassword != null) {
client.addFilter(new HTTPDigestAuthFilter(p.restapiUser, p.restapiPassword));
} else {
- throw new Exception("oAUTH authentication type selected but all restapiUser and restapiPassword " +
+ throw new SecurityException("oAUTH authentication type selected but all restapiUser and restapiPassword " +
"parameters doesn't exist", new Throwable());
}
} else if (p.authtype == AuthType.BASIC) {
if (p.restapiUser != null && p.restapiPassword != null) {
client.addFilter(new HTTPBasicAuthFilter(p.restapiUser, p.restapiPassword));
} else {
- throw new Exception("oAUTH authentication type selected but all restapiUser and restapiPassword " +
+ throw new SecurityException("oAUTH authentication type selected but all restapiUser and restapiPassword " +
"parameters doesn't exist", new Throwable());
}
} else if (p.authtype == AuthType.OAUTH) {
@@ -310,7 +310,7 @@ public class RestapiCallNode {
.consumerSecret(p.oAuthConsumerSecret);
client.addFilter(new OAuthClientFilter(client.getProviders(), params, secrets));
} else {
- throw new Exception("oAUTH authentication type selected but all oAuthConsumerKey, voAuthConsumerSecret " +
+ throw new SecurityException("oAUTH authentication type selected but all oAuthConsumerKey, voAuthConsumerSecret " +
"and oAuthSignatureMethod parameters doesn't exist", new Throwable());
}
}
diff --git a/src/main/java/org/onap/dcae/common/XmlParser.java b/src/main/java/org/onap/dcae/common/XmlParser.java
index 06a4a66..a9902d2 100755
--- a/src/main/java/org/onap/dcae/common/XmlParser.java
+++ b/src/main/java/org/onap/dcae/common/XmlParser.java
@@ -59,7 +59,7 @@ public class XmlParser {
InputStream in = new ByteArrayInputStream(s.getBytes());
saxParser.parse(in, handler);
} catch (ParserConfigurationException | IOException | SAXException | NumberFormatException e) {
- throw new Exception("Unable to convert XML to properties" + e.getLocalizedMessage(), e);
+ throw new IOException("Unable to convert XML to properties" + e.getLocalizedMessage(), e);
}
return handler.getProperties();
}
diff --git a/src/main/java/org/onap/dcae/controller/AccessController.java b/src/main/java/org/onap/dcae/controller/AccessController.java
index 83673b8..165c468 100644
--- a/src/main/java/org/onap/dcae/controller/AccessController.java
+++ b/src/main/java/org/onap/dcae/controller/AccessController.java
@@ -29,7 +29,6 @@ import org.onap.dcae.common.RestapiCallNode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
@@ -100,6 +99,13 @@ public class AccessController {
public RestapiCallNode getRestApiCallNode() {
return restApiCallNode;
}
+ public void setRestApiCallNode(RestapiCallNode node) {
+ this.restApiCallNode = node;
+ }
+
+ public void setExecutor(ExecutorService executor) {
+ this.executor = executor;
+ }
private void fetch_TokenId() {
@@ -107,13 +113,13 @@ public class AccessController {
modifyControllerParamMap(Constants.KSETTING_REST_API_URL, getUriMethod(this.properties.authorizationEnabled()) + cfgInfo.getController_restapiUrl() + cfgInfo.getController_accessTokenUrl());
modifyControllerParamMap(Constants.KDEFAULT_TEMP_FILENAME, cfgInfo.getController_accessTokenFile());
modifyControllerParamMap(Constants.KSETTING_REST_UNAME, cfgInfo.getController_restapiUser());
- modifyControllerParamMap(Constants.KSETTING_REST_PASSWORD, cfgInfo.getController_restapiPassword());
+ modifyControllerParamMap(Constants.KSETTING_REST_PASSWD, cfgInfo.getController_restapiPassword());
modifyControllerParamMap(Constants.KSETTING_HTTP_METHOD, cfgInfo.getController_accessTokenMethod());
String httpResponse = null;
try {
- restApiCallNode.sendRequest(this.paraMap, ctx, null);
+ getRestApiCallNode().sendRequest(this.paraMap, ctx, null);
String key = getControllerParamMapValue(Constants.KSETTING_RESP_PREFIX).concat(".").concat("httpResponse");
httpResponse = ctx.getAttribute(key);
log.info("httpResponse ", httpResponse + " key " + key);
@@ -136,7 +142,7 @@ public class AccessController {
fetch_TokenId();
printControllerParamMap();
/* Create eventlist from properties */
- JSONArray contollers = new JSONArray(properties.rcc_policy());
+ JSONArray contollers = new JSONArray(properties.rccPolicy());
for (int i = 0; i < contollers.length(); i++) {
JSONObject controller = contollers.getJSONObject(i);
if (controller.get("controller_name").equals(this.getCfgInfo().getController_name())) {
@@ -188,7 +194,7 @@ public class AccessController {
paraMap.put(Constants.KSETTING_FORMAT, "json");
paraMap.put(Constants.KSETTING_REST_UNAME, null);
- paraMap.put(Constants.KSETTING_REST_PASSWORD, null);
+ paraMap.put(Constants.KSETTING_REST_PASSWD, null);
paraMap.put(Constants.KDEFAULT_REQUESTBODY, null);
paraMap.put(Constants.KSETTING_AUTH_TYPE, "unspecified");
@@ -208,7 +214,7 @@ public class AccessController {
paraMap.put(Constants.KSETTING_TRUST_STORE_PASSWORD, trustPassword);
paraMap.put(Constants.KSETTING_KEY_STORE_FILENAME, this.getProperties().keystoreFileLocation());
String KeyPassword = getKeyStorePassword(toAbsolutePath(this.getProperties().keystorePasswordFileLocation()));
- paraMap.put(Constants.KSETTING_KEY_STORE_PASSWORD, KeyPassword);
+ paraMap.put(Constants.KSETTING_KEY_STORE_PASSWD, KeyPassword);
}
diff --git a/src/main/java/org/onap/dcae/controller/EnvProps.java b/src/main/java/org/onap/dcae/controller/EnvProps.java
index a2d381d..568ff78 100644
--- a/src/main/java/org/onap/dcae/controller/EnvProps.java
+++ b/src/main/java/org/onap/dcae/controller/EnvProps.java
@@ -71,4 +71,9 @@ final class EnvProps {
Objects.equals(cbsName, envProps.cbsName) &&
Objects.equals(appName, envProps.appName);
}
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(consulProtocol, consulHost, consulPort, cbsName, cbsProtocol, appName);
+ }
} \ No newline at end of file
diff --git a/src/main/java/org/onap/dcae/controller/PersistentEventConnection.java b/src/main/java/org/onap/dcae/controller/PersistentEventConnection.java
index 1c0d85b..99ad1af 100644
--- a/src/main/java/org/onap/dcae/controller/PersistentEventConnection.java
+++ b/src/main/java/org/onap/dcae/controller/PersistentEventConnection.java
@@ -44,7 +44,7 @@ import java.util.Map;
import static org.onap.dcae.common.RestapiCallNodeUtil.*;
public class PersistentEventConnection implements Runnable {
- public String event_name;
+ private String event_name;
private String event_description;
private boolean event_sseventUrlEmbed;
private String event_sseventsField;
@@ -100,7 +100,7 @@ public class PersistentEventConnection implements Runnable {
+ parentCtrllr.getCfgInfo().getController_subscriptionUrl());
modifyEventParamMap(Constants.KDEFAULT_TEMP_FILENAME, event_subscriptionTemplate);
modifyEventParamMap(Constants.KSETTING_REST_UNAME, parentCtrllr.getCfgInfo().getController_restapiUser());
- modifyEventParamMap(Constants.KSETTING_REST_PASSWORD, parentCtrllr.getCfgInfo().getController_restapiPassword());
+ modifyEventParamMap(Constants.KSETTING_REST_PASSWD, parentCtrllr.getCfgInfo().getController_restapiPassword());
modifyEventParamMap(Constants.KSETTING_HTTP_METHOD, parentCtrllr.getCfgInfo().getController_subsMethod());
parentCtrllr.getRestApiCallNode().sendRequest(eventParaMap, ctx, null);
diff --git a/src/main/java/org/onap/dcae/restapi/ServletConfig.java b/src/main/java/org/onap/dcae/restapi/ServletConfig.java
index 6a6a761..3bb174e 100644
--- a/src/main/java/org/onap/dcae/restapi/ServletConfig.java
+++ b/src/main/java/org/onap/dcae/restapi/ServletConfig.java
@@ -62,10 +62,10 @@ public class ServletConfig implements WebServerFactoryCustomizer<ConfigurableSer
private SSLContextCreator simpleHttpsContextBuilder() {
log.info("Enabling SSL");
- final Path keyStore = toAbsolutePath(properties.rcc_keystoreFileLocation());
+ final Path keyStore = toAbsolutePath(properties.rccKeystoreFileLocation());
log.info("Using keyStore path: " + keyStore);
- final Path keyStorePasswordLocation = toAbsolutePath(properties.rcc_keystorePasswordFileLocation());
+ final Path keyStorePasswordLocation = toAbsolutePath(properties.rccKeystorePasswordFileLocation());
final String keyStorePassword = getKeyStorePassword(keyStorePasswordLocation);
log.info("Using keyStore password from: " + keyStorePasswordLocation);
diff --git a/src/test/java/org/onap/dcae/AccessControllerTest.java b/src/test/java/org/onap/dcae/AccessControllerTest.java
index 74d3da1..b93e190 100644
--- a/src/test/java/org/onap/dcae/AccessControllerTest.java
+++ b/src/test/java/org/onap/dcae/AccessControllerTest.java
@@ -20,8 +20,6 @@
package org.onap.dcae;
-import io.vavr.collection.Map;
-import org.json.JSONArray;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -31,29 +29,27 @@ import org.onap.dcae.common.RestConfContext;
import org.onap.dcae.common.RestapiCallNode;
import org.onap.dcae.controller.AccessController;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.concurrent.ExecutorService;
+
import org.json.JSONObject;
+import org.onap.dcae.controller.PersistentEventConnection;
import static java.nio.file.Files.readAllBytes;
-import static java.util.Collections.singletonList;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
-import static org.onap.dcae.CLIUtils.processCmdLine;
@RunWith(MockitoJUnitRunner.Silent.class)
public class AccessControllerTest {
+
@Mock
private ApplicationSettings properties;
@Mock
private RestConfContext ctx;
- @Mock
- private RestapiCallNode restApiCallNode;
+
protected static final Path RESOURCES = Paths.get("src", "test", "resources");
protected static final Path KEYSTORE = Paths.get(RESOURCES.toString(), "keystore");
@@ -69,8 +65,8 @@ public class AccessControllerTest {
when(properties.truststorePasswordFileLocation()).thenReturn(TRUSTSTORE_PASSWORD_FILE.toString());
when(properties.keystoreFileLocation()).thenReturn(KEYSTORE.toString());
when(properties.keystorePasswordFileLocation()).thenReturn(KEYSTORE_PASSWORD_FILE.toString());
- when(properties.rcc_keystoreFileLocation()).thenReturn(RCC_KEYSTORE.toString());
- when(properties.rcc_keystorePasswordFileLocation()).thenReturn(RCC_KEYSTORE_PASSWORD_FILE.toString());
+ when(properties.rccKeystoreFileLocation()).thenReturn(RCC_KEYSTORE.toString());
+ when(properties.rccKeystorePasswordFileLocation()).thenReturn(RCC_KEYSTORE_PASSWORD_FILE.toString());
try {
when(readAllBytes(null)).thenReturn("colletor".getBytes());
} catch (Exception e){}
@@ -93,21 +89,26 @@ public class AccessControllerTest {
when(properties.truststorePasswordFileLocation()).thenReturn(TRUSTSTORE_PASSWORD_FILE.toString());
when(properties.keystoreFileLocation()).thenReturn(KEYSTORE.toString());
when(properties.keystorePasswordFileLocation()).thenReturn(KEYSTORE_PASSWORD_FILE.toString());
- when(properties.rcc_keystoreFileLocation()).thenReturn(RCC_KEYSTORE.toString());
- when(properties.rcc_keystorePasswordFileLocation()).thenReturn(RCC_KEYSTORE_PASSWORD_FILE.toString());
- when(properties.rcc_policy()).thenReturn("[{\"controller_name\":\"AccessM&C\",\"controller_restapiUrl\":\"10.118.191.43:26335\",\"controller_restapiUser\":\"access\",\"controller_restapiPassword\":\"Huawei@123\",\"controller_accessTokenUrl\":\"/rest/plat/smapp/v1/oauth/token\",\"controller_accessTokenFile\":\"./etc/access-token.json\",\"controller_accessTokenMethod\":\"put\",\"controller_subsMethod\":\"post\",\"controller_subscriptionUrl\":\"/restconf/v1/operations/huawei-nce-notification-action:establish-subscription\",\"event_details\":[{\"event_name\":\"ONT_registration\",\"event_description\":\"ONTregistartionevent\",\"event_sseventUrlEmbed\":\"true\",\"event_sseventsField\":\"output.url\",\"event_sseventsUrl\":\"null\",\"event_subscriptionTemplate\":\"./etc/ont_registartion_subscription_template.json\",\"event_unSubscriptionTemplate\":\"./etc/ont_registartion_unsubscription_template.json\",\"event_ruleId\":\"777777777\"}]}]");
+ when(properties.rccKeystoreFileLocation()).thenReturn(RCC_KEYSTORE.toString());
+ when(properties.rccKeystorePasswordFileLocation()).thenReturn(RCC_KEYSTORE_PASSWORD_FILE.toString());
+ when(properties.rccPolicy()).thenReturn("[{\"controller_name\":\"AccessM&C\",\"controller_restapiUrl\":\"10.118.191.43:26335\",\"controller_restapiUser\":\"access\",\"controller_restapiPassword\":\"Huawei@123\",\"controller_accessTokenUrl\":\"/rest/plat/smapp/v1/oauth/token\",\"controller_accessTokenFile\":\"./etc/access-token.json\",\"controller_accessTokenMethod\":\"put\",\"controller_subsMethod\":\"post\",\"controller_subscriptionUrl\":\"/restconf/v1/operations/huawei-nce-notification-action:establish-subscription\",\"event_details\":[{\"event_name\":\"ONT_registration\",\"event_description\":\"ONTregistartionevent\",\"event_sseventUrlEmbed\":\"true\",\"event_sseventsField\":\"output.url\",\"event_sseventsUrl\":\"null\",\"event_subscriptionTemplate\":\"./etc/ont_registartion_subscription_template.json\",\"event_unSubscriptionTemplate\":\"./etc/ont_registartion_unsubscription_template.json\",\"event_ruleId\":\"777777777\"}]}]");
when(ctx.getAttribute("responsePrefix.httpResponse")).thenReturn("{\"accessSession\" : \"1234567890\",\"result\" : \"Ok\"}");
- try {
- doThrow(new Exception()).when(restApiCallNode).sendRequest(null, null, 0);
- } catch (Exception e){}
- try {
- when(readAllBytes(null)).thenReturn("colletor".getBytes());
- } catch (Exception e){}
- JSONObject controller = new JSONObject("{\"controller_name\":\"AccessM&C\",\"controller_restapiUrl\":\"10.118.191.43:26335\",\"controller_restapiUser\":\"access\",\"controller_restapiPassword\":\"Huawei@123\",\"controller_accessTokenUrl\":\"/rest/plat/smapp/v1/oauth/token\",\"controller_accessTokenFile\":\"./etc/access-token.json\",\"controller_accessTokenMethod\":\"put\",\"controller_subsMethod\":\"post\",\"controller_subscriptionUrl\":\"/restconf/v1/operations/huawei-nce-notification-action:establish-subscription\",\"event_details\":[{\"event_name\":\"ONT_registration\",\"event_description\":\"ONTregistartionevent\",\"event_sseventUrlEmbed\":\"true\",\"event_sseventsField\":\"output.url\",\"event_sseventsUrl\":\"null\",\"event_subscriptionTemplate\":\"./etc/ont_registartion_subscription_template.json\",\"event_unSubscriptionTemplate\":\"./etc/ont_registartion_unsubscription_template.json\",\"event_ruleId\":\"777777777\"}]}");
try {
+
+ RestapiCallNode restApiCallNode = Mockito.mock(RestapiCallNode.class);
+ Mockito.doNothing().when(restApiCallNode).sendRequest(any(), any(), any());
+ ExecutorService executor = Mockito.mock(ExecutorService.class);
+ Mockito.doNothing().when(executor).execute(any());
+ PersistentEventConnection conn = mock(PersistentEventConnection.class);
+ Mockito.doNothing().when(conn).run();
+ when(properties.authorizationEnabled()).thenReturn(true);
+ JSONObject controller = new JSONObject("{\"controller_name\":\"AccessM&C\",\"controller_restapiUrl\":\"10.118.191.43:26335\",\"controller_restapiUser\":\"access\",\"controller_restapiPassword\":\"Huawei@123\",\"controller_accessTokenUrl\":\"/rest/plat/smapp/v1/oauth/token\",\"controller_accessTokenFile\":\"./etc/access-token.json\",\"controller_accessTokenMethod\":\"put\",\"controller_subsMethod\":\"post\",\"controller_subscriptionUrl\":\"/restconf/v1/operations/huawei-nce-notification-action:establish-subscription\",\"event_details\":[{\"event_name\":\"ONT_registration\",\"event_description\":\"ONTregistartionevent\",\"event_sseventUrlEmbed\":\"true\",\"event_sseventsField\":\"output.url\",\"event_sseventsUrl\":\"null\",\"event_subscriptionTemplate\":\"./etc/ont_registartion_subscription_template.json\",\"event_unSubscriptionTemplate\":\"./etc/ont_registartion_unsubscription_template.json\",\"event_ruleId\":\"777777777\"}]}");
AccessController acClr = new AccessController(controller,
properties);
+ acClr.setRestApiCallNode(restApiCallNode);
+ acClr.setExecutor(executor);
+ acClr.getCtx().setAttribute("responsePrefix.httpResponse","{\"accessSession\" : \"12dsaf4-2323-1231131232323\"}");
acClr.activate();
} catch (Exception e){}
}
diff --git a/src/test/java/org/onap/dcae/ApplicationSettingsTest.java b/src/test/java/org/onap/dcae/ApplicationSettingsTest.java
index 1e1a115..bc78a24 100644
--- a/src/test/java/org/onap/dcae/ApplicationSettingsTest.java
+++ b/src/test/java/org/onap/dcae/ApplicationSettingsTest.java
@@ -35,6 +35,7 @@ import io.vavr.collection.Map;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.Objects;
@@ -94,6 +95,12 @@ public class ApplicationSettingsTest {
// then
assertEquals("abc", actuallyOverridenByCLIParam);
+
+ configurationAccessor.reloadProperties();
+
+ Path p = configurationAccessor.configurationFileLocation();
+ boolean auth = configurationAccessor.clientTlsAuthenticationEnabled();
+ assertEquals(auth, false);
}
@Test
@@ -323,6 +330,68 @@ public class ApplicationSettingsTest {
assertEquals(sanitizePath("etc/DmaapConfig.json"), cambriaConfigurationFileLocation);
}
+ @Test
+ public void shouldrccKeystorePathExistDefault() throws IOException {
+ // when
+ String path= fromTemporaryConfiguration().rccKeystoreFileLocation();
+
+ // then
+ assertEquals(sanitizePath("etc/keystore"), path);
+ }
+
+ @Test
+ public void shouldrccKeystorePasswordExistDefault() throws IOException {
+ // when
+ String path= fromTemporaryConfiguration().rccKeystorePasswordFileLocation();
+
+ // then
+ assertEquals(sanitizePath("etc/rcc_passwordfile"), path);
+ }
+
+ @Test
+ public void shouldTruststorePathExistDefault() throws IOException {
+ // when
+ String path= fromTemporaryConfiguration().truststorePasswordFileLocation();
+
+ // then
+ assertEquals(sanitizePath("etc/trustpasswordfile"), path);
+ }
+
+ @Test
+ public void shouldTruststorePasswordExistDefault() throws IOException {
+ // when
+ String path= fromTemporaryConfiguration().truststoreFileLocation();
+
+ // then
+ assertEquals(sanitizePath("etc/truststore.onap.client.jks"), path);
+ }
+
+ @Test
+ public void shouldHaveKeyStoreAlias() throws IOException {
+ // when
+ String alias = fromTemporaryConfiguration().keystoreAlias();
+
+ // then
+ assertEquals(alias, "tomcat");
+ }
+
+ @Test
+ public void shouldHaveEmptyPolicy() throws IOException {
+ // when
+ String policy = fromTemporaryConfiguration().rccPolicy();
+
+ // then
+ assertEquals(policy, "");
+ }
+
+ @Test
+ public void shouldNotHaveStreamId() throws IOException {
+ // when
+ String stream = fromTemporaryConfiguration().dMaaPStreamsMapping();
+
+ // then
+ assertEquals(stream, null);
+ }
private static ApplicationSettings fromTemporaryConfiguration(String... fileLines)
throws IOException {
File tempConfFile = File.createTempFile("doesNotMatter", "doesNotMatter");
diff --git a/src/test/java/org/onap/dcae/RestApiCallNodeUtilTest.java b/src/test/java/org/onap/dcae/RestApiCallNodeUtilTest.java
new file mode 100644
index 0000000..723ffea
--- /dev/null
+++ b/src/test/java/org/onap/dcae/RestApiCallNodeUtilTest.java
@@ -0,0 +1,204 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.dcaegen2.restconfcollector
+ * ================================================================================
+ * Copyright (C) 2018-2019 Huawei. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dcae;
+
+import org.junit.Test;
+import org.onap.dcae.common.*;
+
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
+import java.util.*;
+import java.util.Map;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * Created by koblosz on 07.06.18.
+ */
+public class RestApiCallNodeUtilTest {
+
+
+ @Test
+ public void testParseParameter() {
+ Map<String, String> paraMap = new HashMap<>();
+ paraMap.put(Constants.KDEFAULT_TEMP_FILENAME, null);
+ paraMap.put(Constants.KSETTING_REST_API_URL, "https://127.0.0.1:8080/rest/sample");
+ paraMap.put(Constants.KSETTING_HTTP_METHOD, "post");
+ paraMap.put(Constants.KSETTING_RESP_PREFIX, "responsePrefix");
+ paraMap.put(Constants.KSETTING_SKIP_SENDING, "false");
+ paraMap.put(Constants.KSETTING_SSE_CONNECT_URL, null);
+ paraMap.put(Constants.KSETTING_FORMAT, "json");
+
+ paraMap.put(Constants.KSETTING_REST_UNAME, null);
+ paraMap.put(Constants.KSETTING_REST_PASSWD, null);
+ paraMap.put(Constants.KDEFAULT_REQUESTBODY, null);
+
+ paraMap.put(Constants.KSETTING_AUTH_TYPE, "unspecified");
+ paraMap.put(Constants.KSETTING_CONTENT_TYPE, "application/json");
+ paraMap.put(Constants.KSETTING_OAUTH_CONSUMER_KEY, null);
+ paraMap.put(Constants.KSETTING_OAUTH_CONSUMER_SECRET, null);
+ paraMap.put(Constants.KSETTING_OAUTH_SIGNATURE_METHOD, null);
+ paraMap.put(Constants.KSETTING_OAUTH_VERSION, null);
+
+ paraMap.put(Constants.KSETTING_CUSTOMHTTP_HEADER, null);
+ paraMap.put(Constants.KSETTING_TOKENID, null);
+ paraMap.put(Constants.KSETTING_DUMP_HEADER, "false");
+ paraMap.put(Constants.KSETTING_RETURN_REQUEST_PAYLOAD, "false");
+
+ paraMap.put(Constants.KSETTING_TRUST_STORE_FILENAME, null);
+ String trustPassword = "admin";
+ paraMap.put(Constants.KSETTING_TRUST_STORE_PASSWORD, trustPassword);
+ paraMap.put(Constants.KSETTING_KEY_STORE_FILENAME, null);
+ String KeyPassword = "admin";
+ paraMap.put(Constants.KSETTING_KEY_STORE_PASSWD, KeyPassword);
+ try {
+ Parameters p = RestapiCallNodeUtil.getParameters(paraMap);
+ assertEquals(p.contentType, "application/json");
+ } catch (Exception e) {}
+
+ }
+
+ @Test
+ public void parseComplexParam() {
+ Map<String, String> paraMap = new HashMap<>();
+ paraMap.put(Constants.KDEFAULT_TEMP_FILENAME, null);
+ paraMap.put(Constants.KSETTING_REST_API_URL, "https://sonar.onap.org/component_measures?id=org.onap.dcaegen2.collectors.restconf%3Arestconfcollector&metric=coverage&selected=org.onap.dcaegen2.collectors.restconf%3Arestconfcollector%3Asrc%2Fmain%2Fjava%2Forg%2Fonap%2Fdcae%2Fcommon%2FRestapiCallNodeUtil.java");
+ paraMap.put(Constants.KSETTING_HTTP_METHOD, "post");
+ paraMap.put(Constants.KSETTING_RESP_PREFIX, "responsePrefix");
+ paraMap.put(Constants.KSETTING_SKIP_SENDING, "false");
+ paraMap.put(Constants.KSETTING_SSE_CONNECT_URL, null);
+ paraMap.put(Constants.KSETTING_FORMAT, "json");
+
+ paraMap.put(Constants.KSETTING_REST_UNAME, null);
+ paraMap.put(Constants.KSETTING_REST_PASSWD, null);
+ paraMap.put(Constants.KDEFAULT_REQUESTBODY, null);
+
+ paraMap.put(Constants.KSETTING_AUTH_TYPE, "unspecified");
+ paraMap.put(Constants.KSETTING_CONTENT_TYPE, "application/json");
+ paraMap.put(Constants.KSETTING_OAUTH_CONSUMER_KEY, null);
+ paraMap.put(Constants.KSETTING_OAUTH_CONSUMER_SECRET, null);
+ paraMap.put(Constants.KSETTING_OAUTH_SIGNATURE_METHOD, null);
+ paraMap.put(Constants.KSETTING_OAUTH_VERSION, null);
+
+ paraMap.put(Constants.KSETTING_CUSTOMHTTP_HEADER, null);
+ paraMap.put(Constants.KSETTING_TOKENID, null);
+ paraMap.put(Constants.KSETTING_DUMP_HEADER, "false");
+ paraMap.put(Constants.KSETTING_RETURN_REQUEST_PAYLOAD, "false");
+
+ paraMap.put(Constants.KSETTING_TRUST_STORE_FILENAME, null);
+ String trustPassword = "admin";
+ paraMap.put(Constants.KSETTING_TRUST_STORE_PASSWORD, trustPassword);
+ paraMap.put(Constants.KSETTING_KEY_STORE_FILENAME, null);
+ String KeyPassword = "admin";
+ paraMap.put(Constants.KSETTING_KEY_STORE_PASSWD, KeyPassword);
+ try {
+ Parameters p = RestapiCallNodeUtil.getParameters(paraMap);
+ assertEquals(p.contentType, "application/json");
+ } catch (Exception e) {}
+ }
+
+ @Test
+ public void parseinValidUrl() {
+ Map<String, String> paraMap = new HashMap<>();
+ paraMap.put(Constants.KSETTING_REST_API_URL, "");
+ try {
+ Parameters p = RestapiCallNodeUtil.getParameters(paraMap);
+ } catch (Exception e) {}
+ }
+
+ @Test
+ public void addAuthTypeTest() {
+
+ Map<String, String> paraMap = new HashMap<>();
+ paraMap.put(Constants.KDEFAULT_TEMP_FILENAME, null);
+ paraMap.put(Constants.KSETTING_REST_API_URL, "https://127.0.0.1:8080/rest/sample");
+ paraMap.put(Constants.KSETTING_HTTP_METHOD, "post");
+ paraMap.put(Constants.KSETTING_RESP_PREFIX, "responsePrefix");
+ paraMap.put(Constants.KSETTING_SKIP_SENDING, "false");
+ paraMap.put(Constants.KSETTING_SSE_CONNECT_URL, null);
+ paraMap.put(Constants.KSETTING_FORMAT, "json");
+
+ paraMap.put(Constants.KSETTING_REST_UNAME, "collector");
+ paraMap.put(Constants.KSETTING_REST_PASSWD, "collector");
+ paraMap.put(Constants.KDEFAULT_REQUESTBODY, null);
+
+ paraMap.put(Constants.KSETTING_AUTH_TYPE, "unspecified");
+ paraMap.put(Constants.KSETTING_CONTENT_TYPE, "application/json");
+ paraMap.put(Constants.KSETTING_OAUTH_CONSUMER_KEY, null);
+ paraMap.put(Constants.KSETTING_OAUTH_CONSUMER_SECRET, null);
+ paraMap.put(Constants.KSETTING_OAUTH_SIGNATURE_METHOD, null);
+ paraMap.put(Constants.KSETTING_OAUTH_VERSION, null);
+
+ paraMap.put(Constants.KSETTING_CUSTOMHTTP_HEADER, null);
+ paraMap.put(Constants.KSETTING_TOKENID, null);
+ paraMap.put(Constants.KSETTING_DUMP_HEADER, "false");
+ paraMap.put(Constants.KSETTING_RETURN_REQUEST_PAYLOAD, "false");
+
+ paraMap.put(Constants.KSETTING_TRUST_STORE_FILENAME, null);
+ String trustPassword = "admin";
+ paraMap.put(Constants.KSETTING_TRUST_STORE_PASSWORD, trustPassword);
+ paraMap.put(Constants.KSETTING_KEY_STORE_FILENAME, null);
+ String KeyPassword = "admin";
+ paraMap.put(Constants.KSETTING_KEY_STORE_PASSWD, KeyPassword);
+
+
+ Client client = ClientBuilder.newBuilder().build();
+ try {
+ Parameters p = RestapiCallNodeUtil.getParameters(paraMap);
+ p.restapiUser = "restapiUser";
+ p.restapiPassword = "restapiPassword";
+ RestapiCallNodeUtil.addAuthType(client, p);
+
+ p.restapiUser = null;
+ p.restapiPassword = null;
+ p.oAuthConsumerKey = "restapiUser";
+ p.oAuthSignatureMethod = "restapiPassword";
+ p.oAuthConsumerSecret = "someval";
+ RestapiCallNodeUtil.addAuthType(client, p);
+
+ p.authtype = AuthType.DIGEST;
+ p.restapiUser = "restapiUser";
+ p.restapiPassword = "restapiPassword";
+ RestapiCallNodeUtil.addAuthType(client, p);
+ } catch (Exception e) {}
+
+ try {
+ Parameters p = RestapiCallNodeUtil.getParameters(paraMap);
+ p.authtype = AuthType.BASIC;
+ p.restapiUser = "restapiUser";
+ p.restapiPassword = "restapiPassword";
+ RestapiCallNodeUtil.addAuthType(client, p);
+
+ } catch (Exception e) {}
+
+ try {
+ Parameters p = RestapiCallNodeUtil.getParameters(paraMap);
+ p.authtype = AuthType.OAUTH;
+ p.oAuthConsumerKey = "restapiUser";
+ p.oAuthSignatureMethod = "restapiPassword";
+ p.oAuthConsumerSecret = "someval";
+ RestapiCallNodeUtil.addAuthType(client, p);
+
+ } catch (Exception e) {}
+ }
+} \ No newline at end of file
diff --git a/src/test/java/org/onap/dcae/TLSTest.java b/src/test/java/org/onap/dcae/TLSTest.java
index ddb39ee..37505d3 100644
--- a/src/test/java/org/onap/dcae/TLSTest.java
+++ b/src/test/java/org/onap/dcae/TLSTest.java
@@ -31,8 +31,8 @@ import org.springframework.http.HttpStatus;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.when;
-import static org.onap.dcae.TLSTest.HttpsConfiguration.USERNAME;
import static org.onap.dcae.TLSTest.HttpsConfiguration.PASSWORD;
+import static org.onap.dcae.TLSTest.HttpsConfiguration.USERNAME;
public class TLSTest extends TLSTestBase {
@@ -51,6 +51,46 @@ public class TLSTest extends TLSTestBase {
}
}
+ @Nested
+ @Import(HttpsConfiguration.class)
+ class HttpsTest extends TestClassBase {
+
+
+ @Test
+ public void shouldHttpsRequestWithoutBasicAuthFail() {
+ assertThrows(Exception.class, this::makeHttpsRequest);
+ }
+
+ @Test
+ public void shouldHttpsRequestWithBasicAuthSucceed() {
+ assertEquals(HttpStatus.OK, makeHttpsRequestWithBasicAuth(USERNAME, PASSWORD).getStatusCode());
+ }
+ }
+
+ @Nested
+ @Import(HttpsConfigurationWithTLSAuthentication.class)
+ class HttpsWithTLSAuthenticationTest extends TestClassBase {
+
+ @Test
+ public void shouldHttpsRequestWithoutCertificateFail() {
+ assertThrows(Exception.class, this::makeHttpsRequest);
+ }
+ }
+
+ @Nested
+ @Import(HttpsConfigurationWithTLSAuthenticationAndBasicAuth.class)
+ class HttpsWithTLSAuthenticationAndBasicAuthTest extends TestClassBase {
+
+ @Test
+ public void shouldHttpsRequestWithoutBasicAuthFail() {
+ assertThrows(Exception.class, this::makeHttpsRequestWithClientCert);
+ }
+
+ @Test
+ public void shouldHttpsRequestWithBasicAuthSucceed() {
+ assertEquals(HttpStatus.OK, makeHttpsRequestWithClientCertAndBasicAuth(USERNAME, PASSWORD).getStatusCode());
+ }
+ }
static class HttpConfiguration extends TLSTestBase.ConfigurationBase {
@Override
@@ -66,8 +106,8 @@ public class TLSTest extends TLSTestBase {
protected void configureSettings(ApplicationSettings settings) {
when(settings.keystoreFileLocation()).thenReturn(KEYSTORE.toString());
when(settings.keystorePasswordFileLocation()).thenReturn(KEYSTORE_PASSWORD_FILE.toString());
- when(settings.rcc_keystoreFileLocation()).thenReturn(RCC_KEYSTORE.toString());
- when(settings.rcc_keystorePasswordFileLocation()).thenReturn(RCC_KEYSTORE_PASSWORD_FILE.toString());
+ when(settings.rccKeystoreFileLocation()).thenReturn(RCC_KEYSTORE.toString());
+ when(settings.rccKeystorePasswordFileLocation()).thenReturn(RCC_KEYSTORE_PASSWORD_FILE.toString());
when(settings.authorizationEnabled()).thenReturn(true);
when(settings.validAuthorizationCredentials()).thenReturn(HashMap.of(USERNAME, "$2a$10$51tDgG2VNLde5E173Ay/YO.Fq.aD.LR2Rp8pY3QAKriOSPswvGviy"));
}
@@ -80,6 +120,7 @@ public class TLSTest extends TLSTestBase {
when(settings.authorizationEnabled()).thenReturn(false);
when(settings.clientTlsAuthenticationEnabled()).thenReturn(true);
when(settings.truststoreFileLocation()).thenReturn(TRUSTSTORE.toString());
+ when(settings.authorizationEnabled()).thenReturn(true);
when(settings.truststorePasswordFileLocation()).thenReturn(TRUSTSTORE_PASSWORD_FILE.toString());
}
}
diff --git a/src/test/java/org/onap/dcae/TLSTestBase.java b/src/test/java/org/onap/dcae/TLSTestBase.java
index fdcc6e6..a35f009 100644
--- a/src/test/java/org/onap/dcae/TLSTestBase.java
+++ b/src/test/java/org/onap/dcae/TLSTestBase.java
@@ -51,8 +51,8 @@ public class TLSTestBase {
protected static final Path KEYSTORE_PASSWORD_FILE = Paths.get(RESOURCES.toString(), "passwordfile");
protected static final Path TRUSTSTORE = Paths.get(RESOURCES.toString(), "truststore");
protected static final Path TRUSTSTORE_PASSWORD_FILE = Paths.get(RESOURCES.toString(), "trustpasswordfile");
- protected static final Path RCC_KEYSTORE_PASSWORD_FILE = Paths.get(RESOURCES.toString(), "rcc_passwordfile");
- protected static final Path RCC_KEYSTORE = Paths.get(RESOURCES.toString(), "sdnc.p12");
+ protected static final Path RCC_KEYSTORE_PASSWORD_FILE = Paths.get(RESOURCES.toString(), "passwordfile");
+ protected static final Path RCC_KEYSTORE = Paths.get(RESOURCES.toString(), "keystore");
protected static abstract class ConfigurationBase {
protected final ApplicationSettings settings = Mockito.mock(ApplicationSettings.class);
diff --git a/src/test/java/org/onap/dcae/common/AdditionalHeaderWebTargetTest.java b/src/test/java/org/onap/dcae/common/AdditionalHeaderWebTargetTest.java
new file mode 100644
index 0000000..8f47899
--- /dev/null
+++ b/src/test/java/org/onap/dcae/common/AdditionalHeaderWebTargetTest.java
@@ -0,0 +1,50 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.dcaegen2.restconfcollector
+ * ================================================================================
+ * Copyright (C) 2018-2019 Huawei. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dcae.common;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import javax.ws.rs.client.WebTarget;
+import static org.mockito.Mockito.*;
+
+@RunWith(MockitoJUnitRunner.Silent.class)
+public class AdditionalHeaderWebTargetTest {
+
+
+ @Test
+ public void AdditionalHaderWebTargettestBase() {
+ WebTarget target = mock(WebTarget.class);
+ AdditionalHeaderWebTarget t = new AdditionalHeaderWebTarget(target, "aaa112", "someheader");
+ t.getConfiguration();
+ t.getUri();
+ t.getUriBuilder();
+ t.path("");
+ t.register(AdditionalHeaderWebTarget.class);
+ t.register(AdditionalHeaderWebTarget.class,0);
+ t.register(AdditionalHeaderWebTarget.class, AdditionalHeaderWebTarget.class);
+ Object obj = new Object();
+ t.register(obj);
+ t.register(obj, 0);
+ t.register(obj, AdditionalHeaderWebTarget.class);
+ }
+} \ No newline at end of file
diff --git a/src/test/java/org/onap/dcae/common/EventProcessorTest.java b/src/test/java/org/onap/dcae/common/EventProcessorTest.java
index f32cc2e..e23a3df 100644
--- a/src/test/java/org/onap/dcae/common/EventProcessorTest.java
+++ b/src/test/java/org/onap/dcae/common/EventProcessorTest.java
@@ -33,12 +33,9 @@ import org.onap.dcae.ApplicationSettings;
import org.onap.dcae.RestConfCollector;
import org.onap.dcae.common.publishing.DMaaPConfigurationParser;
import org.onap.dcae.common.publishing.EventPublisher;
-import org.onap.dcae.common.publishing.PublisherConfig;
import org.onap.dcae.controller.AccessController;
import org.onap.dcae.controller.PersistentEventConnection;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.boot.test.mock.mockito.MockBean;
import java.nio.file.Path;
@@ -87,8 +84,8 @@ public class EventProcessorTest {
when(properties.truststorePasswordFileLocation()).thenReturn(TRUSTSTORE_PASSWORD_FILE.toString());
when(properties.keystoreFileLocation()).thenReturn(KEYSTORE.toString());
when(properties.keystorePasswordFileLocation()).thenReturn(KEYSTORE_PASSWORD_FILE.toString());
- when(properties.rcc_keystoreFileLocation()).thenReturn(RCC_KEYSTORE.toString());
- when(properties.rcc_keystorePasswordFileLocation()).thenReturn(RCC_KEYSTORE_PASSWORD_FILE.toString());
+ when(properties.rccKeystoreFileLocation()).thenReturn(RCC_KEYSTORE.toString());
+ when(properties.rccKeystorePasswordFileLocation()).thenReturn(RCC_KEYSTORE_PASSWORD_FILE.toString());
JSONObject controller = new JSONObject("{\"controller_name\":\"AccessM&C\",\"controller_restapiUrl\":\"10.118.191.43:26335\",\"controller_restapiUser\":\"access\",\"controller_restapiPassword\":\"Huawei@123\",\"controller_accessTokenUrl\":\"/rest/plat/smapp/v1/oauth/token\",\"controller_accessTokenFile\":\"./etc/access-token.json\",\"controller_accessTokenMethod\":\"put\",\"controller_subsMethod\":\"post\",\"controller_subscriptionUrl\":\"/restconf/v1/operations/huawei-nce-notification-action:establish-subscription\",\"event_details\":[{\"event_name\":\"ONT_registration\",\"event_description\":\"ONTregistartionevent\",\"event_sseventUrlEmbed\":\"true\",\"event_sseventsField\":\"output.url\",\"event_sseventsUrl\":\"null\",\"event_subscriptionTemplate\":\"./etc/ont_registartion_subscription_template.json\",\"event_unSubscriptionTemplate\":\"./etc/ont_registartion_unsubscription_template.json\",\"event_ruleId\":\"777777777\"}]}");
AccessController acClr = new AccessController(controller,
properties);
diff --git a/src/test/java/org/onap/dcae/common/RestApiCallNodeTest.java b/src/test/java/org/onap/dcae/common/RestApiCallNodeTest.java
new file mode 100644
index 0000000..3534a6c
--- /dev/null
+++ b/src/test/java/org/onap/dcae/common/RestApiCallNodeTest.java
@@ -0,0 +1,131 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * org.onap.dcaegen2.restconfcollector
+ * ================================================================================
+ * Copyright (C) 2018-2019 Huawei. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.dcae.common;
+
+import com.sun.jersey.api.client.WebResource;
+import org.glassfish.jersey.client.ClientResponse;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.*;
+
+public class RestApiCallNodeTest {
+ @Test
+ public void RestApiCallNodeTestSendEmptyMessageNoTemplate() {
+ RestapiCallNode rest = new RestapiCallNode();
+ RestConfContext ctx = new RestConfContext();
+ Map<String, String> paraMap = new HashMap<>();
+ paraMap.put(Constants.KDEFAULT_TEMP_FILENAME, null);
+ paraMap.put(Constants.KSETTING_REST_API_URL, "https://127.0.0.1:8080/rest/sample");
+ paraMap.put(Constants.KSETTING_HTTP_METHOD, "post");
+ paraMap.put(Constants.KSETTING_RESP_PREFIX, "responsePrefix");
+ paraMap.put(Constants.KSETTING_SKIP_SENDING, "false");
+ paraMap.put(Constants.KSETTING_SSE_CONNECT_URL, null);
+ paraMap.put(Constants.KSETTING_FORMAT, "json");
+
+ paraMap.put(Constants.KSETTING_REST_UNAME, null);
+ paraMap.put(Constants.KSETTING_REST_PASSWD, null);
+ paraMap.put(Constants.KDEFAULT_REQUESTBODY, null);
+
+ paraMap.put(Constants.KSETTING_AUTH_TYPE, "unspecified");
+ paraMap.put(Constants.KSETTING_CONTENT_TYPE, "application/json");
+ paraMap.put(Constants.KSETTING_OAUTH_CONSUMER_KEY, null);
+ paraMap.put(Constants.KSETTING_OAUTH_CONSUMER_SECRET, null);
+ paraMap.put(Constants.KSETTING_OAUTH_SIGNATURE_METHOD, null);
+ paraMap.put(Constants.KSETTING_OAUTH_VERSION, null);
+
+ paraMap.put(Constants.KSETTING_CUSTOMHTTP_HEADER, null);
+ paraMap.put(Constants.KSETTING_TOKENID, null);
+ paraMap.put(Constants.KSETTING_DUMP_HEADER, "false");
+ paraMap.put(Constants.KSETTING_RETURN_REQUEST_PAYLOAD, "false");
+
+ paraMap.put(Constants.KSETTING_TRUST_STORE_FILENAME, null);
+ String trustPassword = "admin";
+ paraMap.put(Constants.KSETTING_TRUST_STORE_PASSWORD, trustPassword);
+ paraMap.put(Constants.KSETTING_KEY_STORE_FILENAME, null);
+ String KeyPassword = "admin";
+ paraMap.put(Constants.KSETTING_KEY_STORE_PASSWD, KeyPassword);
+
+
+ WebResource webResource = mock(WebResource.class);
+ WebResource.Builder webResourceBuilder = mock(WebResource.Builder.class);
+ ClientResponse clientResponse = mock(ClientResponse.class);
+ try {
+ Mockito.doNothing().when(webResourceBuilder).method("post");
+ when(webResource.accept(anyString())).thenReturn(webResourceBuilder);
+
+ rest.sendRequest(paraMap, ctx, 1);
+ }catch (Exception e){}
+ }
+
+ @Test
+ public void RestApiCallNodeTestSendEmptyMessageWithTemplate() {
+ RestapiCallNode rest = new RestapiCallNode();
+ RestConfContext ctx = new RestConfContext();
+ Map<String, String> paraMap = new HashMap<>();
+ paraMap.put(Constants.KDEFAULT_TEMP_FILENAME, "src/test/resources/testTemplatefile");
+ paraMap.put(Constants.KSETTING_REST_API_URL, "https://127.0.0.1:8080/rest/sample");
+ paraMap.put(Constants.KSETTING_HTTP_METHOD, "post");
+ paraMap.put(Constants.KSETTING_RESP_PREFIX, "responsePrefix");
+ paraMap.put(Constants.KSETTING_SKIP_SENDING, "false");
+ paraMap.put(Constants.KSETTING_SSE_CONNECT_URL, null);
+ paraMap.put(Constants.KSETTING_FORMAT, "json");
+
+ paraMap.put(Constants.KSETTING_REST_UNAME, null);
+ paraMap.put(Constants.KSETTING_REST_PASSWD, null);
+ paraMap.put(Constants.KDEFAULT_REQUESTBODY, null);
+
+ paraMap.put(Constants.KSETTING_AUTH_TYPE, "unspecified");
+ paraMap.put(Constants.KSETTING_CONTENT_TYPE, "application/json");
+ paraMap.put(Constants.KSETTING_OAUTH_CONSUMER_KEY, null);
+ paraMap.put(Constants.KSETTING_OAUTH_CONSUMER_SECRET, null);
+ paraMap.put(Constants.KSETTING_OAUTH_SIGNATURE_METHOD, null);
+ paraMap.put(Constants.KSETTING_OAUTH_VERSION, null);
+
+ paraMap.put(Constants.KSETTING_CUSTOMHTTP_HEADER, null);
+ paraMap.put(Constants.KSETTING_TOKENID, null);
+ paraMap.put(Constants.KSETTING_DUMP_HEADER, "false");
+ paraMap.put(Constants.KSETTING_RETURN_REQUEST_PAYLOAD, "false");
+
+ paraMap.put(Constants.KSETTING_TRUST_STORE_FILENAME, null);
+ String trustPassword = "admin";
+ paraMap.put(Constants.KSETTING_TRUST_STORE_PASSWORD, trustPassword);
+ paraMap.put(Constants.KSETTING_KEY_STORE_FILENAME, null);
+ String KeyPassword = "admin";
+ paraMap.put(Constants.KSETTING_KEY_STORE_PASSWD, KeyPassword);
+
+
+ WebResource webResource = mock(WebResource.class);
+ WebResource.Builder webResourceBuilder = mock(WebResource.Builder.class);
+ ClientResponse clientResponse = mock(ClientResponse.class);
+ try {
+ Mockito.doNothing().when(webResourceBuilder).method("post");
+ when(webResource.accept(anyString())).thenReturn(webResourceBuilder);
+
+ rest.sendRequest(paraMap, ctx, 1);
+ }catch (Exception e){}
+ }
+
+} \ No newline at end of file
diff --git a/src/test/java/org/onap/dcae/common/XmlJsonUtilTest.java b/src/test/java/org/onap/dcae/common/XmlJsonUtilTest.java
index 3cf065e..f05541f 100644
--- a/src/test/java/org/onap/dcae/common/XmlJsonUtilTest.java
+++ b/src/test/java/org/onap/dcae/common/XmlJsonUtilTest.java
@@ -43,6 +43,10 @@ public class XmlJsonUtilTest {
mm.put("result.output", "xml2json");
mm.put("result.[", "start");
mm.put("result.]", "end");
+ mm.put("result.list", "<LIST>\n" +
+ " <LITERAL VALUE=\"\"/>\n" +
+ " </LIST>");
+
try {
String str = XmlJsonUtil.getXml(mm, var);
assertEquals(str.startsWith("<"), true);
@@ -66,16 +70,19 @@ public class XmlJsonUtilTest {
@Test
public void removeEmptystructFromJson() {
- String var = "{\n" +
- "\t\"output\": \"xml2json\",\n" +
- "\t\"time\": \"2018 12:04\",\n" +
- "\t\"\": \"end\",\n" +
- "\t\"status\": \"200\"\n" +
- "}";
+ String var = "{\"name\":\"john\",\"age\":22,\"class\":\"mca\", \"data\":{}, \"arr\" : [\"some\" : {}]}";
Map<String, String> mm = new HashMap<>();
try {
String str = XmlJsonUtil.removeEmptyStructJson(var);
}catch (Exception e) {}
}
+
+ @Test
+ public void removeLastCommaJson() {
+ String var2 ="{\"name\":\"john\",\"age\":22,\"class\":\"mca\", \"data\":{}, \"arr\" : [\"some\" : {},],}";
+ try {
+ String str = XmlJsonUtil.removeLastCommaJson(var2);
+ }catch (Exception e) {}
+ }
} \ No newline at end of file
diff --git a/src/test/resources/testTemplatefile b/src/test/resources/testTemplatefile
new file mode 100755
index 0000000..8ce08dd
--- /dev/null
+++ b/src/test/resources/testTemplatefile
@@ -0,0 +1,18 @@
+${
+ "input": {
+ "encoding": "encode-json",
+ "protocol": "sse",
+ "subscription" : [
+ {
+ "topic" : "resources",
+ "object-type-infos" : [
+ {
+ "object-type" : "onu",
+ "version" : "v1"
+ }
+ ],
+ "operation" : ["create"]
+ }
+ ]
+ }
+} \ No newline at end of file