aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/plugins-event
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/plugins-event')
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumer.java5
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java5
-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
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/src/test/java/org/onap/policy/apex/plugins/event/protocol/xml/XmlEventHandlerTest.java57
-rw-r--r--plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/src/test/java/org/onap/policy/apex/plugins/event/protocol/xml/XmlEventProtocolParametersTest.java40
-rw-r--r--plugins/plugins-event/pom.xml6
10 files changed, 328 insertions, 39 deletions
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumer.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumer.java
index 80ccda729..3bfde18e3 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumer.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/ApexRestServerConsumer.java
@@ -24,6 +24,9 @@ package org.onap.policy.apex.plugins.event.carrier.restserver;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicLong;
import javax.ws.rs.core.Response;
+import lombok.AccessLevel;
+import lombok.Getter;
+import lombok.Setter;
import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
import org.onap.policy.apex.service.engine.event.ApexEventException;
import org.onap.policy.apex.service.engine.event.ApexEventReceiver;
@@ -50,9 +53,11 @@ public class ApexRestServerConsumer extends ApexPluginsEventConsumer {
private static final long REST_SERVER_CONSUMER_WAIT_SLEEP_TIME = 50;
// The event receiver that will receive events from this consumer
+ @Setter(AccessLevel.PACKAGE)
private ApexEventReceiver eventReceiver;
// The local HTTP server to use for REST call reception if we are running a local Grizzly server
+ @Getter(AccessLevel.PACKAGE)
private HttpServletServer server;
// Holds the next identifier for event execution.
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java
index 42613bcf8..afc07da95 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java
@@ -21,7 +21,9 @@
package org.onap.policy.apex.plugins.event.carrier.restserver;
+import lombok.AccessLevel;
import lombok.Getter;
+import lombok.Setter;
import org.onap.policy.apex.service.parameters.carriertechnology.CarrierTechnologyParameters;
import org.onap.policy.common.parameters.GroupValidationResult;
import org.onap.policy.common.parameters.ValidationStatus;
@@ -58,8 +60,11 @@ public class RestServerCarrierTechnologyParameters extends CarrierTechnologyPara
public static final String RESTSERVER_EVENT_CONSUMER_PLUGIN_CLASS = ApexRestServerConsumer.class.getName();
// REST server parameters
+ @Setter(AccessLevel.PACKAGE)
private boolean standalone = false;
+ @Setter(AccessLevel.PACKAGE)
private String host = null;
+ @Setter(AccessLevel.PACKAGE)
private int port = -1;
private String userName;
private String password;
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>
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/src/test/java/org/onap/policy/apex/plugins/event/protocol/xml/XmlEventHandlerTest.java b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/src/test/java/org/onap/policy/apex/plugins/event/protocol/xml/XmlEventHandlerTest.java
index caa3bd06f..609b0471b 100644
--- a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/src/test/java/org/onap/policy/apex/plugins/event/protocol/xml/XmlEventHandlerTest.java
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/src/test/java/org/onap/policy/apex/plugins/event/protocol/xml/XmlEventHandlerTest.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2020 Nordix Foundation.
+ * Modifications Copyright (C) 2020-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.
@@ -29,9 +29,13 @@ import static org.junit.Assert.assertTrue;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
+import java.util.Random;
+import org.apache.commons.lang3.RandomStringUtils;
import org.junit.Test;
import org.onap.policy.apex.model.basicmodel.concepts.ApexException;
import org.onap.policy.apex.service.engine.event.ApexEvent;
+import org.onap.policy.apex.service.engine.event.ApexEventException;
+import org.onap.policy.apex.service.engine.event.ApexEventRuntimeException;
import org.slf4j.ext.XLogger;
import org.slf4j.ext.XLoggerFactory;
@@ -44,6 +48,44 @@ public class XmlEventHandlerTest {
private static final XLogger logger = XLoggerFactory.getXLogger(XmlEventHandlerTest.class);
/**
+ * Test XML to apex event. Null value is passed as parameter.
+ *
+ * @throws ApexException on Apex event handling errors
+ */
+ @Test(expected = ApexException.class)
+ public void testApexEventToApexNullObject() throws ApexException {
+ final Apex2XmlEventConverter xmlEventConverter = new Apex2XmlEventConverter();
+ // This is only for code coverage stats. This method does nothing
+ xmlEventConverter.init(null);
+
+ xmlEventConverter.toApexEvent("XMLEventName", null);
+ }
+
+ /**
+ * Test XML to apex event. There is no string passed as parameter.
+ *
+ * @throws ApexException on Apex event handling errors
+ */
+ @Test(expected = ApexEventRuntimeException.class)
+ public void testApexEventToApexNotString() throws ApexException {
+ final Apex2XmlEventConverter xmlEventConverter = new Apex2XmlEventConverter();
+
+ xmlEventConverter.toApexEvent("XMLEventName", new Random().nextInt());
+ }
+
+ /**
+ * Test not valid XML to apex event.
+ *
+ * @throws ApexException on Apex event handling errors
+ */
+ @Test(expected = ApexException.class)
+ public void testApexEventToApexNotXml() throws ApexException {
+ final Apex2XmlEventConverter xmlEventConverter = new Apex2XmlEventConverter();
+
+ xmlEventConverter.toApexEvent("XMLEventName", RandomStringUtils.randomAlphabetic(25));
+ }
+
+ /**
* Test XML to apex event.
*
* @throws ApexException on Apex event handling errors
@@ -80,6 +122,17 @@ public class XmlEventHandlerTest {
}
/**
+ * Test null as apex event to xml.
+ *
+ * @throws ApexEventException on Apex event handling errors
+ */
+ @Test(expected = ApexEventException.class)
+ public void testApexEventToXmlNullEvent() throws ApexEventException {
+ final Apex2XmlEventConverter xmlEventConverter = new Apex2XmlEventConverter();
+ xmlEventConverter.fromApexEvent(null);
+ }
+
+ /**
* Test apex event to xml.
*
* @throws ApexException on Apex event handling errors
@@ -96,6 +149,7 @@ public class XmlEventHandlerTest {
event0000DataMap.put("TestMatchCase", 12345);
event0000DataMap.put("TestTimestamp", event0000StartTime.getTime());
event0000DataMap.put("TestTemperature", 34.5445667);
+ event0000DataMap.put("NullValue", null);
final ApexEvent apexEvent0000 =
new ApexEvent("Event0000", "0.0.1", "org.onap.policy.apex.sample.events", "test", "apex");
@@ -109,6 +163,7 @@ public class XmlEventHandlerTest {
assertTrue(apexEvent0000XmlString.contains("<version>0.0.1</version>"));
assertTrue(apexEvent0000XmlString.contains("<value>This is a test slogan</value>"));
assertTrue(apexEvent0000XmlString.contains("<value>12345</value>"));
+ assertTrue(apexEvent0000XmlString.contains("<value></value>"));
assertTrue(apexEvent0000XmlString.contains("<value>" + event0000StartTime.getTime() + "</value>"));
assertTrue(apexEvent0000XmlString.contains("<value>34.5445667</value>"));
diff --git a/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/src/test/java/org/onap/policy/apex/plugins/event/protocol/xml/XmlEventProtocolParametersTest.java b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/src/test/java/org/onap/policy/apex/plugins/event/protocol/xml/XmlEventProtocolParametersTest.java
new file mode 100644
index 000000000..27fd22095
--- /dev/null
+++ b/plugins/plugins-event/plugins-event-protocol/plugins-event-protocol-xml/src/test/java/org/onap/policy/apex/plugins/event/protocol/xml/XmlEventProtocolParametersTest.java
@@ -0,0 +1,40 @@
+/*-
+ * ============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.protocol.xml;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+public class XmlEventProtocolParametersTest {
+
+ /**
+ * Test object creation.
+ */
+ @Test
+ public void instantiationTest() {
+ final XmlEventProtocolParameters parameters = new XmlEventProtocolParameters();
+
+ assertEquals(XmlEventProtocolParameters.XML_EVENT_PROTOCOL_LABEL, parameters.getLabel());
+ assertEquals("<?xml", parameters.getStartDelimiterToken());
+ assertEquals(Apex2XmlEventConverter.class.getName(), parameters.getEventProtocolPluginClass());
+ }
+} \ No newline at end of file
diff --git a/plugins/plugins-event/pom.xml b/plugins/plugins-event/pom.xml
index 45b23f91b..e375b54be 100644
--- a/plugins/plugins-event/pom.xml
+++ b/plugins/plugins-event/pom.xml
@@ -1,6 +1,7 @@
<!--
============LICENSE_START=======================================================
Copyright (C) 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.
@@ -38,6 +39,11 @@
<artifactId>services-engine</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<modules>