From cc9de9bc6803212f0233e0e1bf06aa63fe8b7a6a Mon Sep 17 00:00:00 2001 From: Varun Gudisena Date: Wed, 30 Aug 2017 20:49:32 -0500 Subject: Add Initial Code Import Intial Code import for dmaapClient Issue-id: DMAAP-82 Change-Id: Ib627672d37e233b796619f93dd91f5caaf1592e4 Signed-off-by: Varun Gudisena --- .../nsa/mr/client/impl/MRConstantsTest.java | 142 +++++++++++++++++++++ .../nsa/mr/client/impl/MRConsumerImplTest.java | 94 ++++++++++++++ 2 files changed, 236 insertions(+) create mode 100644 src/test/java/org/onap/dmaap/messagerouter/dmaapclient/nsa/mr/client/impl/MRConstantsTest.java create mode 100644 src/test/java/org/onap/dmaap/messagerouter/dmaapclient/nsa/mr/client/impl/MRConsumerImplTest.java (limited to 'src/test/java/org') diff --git a/src/test/java/org/onap/dmaap/messagerouter/dmaapclient/nsa/mr/client/impl/MRConstantsTest.java b/src/test/java/org/onap/dmaap/messagerouter/dmaapclient/nsa/mr/client/impl/MRConstantsTest.java new file mode 100644 index 0000000..a281b4d --- /dev/null +++ b/src/test/java/org/onap/dmaap/messagerouter/dmaapclient/nsa/mr/client/impl/MRConstantsTest.java @@ -0,0 +1,142 @@ +/******************************************************************************* + * ============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 org.onap.dmaap.messagerouter.dmaapclient.nsa.mr.client.impl; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; + +import junit.framework.TestCase; + +import org.apache.http.HttpHost; +import org.junit.Test; +import org.onap.dmaap.messagerouter.dmaapclient.nsa.mr.client.impl.MRConstants; + +public class MRConstantsTest extends TestCase +{ + @Test + public void testPlainHost () throws IOException + { + final String rawTopic = "bar"; + final String result = MRConstants.makeUrl ( rawTopic ); + assertEquals ( "/events/" + "bar", result ); + } + + @Test + public void testHostWithProtocol () throws IOException + { + final String rawTopic = "bar"; + final String result = MRConstants.makeUrl ( rawTopic ); + assertEquals ( "/events/" + "bar", result ); + } + + @Test + public void testHostWithProtocolAndPort () throws IOException + { + final String rawTopic = "bar"; + final String result = MRConstants.makeUrl ( rawTopic ); + assertEquals ( "/events/" + "bar", result ); + } + + @Test + public void testHostWithPort () throws IOException + { + final String rawTopic = "bar"; + final String result = MRConstants.makeUrl ( rawTopic ); + assertEquals ( "/events/" + "bar", result ); + } + + @Test + public void testHostWithPortAndEscapedTopic () throws IOException + { + final String rawTopic = "bar?bell"; + final String result = MRConstants.makeUrl ( rawTopic ); + assertEquals ( "/events/" + "bar%3Fbell", result ); + } + + @Test + public void testConsumerPlainHost () throws IOException + { + final String rawTopic = "bar"; + final String rawGroup = "group"; + final String rawId = "id"; + final String result = MRConstants.makeConsumerUrl ( rawTopic, rawGroup, rawId ); + assertEquals ( "/events/" + "bar/group/id", result ); + } + + @Test + public void testCreateHostList () + { + final ArrayList in = new ArrayList (); + in.add ( "foo" ); + in.add ( "bar" ); + in.add ( "baz:80" ); + + final Collection hosts = MRConstants.createHostsList ( in ); + assertEquals ( 3, hosts.size () ); + + final Iterator it = hosts.iterator (); + final HttpHost first = it.next (); + assertEquals ( MRConstants.kStdMRServicePort, first.getPort () ); + assertEquals ( "foo", first.getHostName () ); + + final HttpHost second = it.next (); + assertEquals ( MRConstants.kStdMRServicePort, second.getPort () ); + assertEquals ( "bar", second.getHostName () ); + + final HttpHost third = it.next (); + assertEquals ( 80, third.getPort () ); + assertEquals ( "baz", third.getHostName () ); + } + + private static final String[][] hostTests = + { + { "host", "host", "" + MRConstants.kStdMRServicePort }, + { ":oops", null, "-1" }, + { "host:1.3", null, "-1" }, + { "host:13", "host", "13" }, + { "host:", "host", "" + MRConstants.kStdMRServicePort }, + }; + + @Test + public void testHostParse () + { + for ( String[] test : hostTests ) + { + final String hostIn = test[0]; + final String hostOut = test[1]; + final int portOut = Integer.parseInt ( test[2] ); + + try + { + final HttpHost hh = MRConstants.hostForString ( hostIn ); + assertEquals ( hostOut, hh.getHostName () ); + assertEquals ( portOut, hh.getPort () ); + } + catch ( IllegalArgumentException x ) + { + assertEquals ( -1, portOut ); + } + } + } +} diff --git a/src/test/java/org/onap/dmaap/messagerouter/dmaapclient/nsa/mr/client/impl/MRConsumerImplTest.java b/src/test/java/org/onap/dmaap/messagerouter/dmaapclient/nsa/mr/client/impl/MRConsumerImplTest.java new file mode 100644 index 0000000..9d84474 --- /dev/null +++ b/src/test/java/org/onap/dmaap/messagerouter/dmaapclient/nsa/mr/client/impl/MRConsumerImplTest.java @@ -0,0 +1,94 @@ +/******************************************************************************* + * ============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 org.onap.dmaap.messagerouter.dmaapclient.nsa.mr.client.impl; + +import java.io.IOException; +import java.util.LinkedList; + +import junit.framework.TestCase; + +import org.junit.Test; +import org.onap.dmaap.messagerouter.dmaapclient.nsa.mr.client.impl.MRConstants; +import org.onap.dmaap.messagerouter.dmaapclient.nsa.mr.client.impl.MRConsumerImpl; + +public class MRConsumerImplTest extends TestCase +{ + @Test + public void testNullFilter () throws IOException + { + final LinkedList hosts = new LinkedList (); + hosts.add ( "localhost:8080" ); + final MRConsumerImpl c = new MRConsumerImpl ( hosts, "topic", "cg", "cid", -1, -1, null, null, null ); + final String url = c.createUrlPath (MRConstants.makeConsumerUrl ( "localhost:8080", "topic", "cg", "cid","http" ), -1, -1 ); + assertEquals ("http://localhost:8080/events/" + "topic/cg/cid", url ); + } + + @Test + public void testFilterWithNoTimeoutOrLimit () throws IOException + { + final LinkedList hosts = new LinkedList (); + hosts.add ( "localhost:8080" ); + final MRConsumerImpl c = new MRConsumerImpl ( hosts, "topic", "cg", "cid", -1, -1, "filter", null, null ); + final String url = c.createUrlPath ( MRConstants.makeConsumerUrl ( "localhost:8080", "topic", "cg", "cid" ,"http"),-1, -1 ); + assertEquals ("http://localhost:8080/events/" + "topic/cg/cid?filter=filter", url ); + } + + @Test + public void testTimeoutNoLimitNoFilter () throws IOException + { + final LinkedList hosts = new LinkedList (); + hosts.add ( "localhost:8080" ); + final MRConsumerImpl c = new MRConsumerImpl ( hosts, "topic", "cg", "cid", 30000, -1, null, null, null ); + final String url = c.createUrlPath (MRConstants.makeConsumerUrl ( "localhost:8080", "topic", "cg", "cid","http" ), 30000, -1 ); + assertEquals ( "http://localhost:8080/events/" + "topic/cg/cid?timeout=30000", url ); + } + + @Test + public void testNoTimeoutWithLimitNoFilter () throws IOException + { + final LinkedList hosts = new LinkedList (); + hosts.add ( "localhost:8080" ); + final MRConsumerImpl c = new MRConsumerImpl ( hosts, "topic", "cg", "cid", -1, 100, null, null, null ); + final String url = c.createUrlPath (MRConstants.makeConsumerUrl ( "localhost:8080", "topic", "cg", "cid","http" ), -1, 100 ); + assertEquals ( "http://localhost:8080/events/" + "topic/cg/cid?limit=100", url ); + } + + @Test + public void testWithTimeoutWithLimitWithFilter () throws IOException + { + final LinkedList hosts = new LinkedList (); + hosts.add ( "localhost:8080" ); + final MRConsumerImpl c = new MRConsumerImpl ( hosts, "topic", "cg", "cid", 1000, 400, "f", null, null ); + final String url = c.createUrlPath (MRConstants.makeConsumerUrl ( "localhost:8080", "topic", "cg", "cid" ,"http"), 1000, 400 ); + assertEquals ("http://localhost:8080/events/" + "topic/cg/cid?timeout=1000&limit=400&filter=f", url ); + } + + @Test + public void testFilterEncoding () throws IOException + { + final LinkedList hosts = new LinkedList (); + hosts.add ( "localhost:8080" ); + final MRConsumerImpl c = new MRConsumerImpl ( hosts, "topic", "cg", "cid", -1, -1, "{ \"foo\"=\"bar\"bar\" }", null, null ); + final String url = c.createUrlPath (MRConstants.makeConsumerUrl ( "localhost:8080", "topic", "cg", "cid","http" ), -1, -1 ); + assertEquals ( "http://localhost:8080/events/" + "topic/cg/cid?filter=%7B+%22foo%22%3D%22bar%22bar%22+%7D", url ); + } +} -- cgit 1.2.3-korg