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 --- .../att/nsa/mr/client/impl/MRMetaClientTest.java | 107 +++++++++++++++++++++ .../mr/client/impl/MRSimplerBatchConsumerTest.java | 75 +++++++++++++++ .../client/impl/MRSimplerBatchPublisherTest.java | 96 ++++++++++++++++++ 3 files changed, 278 insertions(+) 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 (limited to 'src/test/java/com/att/nsa/mr') 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()); + + } + +} -- cgit 1.2.3-korg