Sonar Critical Fix
[dcaegen2/analytics/tca.git] / dcae-analytics-dmaap / src / test / java / org / openecomp / dcae / apod / analytics / dmaap / it / BaseAnalyticsDMaaPIT.java
1 /*\r
2  * ===============================LICENSE_START======================================\r
3  *  dcae-analytics\r
4  * ================================================================================\r
5  *    Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  *  Licensed under the Apache License, Version 2.0 (the "License");\r
8  *  you may not use this file except in compliance with the License.\r
9  *   You may obtain a copy of the License at\r
10  *\r
11  *          http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  *  Unless required by applicable law or agreed to in writing, software\r
14  *  distributed under the License is distributed on an "AS IS" BASIS,\r
15  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  *  See the License for the specific language governing permissions and\r
17  *  limitations under the License.\r
18  *  ============================LICENSE_END===========================================\r
19  */\r
20 \r
21 package org.openecomp.dcae.apod.analytics.dmaap.it;\r
22 \r
23 import org.openecomp.dcae.apod.analytics.dmaap.domain.config.DMaaPMRPublisherConfig;\r
24 import org.openecomp.dcae.apod.analytics.dmaap.domain.config.DMaaPMRSubscriberConfig;\r
25 import org.openecomp.dcae.apod.analytics.dmaap.domain.response.DMaaPMRPublisherResponse;\r
26 import org.openecomp.dcae.apod.analytics.dmaap.service.publisher.DMaaPMRPublisher;\r
27 import org.openecomp.dcae.apod.analytics.test.BaseDCAEAnalyticsIT;\r
28 \r
29 import java.util.List;\r
30 \r
31 import static com.google.common.collect.ImmutableList.of;\r
32 \r
33 /**\r
34  * Base class for all DCAE DMaaP Integration Tests\r
35  * <p>\r
36  * @author Rajiv Singla . Creation Date: 10/13/2016.\r
37  */\r
38 public abstract class BaseAnalyticsDMaaPIT extends BaseDCAEAnalyticsIT {\r
39 \r
40     // Integration Test Settings\r
41     protected static final String HOST_NAME = "mrlocal-mtnjftle01.homer.com";\r
42     protected static final Integer PORT_NUMBER = 3905;\r
43     protected static final String TOPIC_NAME = "com.dcae.dmaap.mtnje2.DcaeTestVESPub";\r
44 \r
45     protected static final String USERNAME = "USER";\r
46     protected static final String PASSWORD = "PASSWORD";\r
47     protected static final String HTTP_PROTOCOL = "https";\r
48     protected static final String CONTENT_TYPE = "application/json";\r
49 \r
50     protected static final int PUBLISHER_MAX_BATCH_QUEUE_SIZE = 20;\r
51     protected static final int PUBLISHER_MAX_RECOVERY_QUEUE_SIZE = 200;\r
52 \r
53     protected static final String SUBSCRIBER_CONSUMER_ID = "123";\r
54     protected static final String SUBSCRIBER_CONSUMER_GROUP_NAME = "testGonsumerName-" + SUBSCRIBER_CONSUMER_ID;\r
55     protected static final int SUBSCRIBER_TIMEOUT_MS = 2000;\r
56     protected static final int SUBSCRIBER_MESSAGE_LIMIT = 20;\r
57 \r
58     /**\r
59      * Creates Sample Publisher settings for integration testing purposes\r
60      *\r
61      * @return DMaaP MR Publisher Config\r
62      */\r
63     protected static DMaaPMRPublisherConfig getPublisherConfig() {\r
64         return new DMaaPMRPublisherConfig.Builder(HOST_NAME, TOPIC_NAME)\r
65                 .setPortNumber(PORT_NUMBER)\r
66                 .setProtocol(HTTP_PROTOCOL)\r
67                 .setContentType(CONTENT_TYPE)\r
68                 .setUserName(USERNAME)\r
69                 .setUserPassword(PASSWORD)\r
70                 .setMaxBatchSize(PUBLISHER_MAX_BATCH_QUEUE_SIZE)\r
71                 .setMaxRecoveryQueueSize(PUBLISHER_MAX_RECOVERY_QUEUE_SIZE)\r
72                 .build();\r
73     }\r
74 \r
75     /**\r
76      * Creates Sample Subscriber settings for integration testing purposes\r
77      *\r
78      * @return DMaaP MR Subscriber Config\r
79      */\r
80     protected static DMaaPMRSubscriberConfig getSubscriberConfig(String consumerId) {\r
81         return new DMaaPMRSubscriberConfig.Builder(HOST_NAME, TOPIC_NAME)\r
82                 .setPortNumber(PORT_NUMBER)\r
83                 .setProtocol(HTTP_PROTOCOL)\r
84                 .setContentType(CONTENT_TYPE)\r
85                 .setUserName(USERNAME)\r
86                 .setUserPassword(PASSWORD)\r
87                 .setConsumerGroup(SUBSCRIBER_CONSUMER_GROUP_NAME)\r
88                 .setConsumerId(consumerId != null ? consumerId : SUBSCRIBER_CONSUMER_ID)\r
89                 .setTimeoutMS(SUBSCRIBER_TIMEOUT_MS)\r
90                 .setMessageLimit(SUBSCRIBER_MESSAGE_LIMIT).build();\r
91     }\r
92 \r
93     /**\r
94      * Publishes 2 sample message to DMaaP Topic for integration test purposes\r
95      *\r
96      * @param dMaaPMRPublisher DMaaP MR Publisher\r
97      * @return DMaaP MR Publisher Response\r
98      */\r
99     protected static DMaaPMRPublisherResponse publishTwoSampleMessages(DMaaPMRPublisher dMaaPMRPublisher) {\r
100         return dMaaPMRPublisher.publish(getTwoSampleMessage());\r
101     }\r
102 \r
103     protected static List<String> getTwoSampleMessage() {\r
104         String message1 = "{ \"message\" : \"Test Message1\"}";\r
105         String message2 = "{ \"message\" : \"Test Message2\"}";\r
106         return of(message1, message2);\r
107     }\r
108 \r
109 }\r