summaryrefslogtreecommitdiffstats
path: root/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test')
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/AccessControlFilterTest.java76
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerAafFilterTest.java37
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumerTest.java62
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerProducerTest.java49
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/resources/logback-test.xml30
5 files changed, 216 insertions, 38 deletions
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/AccessControlFilterTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/AccessControlFilterTest.java
new file mode 100644
index 000000000..3efe054ad
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/AccessControlFilterTest.java
@@ -0,0 +1,76 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.plugins.event.carrier.restserver;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+
+public class AccessControlFilterTest {
+
+ private AccessControlFilter acf;
+
+ @Mock
+ private ContainerRequestContext requestContext;
+ @Mock
+ private ContainerResponseContext responseContext;
+
+ @Before
+ public void beforeEach() {
+ MockitoAnnotations.initMocks(this);
+ acf = new AccessControlFilter();
+ }
+
+ @Test
+ public void filterAddToExisting() throws IOException {
+ // prepare mocks
+ final String origin = RandomStringUtils.randomAlphanumeric(14, 16);
+ final MultivaluedHashMap<String, Object> map = new MultivaluedHashMap<>();
+ Mockito.when(requestContext.getHeaderString("Origin")).thenReturn(origin);
+ Mockito.when(responseContext.getHeaders()).thenReturn(map);
+
+ // prepare expected
+ final MultivaluedMap<String, Object> expected = new MultivaluedHashMap<>();
+ expected.add("Access-Control-Allow-Origin", origin);
+ expected.add("Access-Control-Expose-Headers", "Content-Type, Accept, Allow");
+ expected.add("Access-Control-Allow-Headers", "Origin, Content-Type, Accept");
+ expected.add("Access-Control-Allow-Credentials", "true");
+ expected.add("Access-Control-Allow-Methods", "OPTIONS, GET, POST, PUT");
+
+
+ // test
+ acf.filter(requestContext, responseContext);
+ final MultivaluedMap<String, Object> actual = responseContext.getHeaders();
+
+ assertEquals(expected, actual);
+ }
+} \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerAafFilterTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerAafFilterTest.java
new file mode 100644
index 000000000..dfa19e577
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerAafFilterTest.java
@@ -0,0 +1,37 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation.
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.plugins.event.carrier.restserver;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+public class ApexRestServerAafFilterTest {
+
+ @Test
+ public void testGetPermissionTypeRoot() {
+ final ApexRestServerAafFilter filter = new ApexRestServerAafFilter();
+
+ final String permissionTypeRoot = filter.getPermissionTypeRoot();
+
+ assertEquals("org.onap.policy.apex-rest-server", permissionTypeRoot);
+ }
+} \ No newline at end of file
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumerTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumerTest.java
index 91d6a0f4e..9fc5b502d 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumerTest.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumerTest.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019 Samsung. All rights reserved.
- * Modifications Copyright (C) 2019-2020 Nordix Foundation.
+ * Modifications Copyright (C) 2019-2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,9 +22,12 @@
package org.onap.policy.apex.plugins.event.carrier.restserver;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import java.io.IOException;
import java.lang.reflect.Field;
import javax.ws.rs.core.Response;
import org.junit.After;
@@ -38,6 +41,8 @@ import org.onap.policy.apex.service.engine.event.SynchronousEventCache;
import org.onap.policy.apex.service.parameters.carriertechnology.CarrierTechnologyParameters;
import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters;
import org.onap.policy.apex.service.parameters.eventhandler.EventHandlerPeeredMode;
+import org.onap.policy.common.endpoints.http.server.HttpServletServer;
+import org.onap.policy.common.utils.network.NetworkUtil;
public class ApexRestServerConsumerTest {
@@ -82,12 +87,9 @@ public class ApexRestServerConsumerTest {
}
@Test(expected = ApexEventException.class)
- public void testInitWithSynchronousMode() throws ApexEventException, NoSuchFieldException,
- SecurityException, IllegalArgumentException, IllegalAccessException {
+ public void testInitWithSynchronousMode() throws ApexEventException, SecurityException, IllegalArgumentException {
restServerCarrierTechnologyParameters = new RestServerCarrierTechnologyParameters();
- Field field = RestServerCarrierTechnologyParameters.class.getDeclaredField("standalone");
- field.setAccessible(true);
- field.set(restServerCarrierTechnologyParameters, true);
+ restServerCarrierTechnologyParameters.setStandalone(true);
consumerParameters.setCarrierTechnologyParameters(restServerCarrierTechnologyParameters);
consumerParameters.setPeeredMode(EventHandlerPeeredMode.SYNCHRONOUS, true);
apexRestServerConsumer.init("TestApexRestServerConsumer", consumerParameters,
@@ -96,20 +98,14 @@ public class ApexRestServerConsumerTest {
@Test(expected = IllegalArgumentException.class)
public void testInitWithSynchronousModeAndProperValues()
- throws ApexEventException, NoSuchFieldException, SecurityException,
- IllegalArgumentException, IllegalAccessException {
+ throws ApexEventException, SecurityException, IllegalArgumentException {
restServerCarrierTechnologyParameters = new RestServerCarrierTechnologyParameters();
- Field field = RestServerCarrierTechnologyParameters.class.getDeclaredField("standalone");
- field.setAccessible(true);
- field.set(restServerCarrierTechnologyParameters, true);
- field = RestServerCarrierTechnologyParameters.class.getDeclaredField("host");
- field.setAccessible(true);
- field.set(restServerCarrierTechnologyParameters, "1ocalhost");
- field = RestServerCarrierTechnologyParameters.class.getDeclaredField("port");
- field.setAccessible(true);
- field.set(restServerCarrierTechnologyParameters, 65535);
+ restServerCarrierTechnologyParameters.setStandalone(true);
+ restServerCarrierTechnologyParameters.setHost("1ocalhost");
+ restServerCarrierTechnologyParameters.setPort(65535);
+
consumerParameters.setCarrierTechnologyParameters(restServerCarrierTechnologyParameters);
consumerParameters.setPeeredMode(EventHandlerPeeredMode.SYNCHRONOUS, true);
@@ -118,6 +114,30 @@ public class ApexRestServerConsumerTest {
}
@Test
+ public void testInitAndStop() throws ApexEventException, IOException {
+ restServerCarrierTechnologyParameters = new RestServerCarrierTechnologyParameters();
+
+ restServerCarrierTechnologyParameters.setStandalone(true);
+ restServerCarrierTechnologyParameters.setHost("localhost");
+ // get any available port
+ final int availableTcpPort = NetworkUtil.allocPort();
+ restServerCarrierTechnologyParameters.setPort(availableTcpPort);
+
+ consumerParameters.setCarrierTechnologyParameters(restServerCarrierTechnologyParameters);
+ consumerParameters.setPeeredMode(EventHandlerPeeredMode.SYNCHRONOUS, true);
+ apexRestServerConsumer.init("TestApexRestServerConsumer", consumerParameters,
+ incomingEventReceiver);
+ HttpServletServer server = apexRestServerConsumer.getServer();
+
+ // check if server is alive
+ assertTrue(server.isAlive());
+
+ apexRestServerConsumer.stop();
+ // check if server is stopped
+ assertFalse(server.isAlive());
+ }
+
+ @Test
public void testGetName() {
assertNull(apexRestServerConsumer.getName());
}
@@ -154,16 +174,12 @@ public class ApexRestServerConsumerTest {
ApexEventReceiver apexEventReceiver = new SupportApexEventReceiver();
- Field field = ApexRestServerConsumer.class.getDeclaredField("eventReceiver");
- field.setAccessible(true);
- field.set(apexRestServerConsumer, apexEventReceiver);
- field = ApexPluginsEventConsumer.class.getDeclaredField("name");
+ apexRestServerConsumer.setEventReceiver(apexEventReceiver);
+ Field field = ApexPluginsEventConsumer.class.getDeclaredField("name");
field.setAccessible(true);
field.set(apexRestServerConsumer, "TestApexRestServerConsumer");
apexRestServerConsumer.receiveEvent("TestApexRestServerConsumer");
}
-
-
}
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerProducerTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerProducerTest.java
index 4ee8e3591..34992ff1d 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerProducerTest.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerProducerTest.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019 Samsung. All rights reserved.
- * Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2019-2021 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,10 +22,14 @@
package org.onap.policy.apex.plugins.event.carrier.restserver;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
import java.lang.reflect.Field;
+import java.util.Random;
+import org.apache.commons.lang3.RandomStringUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -45,6 +49,7 @@ public class ApexRestServerProducerTest {
ApexRestServerConsumer apexRestServerConsumer = null;
RestServerCarrierTechnologyParameters restServerCarrierTechnologyParameters = null;
SynchronousEventCache synchronousEventCache = null;
+ Random random = new Random();
/**
* Set up testing.
@@ -118,4 +123,46 @@ public class ApexRestServerProducerTest {
peeredReference);
assertNotNull(apexRestServerProducer.getPeeredReference(EventHandlerPeeredMode.REQUESTOR));
}
+
+ @Test
+ public void testSendEventNotExistingEventToApex() {
+ final long executionId = random.nextLong();
+ final String eventName = RandomStringUtils.randomAlphabetic(7);
+ final Object event = new Object();
+ final ApexRestServerConsumer consumer = new ApexRestServerConsumer();
+ final SynchronousEventCache cache =
+ new SynchronousEventCache(EventHandlerPeeredMode.SYNCHRONOUS, consumer, apexRestServerProducer,
+ random.nextInt(1000));
+
+ this.apexRestServerProducer.setPeeredReference(EventHandlerPeeredMode.SYNCHRONOUS, cache);
+
+ // test
+ this.apexRestServerProducer.sendEvent(executionId, null, eventName, event);
+
+ assertFalse(cache.existsEventFromApex(executionId));
+ }
+
+ @Test
+ public void testSendEvent() {
+ final long executionId = random.nextLong();
+ final String eventName = RandomStringUtils.randomAlphabetic(7);
+ final Object expected = new Object();
+
+ final ApexRestServerConsumer consumer = new ApexRestServerConsumer();
+ final SynchronousEventCache cache = new SynchronousEventCache(
+ EventHandlerPeeredMode.SYNCHRONOUS,
+ consumer,
+ apexRestServerProducer,
+ 10000);
+
+ // Set EventToApex on cache object
+ cache.cacheSynchronizedEventToApex(executionId, new Object());
+
+ this.apexRestServerProducer.setPeeredReference(EventHandlerPeeredMode.SYNCHRONOUS, cache);
+
+ this.apexRestServerProducer.sendEvent(executionId, null, eventName, expected);
+ final Object actual = cache.removeCachedEventFromApexIfExists(executionId);
+
+ assertSame(expected, actual);
+ }
}
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/resources/logback-test.xml b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/resources/logback-test.xml
index 43440971a..00aa0d2d1 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/resources/logback-test.xml
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/resources/logback-test.xml
@@ -2,19 +2,20 @@
<!--
============LICENSE_START=======================================================
Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ Modifications Copyright (C) 2021 Nordix Foundation.
================================================================================
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.
-
+
SPDX-License-Identifier: Apache-2.0
============LICENSE_END=========================================================
-->
@@ -25,10 +26,18 @@
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<property name="LOG_DIR" value="${java.io.tmpdir}/apex_logging/" />
+ <!-- DUMMY APPENDER FOR TESTS ONLY -->
+ <appender name="NOP" class="ch.qos.logback.core.helpers.NOPAppender"/>
+
<!-- USE FOR STD OUT ONLY -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>INFO</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
<encoder>
- <Pattern>%d %contextName [%t] %level %logger{36} - %msg%n</Pattern>
+ <Pattern>%d %level %msg%n</Pattern>
</encoder>
</appender>
@@ -36,15 +45,8 @@
<appender-ref ref="STDOUT" />
</root>
- <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${LOG_DIR}/apex.log</file>
- <encoder>
- <pattern>%d %-5relative [procId=${processId}] [%thread] %-5level
- %logger{26} - %msg %n %ex{full}</pattern>
- </encoder>
- </appender>
-
- <logger name="org.onap.policy.apex.plugins.event.carrier.restserver" level="info" additivity="false">
- <appender-ref ref="STDOUT" />
+ <logger name="org.onap.policy.apex.plugins.event.carrier.restserver" level="debug" additivity="false">
+ <appender-ref ref="NOP"/>
+ <appender-ref ref="STDOUT"/>
</logger>
</configuration>