From 5bcdc95e91aeabf68770b175fe210da38e76867f Mon Sep 17 00:00:00 2001 From: Krysiak Adam Date: Tue, 18 Jun 2019 11:09:21 +0200 Subject: Improved tests performance * used mock instead of waiting till dmaap client fails * creating in memory DB only once Issue-ID: POLICY-1671 Change-Id: Ia1b6ce7ddad1bce0d17c2dbf14f3d82dd237673b Signed-off-by: Krysiak Adam --- .../java/org/onap/policy/utils/BusConsumer.java | 189 +++++++++++---------- .../test/java/org/onap/policy/utils/BusTest.java | 65 +++++++ .../java/org/onap/policy/utils/test/BusTest.java | 56 ------ 3 files changed, 161 insertions(+), 149 deletions(-) create mode 100644 PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java delete mode 100644 PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BusTest.java (limited to 'PolicyEngineUtils/src') diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusConsumer.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusConsumer.java index 0d4c86b3d..c3fe9023f 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusConsumer.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusConsumer.java @@ -3,13 +3,14 @@ * PolicyEngineUtils * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Modifications copyright (c) 2019 Nokia * ================================================================================ * 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. @@ -28,98 +29,100 @@ import org.onap.dmaap.mr.client.impl.MRConsumerImpl; import org.onap.dmaap.mr.test.clients.ProtocolTypeConstants; public interface BusConsumer { - - /** - * fetch messages - * - * @return list of messages - * @throws MRApiException when error encountered by underlying libraries - */ - public Iterable fetch() throws MRApiException; - - /** - * close underlying library consumer - */ - public void close(); - - /** - * MR based consumer - */ - public static class DmaapConsumerWrapper implements BusConsumer { - - /** - * MR Consumer - */ - protected MRConsumerImpl consumer; - - /** - * MR Consumer Wrapper - * - * @param servers messaging bus hosts - * @param topic topic - * @param apiKey API Key - * @param apiSecret API Secret - * @param aafLogin AAF Login - * @param aafPassword AAF Password - * @param consumerGroup Consumer Group - * @param consumerInstance Consumer Instance - * @param fetchTimeout Fetch Timeout - * @param fetchLimit Fetch Limit - */ - public DmaapConsumerWrapper(List servers, String topic, - String aafLogin, String aafPassword, - String consumerGroup, String consumerInstance, - int fetchTimeout, int fetchLimit) throws MalformedURLException{ - - this.consumer = new MRConsumerImpl(servers, topic, - consumerGroup, consumerInstance, - fetchTimeout, fetchLimit, - null, aafLogin, aafPassword); - - this.consumer.setUsername(aafLogin); - this.consumer.setPassword(aafPassword); - - this.consumer.setProtocolFlag(ProtocolTypeConstants.AAF_AUTH.getValue()); - - Properties props = new Properties(); - props.setProperty("Protocol", "http"); - this.consumer.setProps(props); - this.consumer.setHost(servers.get(0) + ":3904"); - } - - /** - * {@inheritDoc} - */ - @Override - public Iterable fetch() throws MRApiException { - try { - return this.consumer.fetch(); + + /** + * fetch messages + * + * @return list of messages + * @throws MRApiException when error encountered by underlying libraries + */ + Iterable fetch() throws MRApiException; + + /** + * close underlying library consumer + */ + void close(); + + /** + * MR based consumer + */ + class DmaapConsumerWrapper implements BusConsumer { + + /** + * MR Consumer + */ + protected MRConsumerImpl consumer; + + /** + * MR Consumer Wrapper + * + * @param servers messaging bus hosts + * @param topic topic + * @param apiKey API Key + * @param apiSecret API Secret + * @param aafLogin AAF Login + * @param aafPassword AAF Password + * @param consumerGroup Consumer Group + * @param consumerInstance Consumer Instance + * @param fetchTimeout Fetch Timeout + * @param fetchLimit Fetch Limit + */ + public DmaapConsumerWrapper(List servers, String topic, + String aafLogin, String aafPassword, + String consumerGroup, String consumerInstance, + int fetchTimeout, int fetchLimit) throws MalformedURLException { + + this(new MRConsumerImpl(servers, topic, + consumerGroup, consumerInstance, + fetchTimeout, fetchLimit, + null, aafLogin, aafPassword), aafLogin, aafPassword, servers.get(0)); + + } + + DmaapConsumerWrapper(MRConsumerImpl consumer, String aafLogin, String aafPassword, String host) { + this.consumer = consumer; + this.consumer.setUsername(aafLogin); + this.consumer.setPassword(aafPassword); + this.consumer.setProtocolFlag(ProtocolTypeConstants.AAF_AUTH.getValue()); + this.consumer.setHost(host + ":3904"); + + Properties props = new Properties(); + props.setProperty("Protocol", "http"); + this.consumer.setProps(props); + } + + /** + * {@inheritDoc} + */ + @Override + public Iterable fetch() throws MRApiException { + try { + return consumer.fetch(); } catch (Exception e) { - throw new MRApiException("Error during MR consumer Fetch ",e); + throw new MRApiException("Error during MR consumer Fetch ", e); } - } - - /** - * {@inheritDoc} - */ - @Override - public void close() { - this.consumer.close(); - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder. - append("DmaapConsumerWrapper ["). - append("consumer.getAuthDate()=").append(consumer.getAuthDate()). - append(", consumer.getAuthKey()=").append(consumer.getAuthKey()). - append(", consumer.getHost()=").append(consumer.getHost()). - append(", consumer.getProtocolFlag()=").append(consumer.getProtocolFlag()). - append(", consumer.getUsername()=").append(consumer.getUsername()). - append("]"); - return builder.toString(); - } - } + } + + /** + * {@inheritDoc} + */ + @Override + public void close() { + this.consumer.close(); + } + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder. + append("DmaapConsumerWrapper ["). + append("consumer.getAuthDate()=").append(consumer.getAuthDate()). + append(", consumer.getAuthKey()=").append(consumer.getAuthKey()). + append(", consumer.getHost()=").append(consumer.getHost()). + append(", consumer.getProtocolFlag()=").append(consumer.getProtocolFlag()). + append(", consumer.getUsername()=").append(consumer.getUsername()). + append("]"); + return builder.toString(); + } + } } diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java new file mode 100644 index 000000000..58262d97c --- /dev/null +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java @@ -0,0 +1,65 @@ +/*- + * ============LICENSE_START======================================================= + * PolicyEngineUtils + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Modifications copyright (c) 2019 Nokia + * ================================================================================ + * 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========================================================= + */ + +package org.onap.policy.utils; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.net.MalformedURLException; +import java.util.Arrays; + +import org.junit.Test; +import org.onap.dmaap.mr.client.MRClient.MRApiException; +import org.onap.dmaap.mr.client.impl.MRConsumerImpl; +import org.onap.policy.utils.BusConsumer.DmaapConsumerWrapper; + +public class BusTest { + + @Test + public void busPublisherTest(){ + BusPublisher bus = new BusPublisher.DmaapPublisherWrapper(Arrays.asList("test"), "test", "test", "test"); + assertTrue(bus.send("test123", "Hello World!")); + assertEquals("DmaapPublisherWrapper [publisher.getAuthDate()=null, publisher.getAuthKey()=null, publisher.getHost()=test, publisher.getProtocolFlag()=HTTPAAF, publisher.getUsername()=test, publisher.getPendingMessageCount()=1]",bus.toString()); + bus.close(); + } + + @Test (expected = MRApiException.class) + public void busConsumerFailTest() throws Exception { + //given + MRConsumerImpl mrConsumer = mock(MRConsumerImpl.class); + when(mrConsumer.fetch()).thenThrow(new Exception()); + DmaapConsumerWrapper dmaapConsumerWrapper = new DmaapConsumerWrapper(mrConsumer, "", "", ""); + + //when + dmaapConsumerWrapper.fetch(); + } + + @Test + public void busConsumerTest() throws MalformedURLException, MRApiException{ + BusConsumer bus = new BusConsumer.DmaapConsumerWrapper(Arrays.asList("test"), "test", "test", "test", "test", "test", 1, 1); + assertEquals(bus.toString(),"DmaapConsumerWrapper [consumer.getAuthDate()=null, consumer.getAuthKey()=null, consumer.getHost()=test:3904, consumer.getProtocolFlag()=HTTPAAF, consumer.getUsername()=test]"); + bus.close(); + } + +} diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BusTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BusTest.java deleted file mode 100644 index 37f0bb016..000000000 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BusTest.java +++ /dev/null @@ -1,56 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * PolicyEngineUtils - * ================================================================================ - * Copyright (C) 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========================================================= - */ - -package org.onap.policy.utils.test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.net.MalformedURLException; -import java.util.Arrays; - -import org.junit.Test; -import org.onap.dmaap.mr.client.MRClient.MRApiException; -import org.onap.policy.utils.BusConsumer; -import org.onap.policy.utils.BusPublisher; - -public class BusTest { - - @Test - public void busPublisherTest(){ - BusPublisher bus = new BusPublisher.DmaapPublisherWrapper(Arrays.asList("test"), "test", "test", "test"); - assertTrue(bus.send("test123", "Hello World!")); - assertEquals("DmaapPublisherWrapper [publisher.getAuthDate()=null, publisher.getAuthKey()=null, publisher.getHost()=test, publisher.getProtocolFlag()=HTTPAAF, publisher.getUsername()=test, publisher.getPendingMessageCount()=1]",bus.toString()); - bus.close(); - } - - @Test (expected = MRApiException.class) - public void busConsumerFailTest() throws MalformedURLException, MRApiException{ - new BusConsumer.DmaapConsumerWrapper(Arrays.asList("test"), "test", "test", "test", "test", "test", 1, 1).fetch(); - } - - @Test - public void busConsumerTest() throws MalformedURLException, MRApiException{ - BusConsumer bus = new BusConsumer.DmaapConsumerWrapper(Arrays.asList("test"), "test", "test", "test", "test", "test", 1, 1); - assertEquals(bus.toString(),"DmaapConsumerWrapper [consumer.getAuthDate()=null, consumer.getAuthKey()=null, consumer.getHost()=test:3904, consumer.getProtocolFlag()=HTTPAAF, consumer.getUsername()=test]"); - bus.close(); - } - -} -- cgit 1.2.3-korg