From 5b7869e3cf9fc3a5c09c14ba94f2d9341523c7b6 Mon Sep 17 00:00:00 2001 From: rn509j Date: Tue, 3 Oct 2017 11:07:22 -0400 Subject: commiting code for test coverage DMAAP-149 Signed-off-by: rn509j Change-Id: Ibbb8b44a67f6ba9f5361874df444ef9e31ce7bed --- .checkstyle | 24 ----- .classpath | 36 ------- .project | 29 ------ .settings/org.eclipse.core.resources.prefs | 6 -- .settings/org.eclipse.jdt.core.prefs | 5 - .settings/org.eclipse.m2e.core.prefs | 4 - pom.xml | 14 +++ .../att/nsa/mr/client/impl/MRMetaClientTest.java | 107 +++++++++++++++++++++ .../mr/client/impl/MRSimplerBatchConsumerTest.java | 75 +++++++++++++++ .../client/impl/MRSimplerBatchPublisherTest.java | 96 ++++++++++++++++++ src/test/resources/dme2/consumer.properties | 56 +++++++++++ src/test/resources/dme2/message.txt | 2 + src/test/resources/dme2/preferredRoute.txt | 1 + src/test/resources/dme2/producer.properties | 54 +++++++++++ 14 files changed, 405 insertions(+), 104 deletions(-) delete mode 100644 .checkstyle delete mode 100644 .classpath delete mode 100644 .project delete mode 100644 .settings/org.eclipse.core.resources.prefs delete mode 100644 .settings/org.eclipse.jdt.core.prefs delete mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 src/test/java/com/att/nsa/mr/client/impl/MRMetaClientTest.java create mode 100644 src/test/java/com/att/nsa/mr/client/impl/MRSimplerBatchConsumerTest.java create mode 100644 src/test/java/com/att/nsa/mr/client/impl/MRSimplerBatchPublisherTest.java create mode 100644 src/test/resources/dme2/consumer.properties create mode 100644 src/test/resources/dme2/message.txt create mode 100644 src/test/resources/dme2/preferredRoute.txt create mode 100644 src/test/resources/dme2/producer.properties diff --git a/.checkstyle b/.checkstyle deleted file mode 100644 index 7adf1e6..0000000 --- a/.checkstyle +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.classpath b/.classpath deleted file mode 100644 index 33c6220..0000000 --- a/.classpath +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.project b/.project deleted file mode 100644 index 10a2e6d..0000000 --- a/.project +++ /dev/null @@ -1,29 +0,0 @@ - - - dmaapClient - - - - - - org.eclipse.jdt.core.javabuilder - - - - - net.sf.eclipsecs.core.CheckstyleBuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - net.sf.eclipsecs.core.CheckstyleNature - org.eclipse.m2e.core.maven2Nature - - diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 04cfa2c..0000000 --- a/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding//src/test/resources=UTF-8 -encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index bbcbc93..0000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index 14b697b..0000000 --- a/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/pom.xml b/pom.xml index 7f2d47d..4fbb007 100644 --- a/pom.xml +++ b/pom.xml @@ -154,6 +154,20 @@ 4.11 test + + + com.github.tomakehurst + wiremock + 2.5.0 + test + + + org.mockito + mockito-all + 1.9.5 + test + + diff --git a/src/test/java/com/att/nsa/mr/client/impl/MRMetaClientTest.java b/src/test/java/com/att/nsa/mr/client/impl/MRMetaClientTest.java new file mode 100644 index 0000000..dc2214f --- /dev/null +++ b/src/test/java/com/att/nsa/mr/client/impl/MRMetaClientTest.java @@ -0,0 +1,107 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ +package com.att.nsa.mr.client.impl; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.Collection; +import java.util.LinkedList; +import java.util.Set; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +import static com.github.tomakehurst.wiremock.client.WireMock.*; + +import com.att.nsa.apiClient.http.HttpException; +import com.att.nsa.apiClient.http.HttpObjectNotFoundException; +import com.att.nsa.mr.client.MRTopicManager.TopicInfo; +import com.github.tomakehurst.wiremock.junit.WireMockRule; + + +public class MRMetaClientTest { + + @Rule public WireMockRule wireMock = new WireMockRule(); + + @Before + public void setUp(){ + wireMock.stubFor(get(urlEqualTo("/topics")) + .willReturn(aResponse().withBody("{\"topics\":[\"topic1\",\"topic2\"]}").withHeader("Content-Type", "application/json"))); + wireMock.stubFor(get(urlEqualTo("/topics/topic1")) + .willReturn(aResponse().withBody("{\"topics\":[\"topic1\",\"topic2\"]}").withHeader("Content-Type", "application/json"))); + wireMock.stubFor(post(urlEqualTo("/topics/create")) + .willReturn(aResponse().withStatus(200))); + } + + @Test + public void getTopicsTest() + { + final Collection hosts = new LinkedList (); + hosts.add ( "localhost:" + wireMock.port() ); + + MRMetaClient c; + try { + c = new MRMetaClient(hosts); + Set setString=c.getTopics(); + } catch (IOException e) { + e.printStackTrace(); + } + + + // assertEquals ("http://localhost:8080/events/" + "topic/cg/cid", url ); + + } + + @Test + public void getTopicMetadataTest() { + final Collection hosts = new LinkedList (); + hosts.add ( "localhost:" + wireMock.port() ); + + final String topic ="topic1"; + + MRMetaClient c; + try { + c = new MRMetaClient(hosts); + TopicInfo topicInfo=c.getTopicMetadata(topic); + } catch (IOException | HttpObjectNotFoundException e) { + e.printStackTrace(); + } + + } + + @Test + public void testcreateTopic(){ + final Collection hosts = new LinkedList (); + hosts.add ( "localhost:" + wireMock.port() ); + + MRMetaClient c; + try { + c = new MRMetaClient(hosts); + c.createTopic("topic1", "testTopic", 1, 1); + } catch (IOException | HttpException e) { + e.printStackTrace(); + } + } + + +} diff --git a/src/test/java/com/att/nsa/mr/client/impl/MRSimplerBatchConsumerTest.java b/src/test/java/com/att/nsa/mr/client/impl/MRSimplerBatchConsumerTest.java new file mode 100644 index 0000000..ba4bb12 --- /dev/null +++ b/src/test/java/com/att/nsa/mr/client/impl/MRSimplerBatchConsumerTest.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ + +package com.att.nsa.mr.client.impl; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.List; +import java.util.Properties; +import java.util.concurrent.TimeUnit; + +import org.json.JSONObject; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.att.nsa.mr.client.MRClientFactory; +import com.att.nsa.mr.client.MRConsumer; +import com.att.nsa.mr.client.MRPublisher.message; +import com.att.nsa.mr.client.response.MRPublisherResponse; + +public class MRSimplerBatchConsumerTest { + + File outFile; + @Before + public void setUp() throws Exception { + Properties properties = new Properties(); + properties.load(MRSimplerBatchConsumerTest.class.getClassLoader().getResourceAsStream("dme2/consumer.properties")); + + String routeFilePath="dme2/preferredRoute.txt"; + + File file = new File(MRSimplerBatchConsumerTest.class.getClassLoader().getResource(routeFilePath).getFile()); + properties.put("DME2preferredRouterFilePath", MRSimplerBatchConsumerTest.class.getClassLoader().getResource(routeFilePath).getFile()); + + outFile = new File(file.getParent() + "/consumer_tmp.properties"); + properties.store(new FileOutputStream(outFile), ""); + } + + @Test + public void testSend() throws IOException, InterruptedException { + + final MRConsumer cc = MRClientFactory.createConsumer(outFile.getPath()); + + try { + for(String msg : cc.fetch()){ + System.out.println(msg); + } + } catch (Exception e) { + System.err.println ( e.getClass().getName () + ": " + e.getMessage () ); + } + + } + +} diff --git a/src/test/java/com/att/nsa/mr/client/impl/MRSimplerBatchPublisherTest.java b/src/test/java/com/att/nsa/mr/client/impl/MRSimplerBatchPublisherTest.java new file mode 100644 index 0000000..5b8d580 --- /dev/null +++ b/src/test/java/com/att/nsa/mr/client/impl/MRSimplerBatchPublisherTest.java @@ -0,0 +1,96 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * + *******************************************************************************/ + +package com.att.nsa.mr.client.impl; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.List; +import java.util.Properties; +import java.util.concurrent.TimeUnit; + +import org.json.JSONObject; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.att.nsa.mr.client.MRClientFactory; +import com.att.nsa.mr.client.MRPublisher.message; +import com.att.nsa.mr.client.response.MRPublisherResponse; + +public class MRSimplerBatchPublisherTest { + + File outFile; + @Before + public void setUp() throws Exception { + Properties properties = new Properties(); + properties.load(MRSimplerBatchPublisherTest.class.getClassLoader().getResourceAsStream("dme2/producer.properties")); + + String routeFilePath="dme2/preferredRoute.txt"; + + File file = new File(MRSimplerBatchPublisherTest.class.getClassLoader().getResource(routeFilePath).getFile()); + properties.put("DME2preferredRouterFilePath", MRSimplerBatchPublisherTest.class.getClassLoader().getResource(routeFilePath).getFile()); + + outFile = new File(file.getParent() + "/producer_tmp.properties"); + properties.store(new FileOutputStream(outFile), ""); + } + + @Test + public void testSend() throws IOException, InterruptedException { + + final MRSimplerBatchPublisher pub = (MRSimplerBatchPublisher)MRClientFactory.createBatchingPublisher(outFile.getPath()); + + //publish some messages + final JSONObject msg1 = new JSONObject (); + pub.send ( "MyPartitionKey", msg1.toString () ); + + final List stuck = pub.close ( 1, TimeUnit.SECONDS ); + if ( stuck.size () > 0 ) { + System.out.println( stuck.size() + " messages unsent" ); + } + else + { + System.out.println ( "Clean exit; all messages sent." ); + } + + + } + + @Test + public void testSendBatchWithResponse() throws IOException, InterruptedException { + + final MRSimplerBatchPublisher pub = (MRSimplerBatchPublisher)MRClientFactory.createBatchingPublisher(outFile.getPath(), true); + + //publish some messages + final JSONObject msg1 = new JSONObject (); + pub.send ( "MyPartitionKey", msg1.toString () ); + MRPublisherResponse pubResponse = new MRPublisherResponse(); + pub.setPubResponse(pubResponse); + + MRPublisherResponse mrPublisherResponse = pub.sendBatchWithResponse(); + Assert.assertEquals(1, mrPublisherResponse.getPendingMsgs()); + + } + +} diff --git a/src/test/resources/dme2/consumer.properties b/src/test/resources/dme2/consumer.properties new file mode 100644 index 0000000..ffae91b --- /dev/null +++ b/src/test/resources/dme2/consumer.properties @@ -0,0 +1,56 @@ +############################################################################### +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# 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========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# +############################################################################### +TransportType=DME2 +Latitude =47.778998 +Longitude =-122.182883 +Version =1.0 +ServiceName =dmaap-v1.dev.dmaap.dt.saat.acsi.att.com/events +Environment =TEST +Partner=BOT_R +routeOffer=MR1 +SubContextPath =/ +Protocol =http +MethodType =GET +username = +password = +contenttype =application/json +authKey= +authDate=2016-02-18T13:57:37-0800 +#host=uebsb91bodc.it.att.com:3904 +host=olsd004.wnsnet.attws.com:3904 +topic=com.att.ecomp_test.crm.preDemo1 +group=con +id=5 +timeout=15000 +limit=1000 +filter= +AFT_DME2_EXCHANGE_REQUEST_HANDLERS=com.att.nsa.test.PreferredRouteRequestHandler +AFT_DME2_EXCHANGE_REPLY_HANDLERS=com.att.nsa.test.PreferredRouteReplyHandler +AFT_DME2_REQ_TRACE_ON=true +AFT_ENVIRONMENT=AFTUAT +AFT_DME2_EP_CONN_TIMEOUT=15000 +AFT_DME2_ROUNDTRIP_TIMEOUT_MS=240000 +AFT_DME2_EP_READ_TIMEOUT_MS=50000 +sessionstickinessrequired=NO +#DME2preferredRouterFilePath=/src/main/resources/dme2/preferredRoute.txt + + diff --git a/src/test/resources/dme2/message.txt b/src/test/resources/dme2/message.txt new file mode 100644 index 0000000..99e97ec --- /dev/null +++ b/src/test/resources/dme2/message.txt @@ -0,0 +1,2 @@ +this is a test file for producer +this ia a sample file \ No newline at end of file diff --git a/src/test/resources/dme2/preferredRoute.txt b/src/test/resources/dme2/preferredRoute.txt new file mode 100644 index 0000000..662b0aa --- /dev/null +++ b/src/test/resources/dme2/preferredRoute.txt @@ -0,0 +1 @@ +preferredRouteKey=MR1 \ No newline at end of file diff --git a/src/test/resources/dme2/producer.properties b/src/test/resources/dme2/producer.properties new file mode 100644 index 0000000..0da6880 --- /dev/null +++ b/src/test/resources/dme2/producer.properties @@ -0,0 +1,54 @@ +############################################################################### +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# 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========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# +############################################################################### +TransportType=DME2 +Latitude =47.778998 +Longitude =-122.182883 +Version =1.0 +ServiceName =dmaap-v1.dev.dmaap.dt.saat.acsi.att.com/events +#com.att.acsi.saat.dt.dmaap.dev.mrclientnew1 +Environment =TEST +Partner=BOT_R +routeOffer=MR1 +SubContextPath =/ +Protocol =http +MethodType =POST +username =user +password =password +contenttype = application/json +authKey= +authDate=2016-07-20T11:30:56-0700 +host=localhost:9000 +topic=com.att.ecomp_test.crm.preDemo1 +#host=uebsb91bodc.it.att.com:3904 +partition=1 +maxBatchSize=100 +maxAgeMs=250 +AFT_DME2_EXCHANGE_REQUEST_HANDLERS=com.att.nsa.test.PreferredRouteRequestHandler +AFT_DME2_EXCHANGE_REPLY_HANDLERS=com.att.nsa.test.PreferredRouteReplyHandler +AFT_DME2_REQ_TRACE_ON=true +AFT_ENVIRONMENT=AFTUAT +AFT_DME2_EP_CONN_TIMEOUT=15000 +AFT_DME2_ROUNDTRIP_TIMEOUT_MS=240000 +AFT_DME2_EP_READ_TIMEOUT_MS=50000 +sessionstickinessrequired=NO +#DME2preferredRouterFilePath=C:/Users/rn509j/ONAP/dmaapclient/target/classes/dme2/preferredRoute.txt +MessageSentThreadOccurance=50 -- cgit 1.2.3-korg