aboutsummaryrefslogtreecommitdiffstats
path: root/testsuites/performance/performance-benchmark-test/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/performance/performance-benchmark-test/src/test/java')
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexBaseBenchMarkTest.java175
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexEngineBenchmarkTest.java183
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexEventListenerTest.java126
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventBatchStatsTest.java57
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventBatchTest.java48
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorEndpointTest.java115
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorParametersHandlerTest.java325
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorParametersTest.java71
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorStatsTest.java44
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorTest.java160
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/events/InputEventTest.java68
-rw-r--r--testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/events/OutputEventTest.java70
12 files changed, 958 insertions, 484 deletions
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexBaseBenchMarkTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexBaseBenchMarkTest.java
deleted file mode 100644
index fdefd5583..000000000
--- a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexBaseBenchMarkTest.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2018 Ericsson. 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.testsuites.performance.benchmark.engine.benchmark;
-
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters;
-import org.onap.policy.apex.context.parameters.ContextParameters;
-import org.onap.policy.apex.context.parameters.SchemaParameters;
-import org.onap.policy.apex.core.engine.EngineParameters;
-import org.onap.policy.apex.core.engine.ExecutorParameters;
-import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
-import org.onap.policy.apex.model.basicmodel.concepts.ApexException;
-import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
-import org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters;
-import org.onap.policy.apex.plugins.executor.java.JavaExecutorParameters;
-import org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters;
-import org.onap.policy.apex.plugins.executor.jruby.JrubyExecutorParameters;
-import org.onap.policy.apex.plugins.executor.jython.JythonExecutorParameters;
-import org.onap.policy.apex.plugins.executor.mvel.MvelExecutorParameters;
-import org.onap.policy.apex.service.engine.event.ApexEvent;
-import org.onap.policy.apex.service.engine.runtime.ApexEventListener;
-import org.onap.policy.apex.service.engine.runtime.EngineService;
-import org.onap.policy.apex.service.engine.runtime.EngineServiceEventInterface;
-import org.onap.policy.apex.service.engine.runtime.impl.EngineServiceImpl;
-import org.onap.policy.apex.service.parameters.engineservice.EngineServiceParameters;
-import org.onap.policy.apex.testsuites.performance.benchmark.engine.runtime.ApexServiceModelUpdateTest;
-import org.slf4j.ext.XLogger;
-import org.slf4j.ext.XLoggerFactory;
-
-/**
- * The Class ApexBaseBenchMarkTest.
- */
-public class ApexBaseBenchMarkTest {
- private static final long STOP_TIME_OUT = TimeUnit.SECONDS.toMillis(30);
- private static final XLogger LOGGER = XLoggerFactory.getXLogger(ApexServiceModelUpdateTest.class);
- private static final long MAX_START_WAIT = TimeUnit.SECONDS.toMillis(10);
- private final AxArtifactKey engineServiceKey = new AxArtifactKey("Machine-1_process-1_engine-1", "0.0.0");
- private final String model;
- private final int threads;
- private final ApexEventListener listener;
- private EngineService service;
- private EngineServiceEventInterface engineServiceEventInterface;
-
-
- /**
- * Instantiates a new apex base bench mark test.
- *
- * @param model the model
- * @param threads the threads
- * @param listener the listener
- */
- public ApexBaseBenchMarkTest(final String model, final int threads, final ApexEventListener listener) {
- this.model = model;
- this.threads = threads;
- this.listener = listener;
- }
-
- /**
- * Sets the up.
- *
- * @throws Exception the exception
- */
- public void setUp() throws Exception {
- final EngineServiceParameters parameters = new EngineServiceParameters();
- parameters.setInstanceCount(threads);
- parameters.setName(engineServiceKey.getName());
- parameters.setVersion(engineServiceKey.getVersion());
- parameters.setId(100);
-
- final EngineParameters engineParameters = parameters.getEngineParameters();
- final Map<String, ExecutorParameters> executorParameterMap = engineParameters.getExecutorParameterMap();
- executorParameterMap.put("MVEL", new MvelExecutorParameters());
- executorParameterMap.put("JAVASCRIPT", new JavascriptExecutorParameters());
- executorParameterMap.put("JYTHON", new JythonExecutorParameters());
- executorParameterMap.put("JAVA", new JavaExecutorParameters());
- executorParameterMap.put("JRUBY", new JrubyExecutorParameters());
-
- final ContextParameters contextParameters = engineParameters.getContextParameters();
- final SchemaParameters schemaParameters = contextParameters.getSchemaParameters();
- schemaParameters.getSchemaHelperParameterMap().put("Avro", new AvroSchemaHelperParameters());
- schemaParameters.getSchemaHelperParameterMap().put("Java", new JavaSchemaHelperParameters());
- service = EngineServiceImpl.create(parameters);
-
- service = EngineServiceImpl.create(parameters);
- service.registerActionListener("listener", listener);
- service.updateModel(parameters.getEngineKey(), model, true);
-
- LOGGER.info("Starting EngineService ... ");
- service.startAll();
-
- final long starttime = System.currentTimeMillis();
- while (!service.isStarted() && System.currentTimeMillis() - starttime < MAX_START_WAIT) {
- ThreadUtilities.sleep(50);
- }
- if (!service.isStarted()) {
- LOGGER.error("Apex Service {} failed to start after {} ms", service.getKey(), MAX_START_WAIT);
- new ApexException("Unable to start engine service ");
- }
-
- engineServiceEventInterface = service.getEngineServiceEventInterface();
- }
-
- /**
- * Send events.
- *
- * @param events the events
- */
- public void sendEvents(final List<ApexEvent> events) {
- for (final ApexEvent event : events) {
- engineServiceEventInterface.sendEvent(event);
- }
- }
-
- /**
- * Send event.
- *
- * @param event the event
- */
- public void sendEvent(final ApexEvent event) {
- engineServiceEventInterface.sendEvent(event);
- }
-
-
- /**
- * Gets the service.
- *
- * @return the service
- */
- public EngineService getService() {
- return service;
- }
-
- /**
- * Destroy.
- *
- * @throws Exception the exception
- */
- public void destroy() throws Exception {
- if (service != null) {
- LOGGER.info("Stopping EngineService ... ");
- service.stop();
- final long currentTimeInMillSec = System.currentTimeMillis();
- while (!service.isStopped()) {
- if (System.currentTimeMillis() - currentTimeInMillSec > STOP_TIME_OUT) {
- LOGGER.warn("Timed Out EngineService status: ", service.isStopped());
- break;
- }
- ThreadUtilities.sleep(500);
- }
- service = null;
- }
- }
-
-}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexEngineBenchmarkTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexEngineBenchmarkTest.java
deleted file mode 100644
index 99035f7bf..000000000
--- a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexEngineBenchmarkTest.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.testsuites.performance.benchmark.engine.benchmark;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.concurrent.TimeUnit;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
-import org.onap.policy.apex.service.engine.event.ApexEvent;
-import org.onap.policy.apex.testsuites.integration.common.model.EvalDomainModelFactory;
-import org.onap.policy.apex.testsuites.performance.benchmark.engine.utils.Utils;
-import org.python.icu.impl.Assert;
-import org.slf4j.ext.XLogger;
-import org.slf4j.ext.XLoggerFactory;
-
-/**
- * The Class ApexEngineBenchmark.
- */
-public class ApexEngineBenchmarkTest {
- // Logger for this class
- private static final XLogger LOGGER = XLoggerFactory.getXLogger(ApexEngineBenchmarkTest.class);
-
- private static final String TARGET = "apex";
- private static final String SOURCE = "test";
- private static final String NAME = "Event0000";
- private static final String VERSION = "0.0.1";
- private static final String PACKAGE = "org.onap.policy.apex.domains.sample.events";
-
- private static final long TIME_OUT_IN_MILLISEC = TimeUnit.MINUTES.toMillis(1);
-
- private String apexEcaModelString;
- private String apexOodaModelString;
-
- /**
- * Sets the up.
- *
- * @throws Exception the exception
- */
- @Before
- public void setUp() throws Exception {
- apexEcaModelString = Utils.getModelString(new EvalDomainModelFactory().getEcaPolicyModel());
- apexOodaModelString = Utils.getModelString(new EvalDomainModelFactory().getOodaPolicyModel());
- }
-
- /**
- * Test benchmark singleton worker.
- *
- * @throws Exception the exception
- */
- @Test
- public void testBenchmark_SingletonWorker() throws Exception {
- executeTest(apexEcaModelString, 100, 1, 20);
- executeTest(apexOodaModelString, 100, 1, 20);
- }
-
- /**
- * Test benchmark 3 thread worker.
- *
- * @throws Exception the exception
- */
- @Test
- public void testBenchmark_3ThreadWorker() throws Exception {
- executeTest(apexEcaModelString, 1000, 3, 10);
- executeTest(apexOodaModelString, 100, 3, 10);
- }
-
- /**
- * Test benchmark 10 thread worker.
- *
- * @throws Exception the exception
- */
- @Test
- public void testBenchmark_10ThreadWorker() throws Exception {
- executeTest(apexEcaModelString, 2000, 10, 10);
- executeTest(apexOodaModelString, 2000, 10, 10);
- }
-
- /**
- * Test benchmark 50 thread worker.
- *
- * @throws Exception the exception
- */
- @Test
- public void testBenchmark_50ThreadWorker() throws Exception {
- executeTest(apexEcaModelString, 3000, 50, 10);
- executeTest(apexOodaModelString, 3000, 50, 10);
- }
-
- /**
- * Test available processors thread worker.
- *
- * @throws Exception the exception
- */
- @Test
- public void testAvailableProcessorsThreadWorker() throws Exception {
- final int cores = Runtime.getRuntime().availableProcessors();
- executeTest(apexEcaModelString, 3000, cores, 10);
- executeTest(apexOodaModelString, 3000, cores, 10);
- }
-
- /**
- * Execute test.
- *
- * @param policyModel the policy model
- * @param eventsCount the events count
- * @param threads the threads
- * @param loop the loop
- * @throws Exception the exception
- */
- private void executeTest(final String policyModel, final int eventsCount, final int threads, final int loop)
- throws Exception {
-
- LOGGER.info("Running Test with Event count: {}, Instance count: {} and loop: {}", eventsCount, threads, loop);
- final ApexEventListenerTest apexEventListener = new ApexEventListenerTest();
-
- final ApexBaseBenchMarkTest apexBaseBenchMarkTest =
- new ApexBaseBenchMarkTest(policyModel, threads, apexEventListener);
-
- try {
- apexBaseBenchMarkTest.setUp();
- for (int i = 0; i < loop; i++) {
- sendEvents(apexBaseBenchMarkTest, eventsCount);
- final long currentTimeInMillSec = System.currentTimeMillis();
- while (apexEventListener.getEventReceived() < eventsCount) {
- if (System.currentTimeMillis() - currentTimeInMillSec > TIME_OUT_IN_MILLISEC) {
- LOGGER.warn("Wait timed out ... ");
- break;
- }
- ThreadUtilities.sleep(500);
- }
- assertEquals(eventsCount, apexEventListener.getEventReceived());
- apexEventListener.printResult();
- apexEventListener.reset();
- }
- } catch (final Exception exception) {
- Assert.fail(exception);
- } finally {
- apexBaseBenchMarkTest.destroy();
- LOGGER.info("Finished Running Test with Event count: {}, Instance count: {} and loop: {}", eventsCount,
- threads, loop);
- }
- }
-
- /**
- * Send events.
- *
- * @param apexBaseBenchMarkTest the apex base bench mark test
- * @param eventsCount the events count
- * @throws Exception the exception
- */
- public void sendEvents(final ApexBaseBenchMarkTest apexBaseBenchMarkTest, final int eventsCount) throws Exception {
- for (int eventNum = 0; eventNum < eventsCount; eventNum++) {
- final long currentTimeMillis = System.currentTimeMillis();
- final ApexEvent event = new ApexEvent(NAME, VERSION, PACKAGE, SOURCE, TARGET);
- event.put("TestTemperature", eventNum);
- event.put("FirstEventTimestamp", currentTimeMillis);
- event.put("SentTimestamp", currentTimeMillis);
- event.put("EventNumber", eventNum);
- apexBaseBenchMarkTest.sendEvent(event);
- }
- }
-}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexEventListenerTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexEventListenerTest.java
deleted file mode 100644
index a5950df97..000000000
--- a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/engine/benchmark/ApexEventListenerTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2018 Ericsson. 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.testsuites.performance.benchmark.engine.benchmark;
-
-import static org.junit.Assert.assertNull;
-
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.atomic.AtomicLong;
-
-import org.onap.policy.apex.service.engine.event.ApexEvent;
-import org.onap.policy.apex.service.engine.runtime.ApexEventListener;
-import org.slf4j.ext.XLogger;
-import org.slf4j.ext.XLoggerFactory;
-
-/**
- * The listener interface for receiving testApexEvent events.
- * The class that is interested in processing a testApexEvent
- * event implements this interface, and the object created
- * with that class is registered with a component using the
- * component's <code>addTestApexEventListener</code> method. When
- * the testApexEvent event occurs, that object's appropriate
- * method is invoked.
- *
- * @see TestApexEventEvent
- */
-public class ApexEventListenerTest implements ApexEventListener {
-
- private static final String SENT_TIMESTAMP = "SentTimestamp";
- private static final XLogger LOGGER = XLoggerFactory.getXLogger(ApexEventListenerTest.class);
- private static final String RECVD_TIMESTAMP = "RecvdTimestamp";
- private Queue<ApexEvent> queue;
-
- private final AtomicLong eventReceived = new AtomicLong();
-
- /**
- * Instantiates a new test apex event listener.
- */
- public ApexEventListenerTest() {
- this.queue = new ConcurrentLinkedQueue<ApexEvent>();
- }
-
- /* (non-Javadoc)
- * @see org.onap.policy.apex.service.engine.runtime.ApexEventListener#onApexEventApexEvent)
- */
- @Override
- public void onApexEvent(final ApexEvent apexEvent) {
- apexEvent.put(RECVD_TIMESTAMP, System.currentTimeMillis());
- eventReceived.incrementAndGet();
- queue.add(apexEvent);
- }
-
- /**
- * Prints the result.
- */
- public void printResult() {
- if (!queue.isEmpty()) {
- long maxTimeInMilliSeconds = 0;
- long minTimeInMilliSeconds = Long.MAX_VALUE;
- final long numEvents = queue.size();
- long totalTimeInMilliSeconds = 0;
- for (final ApexEvent apexEvent : queue) {
- assertNull(apexEvent.getExceptionMessage());
- final Long endTimeInMilliSeconds = (Long) apexEvent.get(RECVD_TIMESTAMP);
- final Long startTimeInMilliSeconds = (Long) apexEvent.get(SENT_TIMESTAMP);
- final long timeTaken = endTimeInMilliSeconds - startTimeInMilliSeconds;
- totalTimeInMilliSeconds += timeTaken;
- if (timeTaken > maxTimeInMilliSeconds) {
- maxTimeInMilliSeconds = timeTaken;
- }
- if (timeTaken < minTimeInMilliSeconds) {
- minTimeInMilliSeconds = timeTaken;
- }
- }
- LOGGER.info("Average Time Taken to process {} events: {} ms", numEvents,
- (totalTimeInMilliSeconds / numEvents));
- LOGGER.info("Max Time Taken: {} ms", maxTimeInMilliSeconds);
- LOGGER.info("Min Time Taken: {} ms", minTimeInMilliSeconds);
- }
- }
-
- /**
- * Reset.
- */
- public void reset() {
- this.queue = new ConcurrentLinkedQueue<ApexEvent>();
- eventReceived.set(0);;
- }
-
- /**
- * Gets the queue.
- *
- * @return the queue
- */
- public Queue<ApexEvent> getQueue() {
- return queue;
- }
-
- /**
- * Gets the event received.
- *
- * @return the event received
- */
- public long getEventReceived() {
- return eventReceived.get();
- }
-
-}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventBatchStatsTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventBatchStatsTest.java
new file mode 100644
index 000000000..b53eb7ace
--- /dev/null
+++ b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventBatchStatsTest.java
@@ -0,0 +1,57 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+
+/**
+ * Test the EventBatchStats class.
+ *
+ */
+public class EventBatchStatsTest {
+
+ @Test
+ public void test() {
+ EventBatchStats stats = new EventBatchStats(new EventBatch(1, "Label"));
+ assertNotNull(stats);
+
+ assertTrue(stats.getBatchNumber() >= 0);
+ assertEquals(1, stats.getBatchSize());
+ assertEquals("Label", stats.getApexClient());
+
+ List<EventBatchStats> statsList = new ArrayList<>();
+ statsList.add(stats);
+
+ EventBatchStats totalStats = new EventBatchStats(statsList);
+ assertEquals(stats.getBatchSize(), totalStats.getBatchSize());
+
+ List<EventBatchStats> emptyStatsList = new ArrayList<>();
+ EventBatchStats emptyStats = new EventBatchStats(emptyStatsList);
+ assertEquals(0, emptyStats.getBatchSize());
+ }
+}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventBatchTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventBatchTest.java
new file mode 100644
index 000000000..f315f6402
--- /dev/null
+++ b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventBatchTest.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Test;
+import org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.events.InputEvent;
+
+/**
+ * Test the EventBatch class.
+ *
+ */
+public class EventBatchTest {
+
+ @Test
+ public void testEventBatch() {
+ EventBatch batch = new EventBatch(1, "TheApexClient");
+ assertNotNull(batch);
+
+ assertEquals("\"nameSpace\": \"org.onap.policy.apex.sample.events\"", batch.getBatchAsJsonString().substring(4, 53));
+
+ EventBatchStats stats = batch.getStats();
+ assertEquals(1, stats.getBatchSize());
+
+ InputEvent ie = batch.getInputEvent(0);
+ assertEquals("org.onap.policy.apex.sample.events",ie.getNameSpace());
+ }
+}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorEndpointTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorEndpointTest.java
new file mode 100644
index 000000000..2add69857
--- /dev/null
+++ b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorEndpointTest.java
@@ -0,0 +1,115 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import javax.inject.Provider;
+import javax.ws.rs.core.Response;
+
+import org.glassfish.grizzly.http.server.Request;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.policy.apex.model.basicmodel.concepts.ApexException;
+import org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.events.OutputEvent;
+
+/**
+ * Test the EventGeneratorEndpoint class.
+ *
+ */
+public class EventGeneratorEndpointTest {
+ @Mock
+ private Provider<Request> httpRequestProviderMock;
+
+ @Mock
+ private Request httpRequestMock;
+
+ /**
+ * Set up mocking of the engine service facade.
+ *
+ * @throws ApexException on engine service facade setup errors
+ */
+ @Before
+ public void initializeMocking() throws ApexException {
+ MockitoAnnotations.initMocks(this);
+
+ Mockito.doReturn(httpRequestMock).when(httpRequestProviderMock).get();
+
+ Mockito.doReturn("zooby").when(httpRequestMock).getRemoteHost();
+ Mockito.doReturn(12345).when(httpRequestMock).getRemotePort();
+
+ }
+
+ @Test
+ public void testEventGeneratorEndpointGetStats() {
+ EventGeneratorEndpoint.clearEventGenerationStats();
+ EventGeneratorEndpoint.setFinished(false);
+
+ EventGeneratorEndpoint egep = new EventGeneratorEndpoint(null);
+ assertNotNull(egep);
+
+ Response stats = egep.serviceGetStats();
+ assertEquals(200, stats.getStatus());
+ }
+
+ @Test
+ public void testEventGeneratorEndpointGetEventsZeroBatchCount() {
+ EventGeneratorParameters incomingParameters = new EventGeneratorParameters();
+ incomingParameters.setBatchCount(1);
+
+ EventGeneratorEndpoint.setParameters(incomingParameters);
+ EventGeneratorEndpoint.clearEventGenerationStats();
+ EventGeneratorEndpoint.setFinished(false);
+
+ EventGeneratorEndpoint egep = new EventGeneratorEndpoint(httpRequestProviderMock);
+ assertNotNull(egep);
+
+ Response events = egep.getEvents();
+ assertEquals(200, events.getStatus());
+
+ incomingParameters.setBatchCount(1);
+ events = egep.getEvents();
+ assertEquals(204, events.getStatus());
+ }
+
+ @Test
+ public void testEventGeneratorEndpointPostBadEvent() {
+ EventGeneratorParameters incomingParameters = new EventGeneratorParameters();
+ incomingParameters.setBatchCount(1);
+
+ EventGeneratorEndpoint.setParameters(incomingParameters);
+ EventGeneratorEndpoint.clearEventGenerationStats();
+ EventGeneratorEndpoint.setFinished(false);
+
+ EventGeneratorEndpoint egep = new EventGeneratorEndpoint(httpRequestProviderMock);
+ assertNotNull(egep);
+
+ OutputEvent oe = new OutputEvent();
+ oe.setTestSlogan("99-99: Whatever");
+
+ Response events = egep.postEventResponse(oe.asJson());
+ assertEquals(409, events.getStatus());
+ }
+}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorParametersHandlerTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorParametersHandlerTest.java
new file mode 100644
index 000000000..dd8766dc3
--- /dev/null
+++ b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorParametersHandlerTest.java
@@ -0,0 +1,325 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
+import org.apache.commons.cli.ParseException;
+import org.junit.Test;
+import org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.EventGenerator;
+import org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.EventGeneratorParameterHandler;
+import org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.EventGeneratorParameters;
+
+/**
+ * Test event generator parameters.
+ */
+public class EventGeneratorParametersHandlerTest {
+
+ @Test
+ public void testEventGeneratorParameterhandler() {
+ EventGeneratorParameterHandler handler = new EventGeneratorParameterHandler();
+ assertNotNull(handler);
+
+ try {
+ String[] args =
+ { "-h" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertNull(parameters);
+ assertEquals("usage: EventGenerator [options...]",
+ handler.getHelp(EventGenerator.class.getSimpleName()).substring(0, 34));
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ {};
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertEquals("localhost", parameters.getHost());
+ assertEquals(32801, parameters.getPort());
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-H", "MyHost" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertEquals("MyHost", parameters.getHost());
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-p", "12345" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertEquals(12345, parameters.getPort());
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-H", "MyHost", "-p", "12345" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertEquals("MyHost", parameters.getHost());
+ assertEquals(12345, parameters.getPort());
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/Valid.json" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertEquals("ValidPars", parameters.getName());
+ assertEquals("FileHost", parameters.getHost());
+ assertEquals(54321, parameters.getPort());
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/Default.json" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertEquals("localhost", parameters.getHost());
+ assertEquals(32801, parameters.getPort());
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/Default.json", "-bc", "100" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertEquals(100, parameters.getBatchCount());
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/Default.json", "-bc", "-1" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("specified parameters are not valid: parameter group \"EventGeneratorParameters\" "
+ + "type \"org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator."
+ + "EventGeneratorParameters\" INVALID, parameter group has status INVALID\n"
+ + " field \"batchCount\" type \"int\" value \"-1\" INVALID, "
+ + "batchCount must be an integer with a value of zero or more, "
+ + "zero means generate batches forever\n", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/Default.json", "-bs", "12345" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertEquals(12345, parameters.getBatchSize());
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/Default.json", "-bs", "0" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("specified parameters are not valid: parameter group \"EventGeneratorParameters\" "
+ + "type \"org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator."
+ + "EventGeneratorParameters\" INVALID, parameter group has status INVALID\n"
+ + " field \"batchSize\" type \"int\" value \"0\" INVALID, "
+ + "batchSize must be an integer greater than zero\n", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/Default.json", "-bd", "1000" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertEquals(1000, parameters.getDelayBetweenBatches());
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/Default.json", "-bd", "-1" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("specified parameters are not valid: parameter group \"EventGeneratorParameters\" "
+ + "type \"org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator."
+ + "EventGeneratorParameters\" INVALID, parameter group has status INVALID\n"
+ + " field \"batchSize\" type \"int\" value \"1\" INVALID, "
+ + "batchSize must be an integer with a value of zero or more\n", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/Default.json", "-o", "Zooby" };
+ EventGeneratorParameters parameters = handler.parse(args);
+ assertEquals("Zooby", parameters.getOutFile());
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-z" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("Unrecognized option: -z", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-H" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("Missing argument for option: H", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-p" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("Missing argument for option: p", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-p", "12345", "-z" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("Unrecognized option: -z", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-p", "12345", "somethingElse" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("too many command line arguments specified : [somethingElse]", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-c" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("Missing argument for option: c", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-H", "MyHost", "-c", "src/test/resources/parameters/unit/Valid.json" };
+ EventGeneratorParameters pars = handler.parse(args);
+ assertEquals("MyHost", pars.getHost());
+
+ } catch (ParseException pe) {
+ fail("test should not throw an exception");
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/NonExistant.json" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("Could not read parameters from configuration file "
+ + "\"src/test/resources/parameters/unit/NonExistant.json\": "
+ + "src/test/resources/parameters/unit/NonExistant.json", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/BadHost.json" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("Error parsing JSON parameters from configuration file "
+ + "\"src/test/resources/parameters/unit/BadHost.json\": "
+ + "com.google.gson.stream.MalformedJsonException: "
+ + "Unexpected value at line 3 column 14 path $.host", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/BadPort.json" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("Error parsing JSON parameters from configuration file "
+ + "\"src/test/resources/parameters/unit/BadPort.json\": "
+ + "java.lang.IllegalStateException: Expected an int "
+ + "but was BOOLEAN at line 4 column 18 path $.port", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/Empty.json" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("No parameters found in configuration file "
+ + "\"src/test/resources/parameters/unit/Empty.json\"", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-c", "src/test/resources/parameters/unit/NullHost.json" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("specified parameters are not valid: parameter group \"ValidPars\" "
+ + "type \"org.onap.policy.apex.testsuites.performance."
+ + "benchmark.eventgenerator.EventGeneratorParameters\" INVALID, "
+ + "parameter group has status INVALID\n" + " field \"host\" type \"java.lang.String\" "
+ + "value \"null\" INVALID, host must be a non-blank string\n", pe.getMessage());
+ }
+
+ try {
+ String[] args =
+ { "-p", "1023" };
+ handler.parse(args);
+ fail("test should throw an exception");
+ } catch (ParseException pe) {
+ assertEquals("specified parameters are not valid: parameter group \""
+ + "EventGeneratorParameters\" type \"org.onap.policy.apex.testsuites.performance.benchmark."
+ + "eventgenerator.EventGeneratorParameters\" INVALID, parameter group has status INVALID\n"
+ + " field \"port\" type \"int\" value \"1023\" INVALID, "
+ + "port must be an integer between 1024 and 65535 inclusive\n" + "", pe.getMessage());
+ }
+ }
+}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorParametersTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorParametersTest.java
new file mode 100644
index 000000000..1071c2f8e
--- /dev/null
+++ b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorParametersTest.java
@@ -0,0 +1,71 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.EventGeneratorParameters;
+
+/**
+ * Test event generator parameters.
+ */
+public class EventGeneratorParametersTest {
+
+ @Test
+ public void testEventGeneratorParameters() {
+ EventGeneratorParameters parameters = new EventGeneratorParameters();
+
+ parameters.setName("TheName");
+ assertEquals("TheName", parameters.getName());
+
+ parameters.setHost("TheHost");
+ assertEquals("TheHost", parameters.getHost());
+
+ parameters.setPort(12345);
+ assertEquals(12345, parameters.getPort());
+
+ assertTrue(parameters.isValid());
+
+ parameters.setName(null);
+ assertFalse(parameters.isValid());
+ parameters.setName(" ");
+ assertFalse(parameters.isValid());
+ parameters.setName("TheName");
+ assertTrue(parameters.isValid());
+
+ parameters.setHost(null);
+ assertFalse(parameters.isValid());
+ parameters.setHost(" ");
+ assertFalse(parameters.isValid());
+ parameters.setHost("TheHost");
+ assertTrue(parameters.isValid());
+
+ parameters.setPort(1023);
+ assertFalse(parameters.isValid());
+ parameters.setPort(65536);
+ assertFalse(parameters.isValid());
+ parameters.setPort(12345);
+ assertTrue(parameters.isValid());
+ }
+}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorStatsTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorStatsTest.java
new file mode 100644
index 000000000..a40bcb5f1
--- /dev/null
+++ b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorStatsTest.java
@@ -0,0 +1,44 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.junit.Test;
+
+/**
+ * Test the EventGeneratorStats class.
+ *
+ */
+public class EventGeneratorStatsTest {
+ @Test
+ public void testEventGeneratorStats() {
+ Map<Integer, EventBatch> batchMap = new LinkedHashMap<>();
+ EventGeneratorStats egs = new EventGeneratorStats(batchMap );
+ assertNotNull(egs);
+
+ assertEquals(-1, egs.getTotalStats().getBatchNumber());
+ }
+}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorTest.java
new file mode 100644
index 000000000..e37ea963c
--- /dev/null
+++ b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/EventGeneratorTest.java
@@ -0,0 +1,160 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2016-2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.PrintStream;
+
+import org.junit.Test;
+import org.onap.policy.apex.core.infrastructure.threading.ThreadUtilities;
+import org.onap.policy.apex.model.basicmodel.concepts.ApexException;
+import org.onap.policy.apex.service.engine.main.ApexMain;
+import org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.EventGenerator;
+import org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.EventGeneratorParameters;
+
+/**
+ * This class tests the event generator.
+ */
+public class EventGeneratorTest {
+ private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
+
+ private final PrintStream stdout = System.out;
+
+ /**
+ * Test event generation.
+ *
+ * @throws ApexException on Apex exceptions
+ */
+ @Test
+ public void testEventGeneration() throws ApexException {
+ EventGeneratorParameters pars = new EventGeneratorParameters();
+ pars.setBatchCount(1);
+ pars.setBatchSize(10);
+
+ EventGenerator eventGenerator = new EventGenerator(pars);
+
+ final String[] args =
+ { "-rfr", "target", "-c", "target/examples/config/SampleDomain/REST2RESTJsonEventJavascript.json" };
+
+ final ApexMain apexMain = new ApexMain(args);
+
+ while (!eventGenerator.isFinished()) {
+ ThreadUtilities.sleep(200);
+ }
+
+ apexMain.shutdown();
+
+ ThreadUtilities.sleep(5000);
+ eventGenerator.tearDown();
+
+ assertTrue(eventGenerator.getEventGenerationStats().contains("\"apexClient\": \"TOTAL\""));
+ }
+
+ @Test
+ public void testEventGeneratorBadParams() {
+ System.setOut(new PrintStream(outContent));
+
+ final String[] args =
+ { "-zzz" };
+
+ EventGenerator.main(args);
+
+ final String outString = outContent.toString();
+
+ System.setOut(stdout);
+
+ assertTrue(outString.contains("Start of event generator failed: Unrecognized option: -zzz"));
+ }
+
+ @Test
+ public void testEventGeneratorHelp() {
+ System.setOut(new PrintStream(outContent));
+
+ final String[] args = {
+ "-h"
+ };
+
+ EventGenerator.main(args);
+
+ final String outString = outContent.toString();
+
+ System.setOut(stdout);
+
+ assertTrue(outString.contains("outputs the usage of this command"));
+ }
+
+ @Test
+ public void testEventGeneratorStart() {
+
+ System.setOut(new PrintStream(outContent));
+
+ (new Thread() {
+ public void run() {
+ EventGenerator.main(null);
+ }
+ }).start();
+
+ ThreadUtilities.sleep(1000);
+ final String outString = outContent.toString();
+
+ System.setOut(stdout);
+
+ assertTrue(outString.contains("Event generator started"));
+ assertTrue(outString.contains("Event generator shut down"));
+ }
+
+ @Test
+ public void testEventGeneratorOutfileGood() {
+ EventGeneratorParameters pars =new EventGeneratorParameters();
+ pars.setOutFile("target/statsOutFile.json");
+
+ EventGenerator generator = new EventGenerator(pars);
+ assertNotNull(generator);
+
+ generator.tearDown();
+
+ File outFile = new File("target/statsOutFile.json");
+ assertTrue(outFile.exists());
+ outFile.delete();
+ }
+
+ @Test
+ public void testEventGeneratorOutfileBad() {
+ EventGeneratorParameters pars = new EventGeneratorParameters();
+ pars.setOutFile("/I/Dont/Exist");
+
+ EventGenerator generator = new EventGenerator(pars);
+ assertNotNull(generator);
+
+ System.setOut(new PrintStream(outContent));
+
+ generator.tearDown();
+
+ final String outString = outContent.toString();
+ System.setOut(stdout);
+
+ assertTrue(outString.contains("could not output statistics to file \"/I/Dont/Exist\""));
+ }
+}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/events/InputEventTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/events/InputEventTest.java
new file mode 100644
index 000000000..82b4cca88
--- /dev/null
+++ b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/events/InputEventTest.java
@@ -0,0 +1,68 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.events;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Test;
+
+/**
+ * Test the InputEvent class.
+ *
+ */
+public class InputEventTest {
+
+ @Test
+ public void testInputEvent() {
+ InputEvent ie = new InputEvent();
+ assertNotNull(ie);
+
+ ie.setName("EventName");
+ assertEquals("EventName", ie.getName());
+
+ ie.setNameSpace("a.b.c.d");
+ assertEquals("a.b.c.d", ie.getNameSpace());
+
+ ie.setSource("Source");
+ assertEquals("Source", ie.getSource());
+
+ ie.setTarget("Target");
+ assertEquals("Target", ie.getTarget());
+
+ ie.setTestMatchCase(123);
+ assertEquals(123, ie.getTestMatchCase());
+
+ ie.setTestSlogan("A Slogan");
+ assertEquals("A Slogan", ie.getTestSlogan());
+
+ ie.setTestTemperature(123.45);
+ assertEquals((Double)123.45, (Double)ie.getTestTemperature());
+
+ ie.setTestTimestamp(1234567879);
+ assertEquals(1234567879, ie.getTestTimestamp());
+
+ ie.setVersion("1.2.3");
+ assertEquals("1.2.3", ie.getVersion());
+
+ assertEquals("\"nameSpace\": \"a.b.c.d\",", ie.asJson().substring(4, 27));
+ }
+}
diff --git a/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/events/OutputEventTest.java b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/events/OutputEventTest.java
new file mode 100644
index 000000000..8af87ddbd
--- /dev/null
+++ b/testsuites/performance/performance-benchmark-test/src/test/java/org/onap/policy/apex/testsuites/performance/benchmark/eventgenerator/events/OutputEventTest.java
@@ -0,0 +1,70 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.apex.testsuites.performance.benchmark.eventgenerator.events;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Test;
+
+/**
+ * Test the OutputEvent class.
+ *
+ */
+public class OutputEventTest {
+
+ @Test
+ public void test() {
+ OutputEvent oe = new OutputEvent();
+ assertNotNull(oe);
+
+ oe.setTestMatchCaseSelected(32112);
+ assertEquals(32112, oe.getTestMatchCaseSelected());
+
+ oe.setTestMatchStateTime(34455778822L);
+ assertEquals(34455778822L, oe.getTestMatchStateTime());
+
+ oe.setTestEstablishCaseSelected(1321);
+ assertEquals(1321, oe.getTestEstablishCaseSelected());
+
+ oe.setTestEstablishStateTime(13445566778822L);
+ assertEquals(13445566778822L, oe.getTestEstablishStateTime());
+
+ oe.setTestDecideCaseSelected(321);
+ assertEquals(321, oe.getTestDecideCaseSelected());
+
+ oe.setTestDecideStateTime(3445566778822L);
+ assertEquals(3445566778822L, oe.getTestDecideStateTime());
+
+ oe.setTestActCaseSelected(332);
+ assertEquals(332, oe.getTestActCaseSelected());
+
+ oe.setTestActStateTime(34455667788L);
+ assertEquals(34455667788L, oe.getTestActStateTime());
+
+ oe.setTestReceviedTimestamp(134455667788222L);
+ assertEquals(134455667788222L, oe.getTestReceviedTimestamp());
+
+ oe.setTestSlogan("0-0: Whatever");
+ assertEquals(0, oe.findBatchNumber());
+ assertEquals(0, oe.findEventNumber());
+ }
+}