summaryrefslogtreecommitdiffstats
path: root/dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it
diff options
context:
space:
mode:
Diffstat (limited to 'dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it')
-rw-r--r--dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/BaseAnalyticsDMaaPIT.java109
-rw-r--r--dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/DMaaPMRPublisherImplIT.java58
-rw-r--r--dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/DMaaPMRSubscriberImplIT.java87
3 files changed, 254 insertions, 0 deletions
diff --git a/dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/BaseAnalyticsDMaaPIT.java b/dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/BaseAnalyticsDMaaPIT.java
new file mode 100644
index 0000000..5b5d0c1
--- /dev/null
+++ b/dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/BaseAnalyticsDMaaPIT.java
@@ -0,0 +1,109 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.onap.dcae.apod.analytics.dmaap.it;
+
+import org.onap.dcae.apod.analytics.dmaap.domain.config.DMaaPMRPublisherConfig;
+import org.onap.dcae.apod.analytics.dmaap.domain.config.DMaaPMRSubscriberConfig;
+import org.onap.dcae.apod.analytics.dmaap.domain.response.DMaaPMRPublisherResponse;
+import org.onap.dcae.apod.analytics.dmaap.service.publisher.DMaaPMRPublisher;
+import org.onap.dcae.apod.analytics.test.BaseDCAEAnalyticsIT;
+
+import java.util.List;
+
+import static com.google.common.collect.ImmutableList.of;
+
+/**
+ * Base class for all DCAE DMaaP Integration Tests
+ * <p>
+ * @author Rajiv Singla . Creation Date: 10/13/2016.
+ */
+public abstract class BaseAnalyticsDMaaPIT extends BaseDCAEAnalyticsIT {
+
+ // Integration Test Settings
+ protected static final String HOST_NAME = "mrlocal-mtnjftle01.homer.com";
+ protected static final Integer PORT_NUMBER = 3905;
+ protected static final String TOPIC_NAME = "com.dcae.dmaap.mtnje2.DcaeTestVESPub";
+
+ protected static final String USERNAME = "USER";
+ protected static final String PASSWORD = "PASSWORD";
+ protected static final String HTTP_PROTOCOL = "https";
+ protected static final String CONTENT_TYPE = "application/json";
+
+ protected static final int PUBLISHER_MAX_BATCH_QUEUE_SIZE = 20;
+ protected static final int PUBLISHER_MAX_RECOVERY_QUEUE_SIZE = 200;
+
+ protected static final String SUBSCRIBER_CONSUMER_ID = "123";
+ protected static final String SUBSCRIBER_CONSUMER_GROUP_NAME = "testGonsumerName-" + SUBSCRIBER_CONSUMER_ID;
+ protected static final int SUBSCRIBER_TIMEOUT_MS = 2000;
+ protected static final int SUBSCRIBER_MESSAGE_LIMIT = 20;
+
+ /**
+ * Creates Sample Publisher settings for integration testing purposes
+ *
+ * @return DMaaP MR Publisher Config
+ */
+ protected static DMaaPMRPublisherConfig getPublisherConfig() {
+ return new DMaaPMRPublisherConfig.Builder(HOST_NAME, TOPIC_NAME)
+ .setPortNumber(PORT_NUMBER)
+ .setProtocol(HTTP_PROTOCOL)
+ .setContentType(CONTENT_TYPE)
+ .setUserName(USERNAME)
+ .setUserPassword(PASSWORD)
+ .setMaxBatchSize(PUBLISHER_MAX_BATCH_QUEUE_SIZE)
+ .setMaxRecoveryQueueSize(PUBLISHER_MAX_RECOVERY_QUEUE_SIZE)
+ .build();
+ }
+
+ /**
+ * Creates Sample Subscriber settings for integration testing purposes
+ *
+ * @return DMaaP MR Subscriber Config
+ */
+ protected static DMaaPMRSubscriberConfig getSubscriberConfig(String consumerId) {
+ return new DMaaPMRSubscriberConfig.Builder(HOST_NAME, TOPIC_NAME)
+ .setPortNumber(PORT_NUMBER)
+ .setProtocol(HTTP_PROTOCOL)
+ .setContentType(CONTENT_TYPE)
+ .setUserName(USERNAME)
+ .setUserPassword(PASSWORD)
+ .setConsumerGroup(SUBSCRIBER_CONSUMER_GROUP_NAME)
+ .setConsumerId(consumerId != null ? consumerId : SUBSCRIBER_CONSUMER_ID)
+ .setTimeoutMS(SUBSCRIBER_TIMEOUT_MS)
+ .setMessageLimit(SUBSCRIBER_MESSAGE_LIMIT).build();
+ }
+
+ /**
+ * Publishes 2 sample message to DMaaP Topic for integration test purposes
+ *
+ * @param dMaaPMRPublisher DMaaP MR Publisher
+ * @return DMaaP MR Publisher Response
+ */
+ protected static DMaaPMRPublisherResponse publishTwoSampleMessages(DMaaPMRPublisher dMaaPMRPublisher) {
+ return dMaaPMRPublisher.publish(getTwoSampleMessage());
+ }
+
+ protected static List<String> getTwoSampleMessage() {
+ String message1 = "{ \"message\" : \"Test Message1\"}";
+ String message2 = "{ \"message\" : \"Test Message2\"}";
+ return of(message1, message2);
+ }
+
+}
diff --git a/dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/DMaaPMRPublisherImplIT.java b/dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/DMaaPMRPublisherImplIT.java
new file mode 100644
index 0000000..aad4f67
--- /dev/null
+++ b/dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/DMaaPMRPublisherImplIT.java
@@ -0,0 +1,58 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.onap.dcae.apod.analytics.dmaap.it;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.onap.dcae.apod.analytics.dmaap.DMaaPMRFactory;
+import org.onap.dcae.apod.analytics.dmaap.domain.response.DMaaPMRPublisherResponse;
+import org.onap.dcae.apod.analytics.dmaap.service.publisher.DMaaPMRPublisher;
+
+/**
+ * @author Rajiv Singla . Creation Date: 10/13/2016.
+ */
+@Ignore
+public class DMaaPMRPublisherImplIT extends BaseAnalyticsDMaaPIT {
+
+ private DMaaPMRPublisher dMaaPMRPublisher;
+
+ @Before
+ public void before() throws Exception {
+ DMaaPMRFactory dMaaPMRFactory = DMaaPMRFactory.create();
+ dMaaPMRPublisher = dMaaPMRFactory.createPublisher(getPublisherConfig());
+ }
+
+ @Test
+ public void testPublish() throws Exception {
+ long pendingMessageCount = publishTwoSampleMessages(dMaaPMRPublisher).getPendingMessagesCount();
+ Assert.assertTrue("Published Message Count must be 2", pendingMessageCount == 2);
+ }
+
+ @Test
+ public void testFlush() throws Exception {
+ publishTwoSampleMessages(dMaaPMRPublisher);
+ DMaaPMRPublisherResponse publisherResponse = dMaaPMRPublisher.flush();
+ Integer responseCode = publisherResponse.getResponseCode();
+ Assert.assertTrue("Server Response code must be 200", responseCode == 200);
+ }
+}
diff --git a/dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/DMaaPMRSubscriberImplIT.java b/dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/DMaaPMRSubscriberImplIT.java
new file mode 100644
index 0000000..3d6657f
--- /dev/null
+++ b/dcae-analytics-dmaap/src/test/java/org/onap/dcae/apod/analytics/dmaap/it/DMaaPMRSubscriberImplIT.java
@@ -0,0 +1,87 @@
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.onap.dcae.apod.analytics.dmaap.it;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.onap.dcae.apod.analytics.dmaap.DMaaPMRFactory;
+import org.onap.dcae.apod.analytics.dmaap.domain.response.DMaaPMRPublisherResponse;
+import org.onap.dcae.apod.analytics.dmaap.domain.response.DMaaPMRSubscriberResponse;
+import org.onap.dcae.apod.analytics.dmaap.service.publisher.DMaaPMRPublisher;
+import org.onap.dcae.apod.analytics.dmaap.service.subscriber.DMaaPMRSubscriber;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.UUID;
+
+import static org.junit.Assert.assertTrue;
+
+/**
+ * @author Rajiv Singla . Creation Date: 10/13/2016.
+ */
+@Ignore
+public class DMaaPMRSubscriberImplIT extends BaseAnalyticsDMaaPIT {
+
+ private DMaaPMRPublisher dMaaPMRPublisher;
+ private DMaaPMRSubscriber dMaaPMRSubscriber;
+
+ @Before
+ public void before() throws Exception {
+ String randomConsumerID = UUID.randomUUID().toString();
+ DMaaPMRFactory dMaaPMRFactory = DMaaPMRFactory.create();
+ dMaaPMRSubscriber = dMaaPMRFactory.createSubscriber(getSubscriberConfig(randomConsumerID));
+ dMaaPMRPublisher = dMaaPMRFactory.createPublisher(getPublisherConfig());
+ }
+
+ @After
+ public void after() throws Exception {
+ dMaaPMRSubscriber.close();
+ dMaaPMRPublisher.close();
+ }
+
+
+ @Test
+ public void testFetchMessages() throws Exception {
+
+ // This call is used to just register a brand new subscriber with DMaaP
+ DMaaPMRSubscriberResponse subscriberRegistrationResponse = dMaaPMRSubscriber.fetchMessages();
+ assertTrue("Subscriber Registration Response code must be 200 confirming subscriber was registered " +
+ "successfully", subscriberRegistrationResponse.getResponseCode() == 200);
+ assertTrue("Subscriber Registration Response must not contain any messages", subscriberRegistrationResponse
+ .getFetchedMessages().size() == 0);
+
+ // Force push couple of test messages
+ DMaaPMRPublisherResponse publisherResponse = dMaaPMRPublisher.forcePublish(getTwoSampleMessage());
+ assertTrue("Message must be posted successfully before subscriber can fetch it", publisherResponse
+ .getResponseCode() == 200);
+
+ // Now fetch messages from DMaaP
+ DMaaPMRSubscriberResponse subscriberResponse = dMaaPMRSubscriber.fetchMessages();
+ List<String> messageList = new LinkedList<>();
+ for (String message : subscriberResponse.getFetchedMessages()) {
+ messageList.add(message);
+ }
+ assertTrue("Subscriber message count must be 2", messageList.size() == 2);
+ }
+
+}