diff options
Diffstat (limited to 'src/test/java/org/onap/dmaap/mr/test/support')
6 files changed, 604 insertions, 283 deletions
diff --git a/src/test/java/org/onap/dmaap/mr/test/support/JUnitTestSuite.java b/src/test/java/org/onap/dmaap/mr/test/support/JUnitTestSuite.java index 3c3b4c8..d244f34 100644 --- a/src/test/java/org/onap/dmaap/mr/test/support/JUnitTestSuite.java +++ b/src/test/java/org/onap/dmaap/mr/test/support/JUnitTestSuite.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -21,7 +23,6 @@ package org.onap.dmaap.mr.test.support; import junit.framework.TestSuite; - import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @@ -29,17 +30,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @RunWith(Suite.class) -@SuiteClasses({ MRBatchingPublisherMockTest.class, MRConsumerMockTest.class,}) +@SuiteClasses({MRBatchingPublisherMockTest.class, MRConsumerMockTest.class,}) public class JUnitTestSuite { - private static final Logger LOGGER = LoggerFactory.getLogger(JUnitTestSuite.class); + private static final Logger logger = LoggerFactory.getLogger(JUnitTestSuite.class); + + public static void main(String[] args) { + logger.info("Running the test suite"); - public static void main(String[] args) { - LOGGER.info("Running the test suite"); - - TestSuite tstSuite = new TestSuite(); - LOGGER.info("Total Test Counts " + tstSuite.countTestCases()); - } + TestSuite tstSuite = new TestSuite(); + logger.info("Total Test Counts " + tstSuite.countTestCases()); + } } diff --git a/src/test/java/org/onap/dmaap/mr/test/support/MRBatchingPublisherMock.java b/src/test/java/org/onap/dmaap/mr/test/support/MRBatchingPublisherMock.java new file mode 100644 index 0000000..beaf9e9 --- /dev/null +++ b/src/test/java/org/onap/dmaap/mr/test/support/MRBatchingPublisherMock.java @@ -0,0 +1,167 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ + * 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 org.onap.dmaap.mr.test.support; + +import org.onap.dmaap.mr.client.MRBatchingPublisher; +import org.onap.dmaap.mr.client.response.MRPublisherResponse; +import org.slf4j.Logger; + +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * A helper for unit testing systems that use a MRPublisher. When setting + * up your test, inject an instance into MRClientFactory to have it return + * the mock client. + * + * @author author + */ +public class MRBatchingPublisherMock implements MRBatchingPublisher { + public class Entry { + public Entry(String partition, String msg) { + fPartition = partition; + fMessage = msg; + } + + @Override + public String toString() { + return fMessage; + } + + public final String fPartition; + public final String fMessage; + } + + public MRBatchingPublisherMock() { + fCaptures = new LinkedList<>(); + } + + public interface Listener { + void onMessage(Entry e); + } + + public void addListener(Listener listener) { + fListeners.add(listener); + } + + public List<Entry> getCaptures() { + return getCaptures(new MessageFilter() { + @Override + public boolean match(String msg) { + return true; + } + }); + } + + public interface MessageFilter { + boolean match(String msg); + } + + public List<Entry> getCaptures(MessageFilter filter) { + final LinkedList<Entry> result = new LinkedList<>(); + for (Entry capture : fCaptures) { + if (filter.match(capture.fMessage)) { + result.add(capture); + } + } + return result; + } + + public int received() { + return fCaptures.size(); + } + + public void reset() { + fCaptures.clear(); + } + + @Override + public int send(String partition, String msg) { + final Entry e = new Entry(partition, msg); + + fCaptures.add(e); + for (Listener l : fListeners) { + l.onMessage(e); + } + return 1; + } + + @Override + public int send(Message msg) { + return send(msg.fPartition, msg.fMsg); + } + + @Override + public int send(String msg) { + return 1; + + } + + @Override + public int send(Collection<Message> msgs) { + int sum = 0; + for (Message m : msgs) { + sum += send(m); + } + return sum; + } + + @Override + public int getPendingMessageCount() { + return 0; + } + + @Override + public List<Message> close(long timeout, TimeUnit timeoutUnits) { + return new LinkedList<>(); + } + + @Override + public void close() { + } + + @Override + public void setApiCredentials(String apiKey, String apiSecret) { + } + + @Override + public void clearApiCredentials() { + } + + @Override + public void logTo(Logger log) { + } + + private final LinkedList<Entry> fCaptures; + private LinkedList<Listener> fListeners = new LinkedList<>(); + + @Override + public MRPublisherResponse sendBatchWithResponse() { + // TODO Auto-generated method stub + return null; + } +} diff --git a/src/test/java/org/onap/dmaap/mr/test/support/MRBatchingPublisherMockTest.java b/src/test/java/org/onap/dmaap/mr/test/support/MRBatchingPublisherMockTest.java index af76c52..1de5bcb 100644 --- a/src/test/java/org/onap/dmaap/mr/test/support/MRBatchingPublisherMockTest.java +++ b/src/test/java/org/onap/dmaap/mr/test/support/MRBatchingPublisherMockTest.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -20,166 +22,165 @@ package org.onap.dmaap.mr.test.support; -import static org.junit.Assert.assertTrue; - -import java.util.ArrayList; - import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.onap.dmaap.mr.client.MRPublisher.Message; -import org.onap.dmaap.mr.client.MRPublisher.message; +import java.util.ArrayList; + +import static org.junit.Assert.assertTrue; public class MRBatchingPublisherMockTest { - private MRBatchingPublisherMock pub = null; + private MRBatchingPublisherMock pub = null; + + private MRBatchingPublisherMock.Entry entry = null; + + @Before + public void setUp() throws Exception { + pub = new MRBatchingPublisherMock(); + entry = pub.new Entry("partition", "msg"); + + } + + @After + public void tearDown() throws Exception { + + } + + @Test + public void testToString() { + + entry.toString(); + assertTrue(true); + + } + + @Test + public void testAddListener() { + + pub.addListener(null); + assertTrue(true); + + } + + @Test + public void testGetCaptures() { + + pub.getCaptures(); + assertTrue(true); + + } - private MRBatchingPublisherMock.Entry entry = null; + @Test + public void testGetCaptures2() { - @Before - public void setUp() throws Exception { - pub = new MRBatchingPublisherMock(); - entry = pub.new Entry("partition", "msg"); + pub.getCaptures(null); + assertTrue(true); - } + } - @After - public void tearDown() throws Exception { + @Test + public void testReceived() { - } + pub.received(); + assertTrue(true); - @Test - public void testToString() { + } - entry.toString(); - assertTrue(true); + @Test + public void testResend() { - } + pub.reset(); + assertTrue(true); - @Test - public void testAddListener() { + } - pub.addListener(null); - assertTrue(true); + @Test + public void testSend() { - } + pub.send("partition", "msg"); + assertTrue(true); - @Test - public void testGetCaptures() { + } - pub.getCaptures(); - assertTrue(true); + @Test + public void testSend2() { - } + pub.send("msg"); + assertTrue(true); - @Test - public void testGetCaptures2() { + } - pub.getCaptures(null); - assertTrue(true); + @Test + public void testSend3() { + //sending message m obj + pub.send(new ArrayList<Message>()); + assertTrue(true); - } + } - @Test - public void testReceived() { + @Test + public void testSend4() { + //sending collection of message m objects + pub.send(new Message("partition", "msg")); + assertTrue(true); - pub.received(); - assertTrue(true); + } - } - - @Test - public void testResend() { + @Test + public void testSendBatchWithResponse() { - pub.reset(); - assertTrue(true); + pub.sendBatchWithResponse(); + assertTrue(true); - } - - @Test - public void testSend() { + } - pub.send("partition", "msg"); - assertTrue(true); + @Test + public void testLogTo() { - } - - @Test - public void testSend2() { + pub.logTo(null); + assertTrue(true); - pub.send("msg"); - assertTrue(true); + } - } - - @Test - public void testSend3() { - //sending message m obj - pub.send(new ArrayList<message>()); - assertTrue(true); + @Test + public void testClearApiCredentials() { - } - - @Test - public void testSend4() { - //sending collection of message m objects - pub.send(new message("partition", "msg")); - assertTrue(true); + pub.clearApiCredentials(); + assertTrue(true); - } - - @Test - public void testSendBatchWithResponse() { + } - pub.sendBatchWithResponse(); - assertTrue(true); + @Test + public void testSetApiCredentials() { - } - - @Test - public void testLogTo() { + pub.setApiCredentials("apikey", "apisecret"); + assertTrue(true); - pub.logTo(null); - assertTrue(true); + } - } - - @Test - public void testClearApiCredentials() { + @Test + public void testClose() { - pub.clearApiCredentials(); - assertTrue(true); + pub.close(); + assertTrue(true); - } - - @Test - public void testSetApiCredentials() { + } - pub.setApiCredentials("apikey", "apisecret"); - assertTrue(true); + @Test + public void testClose2() { - } - - @Test - public void testClose() { + pub.close(100, null); + assertTrue(true); - pub.close(); - assertTrue(true); + } - } - - @Test - public void testClose2() { + @Test + public void testGetPendingMessageCount() { - pub.close(100, null); - assertTrue(true); + pub.getPendingMessageCount(); + assertTrue(true); - } - - @Test - public void testGetPendingMessageCount() { - - pub.getPendingMessageCount(); - assertTrue(true); - - } + } } diff --git a/src/test/java/org/onap/dmaap/mr/test/support/MRConsumerMock.java b/src/test/java/org/onap/dmaap/mr/test/support/MRConsumerMock.java new file mode 100644 index 0000000..55cd245 --- /dev/null +++ b/src/test/java/org/onap/dmaap/mr/test/support/MRConsumerMock.java @@ -0,0 +1,148 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ + * 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 org.onap.dmaap.mr.test.support; + +import org.onap.dmaap.mr.client.MRConsumer; +import org.onap.dmaap.mr.client.response.MRConsumerResponse; +import org.slf4j.Logger; + +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; + +/** + * A helper for unit testing systems that use a MRConsumer. When setting + * up your test, inject an instance into MRClientFactory to have it return + * the mock client. + * + * @author author + */ +public class MRConsumerMock implements MRConsumer { + public class Entry { + public Entry(long waitMs, int statusCode, List<String> msgs) { + fWaitMs = waitMs; + fStatusCode = statusCode; + fStatusMsg = null; + fMsgs = new LinkedList<>(msgs); + } + + public Entry(long waitMs, int statusCode, String statusMsg) { + fWaitMs = waitMs; + fStatusCode = statusCode; + fStatusMsg = statusMsg; + fMsgs = null; + } + + public LinkedList<String> run() throws IOException { + try { + Thread.sleep(fWaitMs); + if (fStatusCode >= 200 && fStatusCode <= 299) { + return fMsgs; + } + throw new IOException("" + fStatusCode + " " + fStatusMsg); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new IOException(e); + } + } + + private final long fWaitMs; + private final int fStatusCode; + private final String fStatusMsg; + private final LinkedList<String> fMsgs; + } + + public MRConsumerMock() { + fReplies = new LinkedList<>(); + } + + @Override + public void close() { + } + + @Override + public void setApiCredentials(String apiKey, String apiSecret) { + } + + @Override + public void clearApiCredentials() { + } + + public synchronized void add(Entry e) { + fReplies.add(e); + } + + public void addImmediateMsg(String msg) { + addDelayedMsg(0, msg); + } + + public void addDelayedMsg(long delay, String msg) { + final LinkedList<String> list = new LinkedList<>(); + list.add(msg); + add(new Entry(delay, 200, list)); + } + + public void addImmediateMsgGroup(List<String> msgs) { + addDelayedMsgGroup(0, msgs); + } + + public void addDelayedMsgGroup(long delay, List<String> msgs) { + final LinkedList<String> list = new LinkedList<>(msgs); + add(new Entry(delay, 200, list)); + } + + public void addImmediateError(int statusCode, String statusText) { + add(new Entry(0, statusCode, statusText)); + } + + @Override + public Iterable<String> fetch() throws IOException { + return fetch(-1, -1); + } + + @Override + public Iterable<String> fetch(int timeoutMs, int limit) throws IOException { + return fReplies.size() > 0 ? fReplies.removeFirst().run() : new LinkedList<String>(); + } + + @Override + public void logTo(Logger log) { + } + + private final LinkedList<Entry> fReplies; + + @Override + public MRConsumerResponse fetchWithReturnConsumerResponse() { + // TODO Auto-generated method stub + return null; + } + + @Override + public MRConsumerResponse fetchWithReturnConsumerResponse(int timeoutMs, + int limit) { + // TODO Auto-generated method stub + return null; + } +} diff --git a/src/test/java/org/onap/dmaap/mr/test/support/MRConsumerMockTest.java b/src/test/java/org/onap/dmaap/mr/test/support/MRConsumerMockTest.java index b3c4174..de5420a 100644 --- a/src/test/java/org/onap/dmaap/mr/test/support/MRConsumerMockTest.java +++ b/src/test/java/org/onap/dmaap/mr/test/support/MRConsumerMockTest.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -20,150 +22,150 @@ package org.onap.dmaap.mr.test.support; -import static org.junit.Assert.assertTrue; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; import java.io.IOException; import java.util.ArrayList; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import static org.junit.Assert.assertTrue; public class MRConsumerMockTest { - private MRConsumerMock cons = null; - private MRConsumerMock.Entry entry = null; - - @Before - public void setUp() throws Exception { - cons = new MRConsumerMock(); - entry = cons.new Entry(100, 200, "statusMsg"); - - } - - @After - public void tearDown() throws Exception { - - } - - @Test - public void testClose() { - - cons.close(); - assertTrue(true); - - } - - @Test - public void testRun() { - try { - entry.run(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - assertTrue(true); - - } - - @Test - public void testSetApiCredentials() { - cons.setApiCredentials("apikey", "apisecret"); - assertTrue(true); - - } - - @Test - public void testClearApiCredentials() { - cons.clearApiCredentials(); - assertTrue(true); - - } - - @Test - public void testAdd() { - cons.add(entry); - assertTrue(true); - - } - - @Test - public void testAddImmediateMsg() { - cons.addImmediateMsg("ImmediateMsg"); - assertTrue(true); - - } - - @Test - public void testAddDelayedMsg() { - cons.addDelayedMsg(100, "msg"); - assertTrue(true); - - } - - @Test - public void testAddImmediateMsgGroup() { - cons.addImmediateMsgGroup(new ArrayList<String>()); - assertTrue(true); - - } - - @Test - public void testAddDelayedMsgGroup() { - cons.addDelayedMsgGroup(100,new ArrayList<String>()); - assertTrue(true); - - } - - @Test - public void testAddImmediateError() { - cons.addImmediateError(200, "OK"); - assertTrue(true); - - } - - @Test - public void testFetch() { - try { - cons.fetch(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertTrue(true); - - } - - @Test - public void testFetch2() { - try { - cons.fetch(100, 200); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertTrue(true); - - } - - @Test - public void testLogTo() { - cons.logTo(null); - assertTrue(true); - - } - - @Test - public void testFetchWithReturnConsumerResponse() { - cons.fetchWithReturnConsumerResponse(); - assertTrue(true); - - } - - @Test - public void testGetchWithReturnConsumerResponse() { - cons.fetchWithReturnConsumerResponse(100,200); - assertTrue(true); - - } + private MRConsumerMock cons = null; + private MRConsumerMock.Entry entry = null; + + @Before + public void setUp() throws Exception { + cons = new MRConsumerMock(); + entry = cons.new Entry(100, 200, "statusMsg"); + + } + + @After + public void tearDown() throws Exception { + + } + + @Test + public void testClose() { + + cons.close(); + assertTrue(true); + + } + + @Test + public void testRun() { + try { + entry.run(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + assertTrue(true); + + } + + @Test + public void testSetApiCredentials() { + cons.setApiCredentials("apikey", "apisecret"); + assertTrue(true); + + } + + @Test + public void testClearApiCredentials() { + cons.clearApiCredentials(); + assertTrue(true); + + } + + @Test + public void testAdd() { + cons.add(entry); + assertTrue(true); + + } + + @Test + public void testAddImmediateMsg() { + cons.addImmediateMsg("ImmediateMsg"); + assertTrue(true); + + } + + @Test + public void testAddDelayedMsg() { + cons.addDelayedMsg(100, "msg"); + assertTrue(true); + + } + + @Test + public void testAddImmediateMsgGroup() { + cons.addImmediateMsgGroup(new ArrayList<String>()); + assertTrue(true); + + } + + @Test + public void testAddDelayedMsgGroup() { + cons.addDelayedMsgGroup(100, new ArrayList<String>()); + assertTrue(true); + + } + + @Test + public void testAddImmediateError() { + cons.addImmediateError(200, "OK"); + assertTrue(true); + + } + + @Test + public void testFetch() { + try { + cons.fetch(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + assertTrue(true); + + } + + @Test + public void testFetch2() { + try { + cons.fetch(100, 200); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + assertTrue(true); + + } + + @Test + public void testLogTo() { + cons.logTo(null); + assertTrue(true); + + } + + @Test + public void testFetchWithReturnConsumerResponse() { + cons.fetchWithReturnConsumerResponse(); + assertTrue(true); + + } + + @Test + public void testGetchWithReturnConsumerResponse() { + cons.fetchWithReturnConsumerResponse(100, 200); + assertTrue(true); + + } } diff --git a/src/test/java/org/onap/dmaap/mr/test/support/TestRunner.java b/src/test/java/org/onap/dmaap/mr/test/support/TestRunner.java index 69f499f..f10ac2b 100644 --- a/src/test/java/org/onap/dmaap/mr/test/support/TestRunner.java +++ b/src/test/java/org/onap/dmaap/mr/test/support/TestRunner.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * 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. @@ -27,16 +29,16 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestRunner { - private static final Logger LOGGER = LoggerFactory.getLogger(TestRunner.class); + private static final Logger logger = LoggerFactory.getLogger(TestRunner.class); + + public static void main(String[] args) { + // TODO Auto-generated method stub + Result result = JUnitCore.runClasses(JUnitTestSuite.class); + for (Failure failure : result.getFailures()) { + logger.info(failure.toString()); - public static void main(String[] args) { - // TODO Auto-generated method stub - Result result = JUnitCore.runClasses(JUnitTestSuite.class); - for (Failure failure : result.getFailures()) { - LOGGER.info(failure.toString()); - - } - LOGGER.info(String.valueOf(result.wasSuccessful())); - } + } + logger.info(String.valueOf(result.wasSuccessful())); + } } |