aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrysiak Adam <adam.krysiak@nokia.com>2019-06-18 11:09:21 +0200
committerKrysiak Adam <adam.krysiak@nokia.com>2019-06-19 10:59:55 +0200
commit5bcdc95e91aeabf68770b175fe210da38e76867f (patch)
tree69162338960fc74341164c5f494681232d9d671a
parentb06d6a50cacb320f48db3dcd68f6a3147321a5b4 (diff)
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 <adam.krysiak@nokia.com>
-rw-r--r--ONAP-REST/src/test/java/org/onap/policy/rest/daoimpl/PolicyValidationDaoImplTest.java49
-rw-r--r--PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusConsumer.java189
-rw-r--r--PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java (renamed from PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BusTest.java)19
3 files changed, 144 insertions, 113 deletions
diff --git a/ONAP-REST/src/test/java/org/onap/policy/rest/daoimpl/PolicyValidationDaoImplTest.java b/ONAP-REST/src/test/java/org/onap/policy/rest/daoimpl/PolicyValidationDaoImplTest.java
index f5d968b14..299e8003f 100644
--- a/ONAP-REST/src/test/java/org/onap/policy/rest/daoimpl/PolicyValidationDaoImplTest.java
+++ b/ONAP-REST/src/test/java/org/onap/policy/rest/daoimpl/PolicyValidationDaoImplTest.java
@@ -3,13 +3,14 @@
* ONAP-REST
* ================================================================================
* 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.
@@ -31,14 +32,16 @@ import javax.script.SimpleBindings;
import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
import org.h2.tools.Server;
+import org.hibernate.Query;
+import org.hibernate.Session;
import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
import org.junit.After;
-import org.junit.Before;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
-//import org.onap.policy.conf.HibernateSession;
-//import org.onap.policy.controller.PolicyController;
import org.onap.policy.rest.jpa.OnapName;
import org.onap.policy.rest.jpa.PolicyEntity;
import org.onap.policy.rest.jpa.PolicyRoles;
@@ -55,13 +58,13 @@ public class PolicyValidationDaoImplTest {
private static Logger logger = FlexLogger.getLogger(PolicyValidationDaoImplTest.class);
- SessionFactory sessionFactory;
- Server server;
- PolicyValidationDaoImpl commonClassDao;
+ static SessionFactory sessionFactory;
+ static Server server;
+ static PolicyValidationDaoImpl commonClassDao;
- @Before
- public void setUp() throws Exception{
- try{
+ @BeforeClass
+ public static void setupAll() {
+ try {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("org.h2.Driver");
// In-memory DB for testing
@@ -110,6 +113,17 @@ public class PolicyValidationDaoImplTest {
}
}
+ @AfterClass
+ public static void deleteDB() {
+ sessionFactory.close();
+ server.stop();
+ }
+
+ @After
+ public void tearDown() {
+ truncateAllTables();
+ }
+
@Test
@Transactional
@Rollback(true)
@@ -431,11 +445,16 @@ public class PolicyValidationDaoImplTest {
}
}
- @After
- public void deleteDB(){
- sessionFactory.close();
- server.stop();
+ private void truncateAllTables() {
+ Session session = sessionFactory.openSession();
+ Transaction transaction = session.beginTransaction();
+ sessionFactory.getAllClassMetadata().forEach((tableName, x) -> {
+ Query query = session.createQuery("DELETE FROM " + tableName);
+ query.executeUpdate();
+ });
+ transaction.commit();
+ session.close();
}
}
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<String> 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<String> 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<String> fetch() throws MRApiException {
- try {
- return this.consumer.fetch();
+
+ /**
+ * fetch messages
+ *
+ * @return list of messages
+ * @throws MRApiException when error encountered by underlying libraries
+ */
+ Iterable<String> 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<String> 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<String> 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/test/BusTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java
index 37f0bb016..58262d97c 100644
--- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BusTest.java
+++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java
@@ -3,6 +3,7 @@
* 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.
@@ -18,18 +19,20 @@
* ============LICENSE_END=========================================================
*/
-package org.onap.policy.utils.test;
+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.policy.utils.BusConsumer;
-import org.onap.policy.utils.BusPublisher;
+import org.onap.dmaap.mr.client.impl.MRConsumerImpl;
+import org.onap.policy.utils.BusConsumer.DmaapConsumerWrapper;
public class BusTest {
@@ -42,8 +45,14 @@ public class BusTest {
}
@Test (expected = MRApiException.class)
- public void busConsumerFailTest() throws MalformedURLException, MRApiException{
- new BusConsumer.DmaapConsumerWrapper(Arrays.asList("test"), "test", "test", "test", "test", "test", 1, 1).fetch();
+ 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