Improved tests performance
[policy/engine.git] / ONAP-REST / src / test / java / org / onap / policy / rest / daoimpl / PolicyValidationDaoImplTest.java
index f5d968b..299e800 100644 (file)
@@ -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();
     }
 
 }