summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authors00370346 <swarup.nayak1@huawei.com>2019-03-19 16:22:00 +0530
committers00370346 <swarup.nayak1@huawei.com>2019-03-19 19:43:26 +0530
commit82c26b5b8e7e92dfd9108684290e3a596b800e62 (patch)
tree3c7c308df7ee1b1e6637b1b9730ad662abf8c17c /src/test
parentbe11dee889f5a740d584458b62804e5fd4296e53 (diff)
Issue-ID: DCAEGEN2-1055 RestConfCollector UnitTest
Change-Id: I513ddb61d710f12ab3ccc6fca2329f3f74b4e39c Signed-off-by: s00370346 <swarup.nayak1@huawei.com>
Diffstat (limited to 'src/test')
-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
10 files changed, 555 insertions, 37 deletions
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