Add and Modify JUnits for Code Coverage (daoImpl)
[policy/engine.git] / POLICY-SDK-APP / src / test / java / org / onap / policy / daoImp / CommonClassDaoImplTest.java
index 3bc89c9..dbe49c7 100644 (file)
@@ -24,23 +24,29 @@ package org.onap.policy.daoImp;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.when;
 
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Properties;
-
 import javax.script.SimpleBindings;
-
 import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
 import org.h2.tools.Server;
+import org.hibernate.Criteria;
+import org.hibernate.Session;
 import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Mockito;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.conf.HibernateSession;
@@ -49,7 +55,7 @@ import org.onap.policy.rest.jpa.OnapName;
 import org.onap.policy.rest.jpa.PolicyEntity;
 import org.onap.policy.rest.jpa.PolicyRoles;
 import org.onap.policy.rest.jpa.PolicyVersion;
-import org.onap.policy.rest.jpa.SystemLogDB;
+import org.onap.policy.rest.jpa.SystemLogDb;
 import org.onap.policy.rest.jpa.UserInfo;
 import org.onap.policy.rest.jpa.WatchPolicyNotificationTable;
 import org.springframework.orm.hibernate4.LocalSessionFactoryBuilder;
@@ -64,6 +70,11 @@ public class CommonClassDaoImplTest {
     Server server;
     CommonClassDaoImpl commonClassDao;
 
+    /**
+     * setUp.
+     *
+     * @throws Exception Exception
+     */
     @Before
     public void setUp() throws Exception {
         try {
@@ -90,13 +101,13 @@ public class CommonClassDaoImplTest {
             CommonClassDaoImpl.setSessionfactory(sessionFactory);
             PolicyController.setLogTableLimit("1");
             HibernateSession.setSession(sessionFactory);
-            SystemLogDB data1 = new SystemLogDB();
+            SystemLogDb data1 = new SystemLogDb();
             data1.setDate(new Date());
             data1.setLogtype("INFO");
             data1.setRemote("Test");
             data1.setSystem("Test");
             data1.setType("Test");
-            SystemLogDB data2 = new SystemLogDB();
+            SystemLogDb data2 = new SystemLogDb();
             data2.setDate(new Date());
             data2.setLogtype("error");
             data2.setRemote("Test");
@@ -125,13 +136,13 @@ public class CommonClassDaoImplTest {
             userinfo.setUserName("Test");
             commonClassDao.save(userinfo);
             OnapName onapName = new OnapName();
-            onapName.setOnapName("Test");
+            onapName.setName("Test");
             onapName.setUserCreatedBy(userinfo);
             onapName.setUserModifiedBy(userinfo);
             onapName.setModifiedDate(new Date());
             commonClassDao.save(onapName);
 
-            List<Object> list = commonClassDao.getData(OnapName.class);
+            List<?> list = commonClassDao.getData(OnapName.class);
             assertTrue(list.size() == 1);
             logger.debug(list.size());
             logger.debug(list.get(0));
@@ -148,17 +159,17 @@ public class CommonClassDaoImplTest {
         try {
             // Add data
             UserInfo userinfo = new UserInfo();
-            String loginId_userName = "Test";
-            userinfo.setUserLoginId(loginId_userName);
-            userinfo.setUserName(loginId_userName);
+            String loginIdUserName = "Test";
+            userinfo.setUserLoginId(loginIdUserName);
+            userinfo.setUserName(loginIdUserName);
             commonClassDao.save(userinfo);
 
-            List<Object> dataCur = commonClassDao.getDataByQuery("from UserInfo", new SimpleBindings());
+            List<?> dataCur = commonClassDao.getDataByQuery("from UserInfo", new SimpleBindings());
 
             assertEquals(1, dataCur.size());
             UserInfo cur = (UserInfo) dataCur.get(0);
-            assertEquals(loginId_userName, cur.getUserLoginId());
-            assertEquals(loginId_userName, cur.getUserName());
+            assertEquals(loginIdUserName, cur.getUserLoginId());
+            assertEquals(loginIdUserName, cur.getUserName());
 
             assertFalse(dataCur.isEmpty());
 
@@ -185,12 +196,12 @@ public class CommonClassDaoImplTest {
             pe.setCreatedBy("Test");
             commonClassDao.save(pe);
 
-            List<Object> dataCur = commonClassDao.getDataByQuery("from PolicyEntity", new SimpleBindings());
+            List<?> dataCur = commonClassDao.getDataByQuery("from PolicyEntity", new SimpleBindings());
 
             assertTrue(1 == dataCur.size());
             assertTrue(dataCur.get(0) instanceof PolicyEntity);
             assertEquals(name, ((PolicyEntity) dataCur.get(0)).getPolicyName());
-            assertEquals(pe, ((PolicyEntity) dataCur.get(0)));
+            assertEquals(pe, (dataCur.get(0)));
 
         } catch (Exception e) {
             logger.debug("Exception Occured" + e);
@@ -226,10 +237,10 @@ public class CommonClassDaoImplTest {
             String query = "From PolicyVersion where policy_name like :scope and id > 0";
             SimpleBindings params = new SimpleBindings();
             params.put("scope", scope);
-            List<Object> dataCur = commonClassDao.getDataByQuery(query, params);
+            List<?> dataCur = commonClassDao.getDataByQuery(query, params);
 
             assertTrue(1 == dataCur.size());
-            assertEquals(pv, (PolicyVersion) dataCur.get(0));
+            assertEquals(pv, dataCur.get(0));
 
         } catch (Exception e) {
             logger.debug("Exception Occured" + e);
@@ -244,11 +255,11 @@ public class CommonClassDaoImplTest {
         try {
             // Add data
             WatchPolicyNotificationTable watch = new WatchPolicyNotificationTable();
-            String policyFileName = "banana";
             watch.setLoginIds("Test");
             watch.setPolicyName("bananaWatch");
             commonClassDao.save(watch);
 
+            String policyFileName = "banana";
             if (policyFileName.contains("/")) {
                 policyFileName = policyFileName.substring(0, policyFileName.indexOf("/"));
                 policyFileName = policyFileName.replace("/", File.separator);
@@ -263,12 +274,12 @@ public class CommonClassDaoImplTest {
             String query = "from WatchPolicyNotificationTable where policyName like:policyFileName";
             SimpleBindings params = new SimpleBindings();
             params.put("policyFileName", policyFileName);
-            List<Object> dataCur = commonClassDao.getDataByQuery(query, params);
+            List<?> dataCur = commonClassDao.getDataByQuery(query, params);
 
             // Assertions
             assertTrue(dataCur.size() == 1);
             assertTrue(dataCur.get(0) instanceof WatchPolicyNotificationTable);
-            assertEquals(watch, (WatchPolicyNotificationTable) dataCur.get(0));
+            assertEquals(watch, dataCur.get(0));
 
         } catch (Exception e) {
             logger.debug("Exception Occured" + e);
@@ -294,19 +305,19 @@ public class CommonClassDaoImplTest {
             commonClassDao.save(pe);
 
             String dbCheckName = "dummyScope:action";
-            String[] splitDBCheckName = dbCheckName.split(":");
 
             // Current Implementation
             String query = "FROM PolicyEntity where policyName like :splitDBCheckName1 and scope = :splitDBCheckName0";
             SimpleBindings params = new SimpleBindings();
-            params.put("splitDBCheckName1", splitDBCheckName[1] + "%");
-            params.put("splitDBCheckName0", splitDBCheckName[0]);
-            List<Object> dataCur = commonClassDao.getDataByQuery(query, params);
+            String[] splitDbCheckName = dbCheckName.split(":");
+            params.put("splitDBCheckName1", splitDbCheckName[1] + "%");
+            params.put("splitDBCheckName0", splitDbCheckName[0]);
+            List<?> dataCur = commonClassDao.getDataByQuery(query, params);
 
             // Assertions
             assertTrue(dataCur.size() == 1);
             assertTrue(dataCur.get(0) instanceof PolicyEntity);
-            assertEquals(pe, (PolicyEntity) dataCur.get(0));
+            assertEquals(pe, dataCur.get(0));
 
         } catch (Exception e) {
             logger.debug("Exception Occured" + e);
@@ -332,12 +343,12 @@ public class CommonClassDaoImplTest {
             SimpleBindings params = new SimpleBindings();
             params.put("finalName", finalName);
             params.put("userId", userId);
-            List<Object> dataCur = commonClassDao.getDataByQuery(query, params);
+            List<?> dataCur = commonClassDao.getDataByQuery(query, params);
 
             // Assertions
             assertTrue(dataCur.size() == 1);
             assertTrue(dataCur.get(0) instanceof WatchPolicyNotificationTable);
-            assertEquals(watch, (WatchPolicyNotificationTable) dataCur.get(0));
+            assertEquals(watch, dataCur.get(0));
 
         } catch (Exception e) {
             logger.debug("Exception Occured" + e);
@@ -374,15 +385,15 @@ public class CommonClassDaoImplTest {
             SimpleBindings params = new SimpleBindings();
             params.put("finalName", finalName);
             params.put("userId", userId);
-            List<Object> dataCur = commonClassDao.getDataByQuery(query, params);
+            List<?> dataCur = commonClassDao.getDataByQuery(query, params);
 
             // Assertions
             assertTrue(dataCur.size() <= 1);
 
             if (dataCur.size() >= 1) {
                 assertTrue(dataCur.get(0) instanceof WatchPolicyNotificationTable);
-                assertFalse(watch.equals((WatchPolicyNotificationTable) dataCur.get(0)));
-                assertFalse(watch.equals((WatchPolicyNotificationTable) dataCur.get(0)));
+                assertFalse(watch.equals(dataCur.get(0)));
+                assertFalse(watch.equals(dataCur.get(0)));
             }
         } catch (Exception e) {
             logger.debug("Exception Occured" + e);
@@ -397,7 +408,7 @@ public class CommonClassDaoImplTest {
             userInfo.setUserLoginId("TestID");
             userInfo.setUserName("Test");
             commonClassDao.save(userInfo);
-            List<Object> data = commonClassDao.getDataById(UserInfo.class, "userLoginId:userName", "TestID:Test");
+            List<?> data = commonClassDao.getDataById(UserInfo.class, "userLoginId:userName", "TestID:Test");
             assertTrue(data.size() == 1);
             UserInfo userInfoUpdate = (UserInfo) data.get(0);
             userInfoUpdate.setUserName("Test1");
@@ -407,8 +418,7 @@ public class CommonClassDaoImplTest {
             UserInfo data2 =
                     (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId:userName", "TestID:Test1");
             assertTrue("TestID".equals(data2.getUserLoginId()));
-            List<Object> data3 =
-                    commonClassDao.checkDuplicateEntry("TestID:Test1", "userLoginId:userName", UserInfo.class);
+            List<?> data3 = commonClassDao.checkDuplicateEntry("TestID:Test1", "userLoginId:userName", UserInfo.class);
             assertTrue(data3.size() == 1);
             PolicyRoles roles = new PolicyRoles();
             roles.setRole("admin");
@@ -419,8 +429,8 @@ public class CommonClassDaoImplTest {
             assertTrue(roles1.size() == 1);
             List<String> multipleData = new ArrayList<>();
             multipleData.add("TestID:Test1");
-            List<Object> data4 = commonClassDao.getMultipleDataOnAddingConjunction(UserInfo.class,
-                    "userLoginId:userName", multipleData);
+            List<?> data4 = commonClassDao.getMultipleDataOnAddingConjunction(UserInfo.class, "userLoginId:userName",
+                    multipleData);
             assertTrue(data4.size() == 1);
             commonClassDao.delete(data2);
         } catch (Exception e) {
@@ -451,6 +461,70 @@ public class CommonClassDaoImplTest {
         }
     }
 
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testExceptions() {
+        SessionFactory sfMock = Mockito.mock(SessionFactory.class);
+        Session mockSession = Mockito.mock(Session.class);
+        Criteria crMock = Mockito.mock(Criteria.class);
+        Transaction mockTransaction = Mockito.mock(Transaction.class);
+
+        CommonClassDaoImpl.setSessionfactory(sfMock);
+
+        when(sfMock.openSession()).thenReturn(mockSession);
+        when(mockSession.createCriteria(OnapName.class)).thenReturn(crMock);
+
+        when(crMock.list()).thenThrow(Exception.class);
+        when(mockSession.close()).thenThrow(Exception.class);
+
+        when(mockSession.beginTransaction()).thenReturn(mockTransaction);
+        doThrow(Exception.class).when(mockTransaction).commit();
+
+        List<?> dataList = commonClassDao.getData(OnapName.class);
+        assertNull(dataList);
+
+        List<?> dataByIdList = commonClassDao.getDataById(UserInfo.class, "userLoginId:userName", "TestID:Test");
+        assertNull(dataByIdList);
+
+        commonClassDao.save(null);
+        commonClassDao.delete(null);
+        commonClassDao.update(null);
+
+        List<?> dupEntryList =
+                commonClassDao.checkDuplicateEntry("TestID:Test", "userLoginId:userName", UserInfo.class);
+        assertNull(dupEntryList);
+
+        List<PolicyRoles> userRoles = commonClassDao.getUserRoles();
+        assertNull(userRoles);
+
+        Object entityItem = commonClassDao.getEntityItem(UserInfo.class, "testColName", "testKey");
+        assertNull(entityItem);
+
+        commonClassDao.updateQuery("testQueryString");
+
+        List<String> dataByColumn = commonClassDao.getDataByColumn(UserInfo.class, "testColName");
+        assertNull(dataByColumn);
+
+        List<?> entityData = commonClassDao.getMultipleDataOnAddingConjunction(UserInfo.class, "", null);
+        assertNull(entityData);
+    }
+
+    @Test
+    public void testCheckExistingGroupListforUpdate() {
+        Object retObj = commonClassDao.checkExistingGroupListforUpdate("testString1", "testString2");
+        assertNotNull(retObj);
+        assertTrue(retObj instanceof List);
+        List<?> retList = (List<?>) retObj;
+        assertTrue(retList.isEmpty());
+    }
+
+    @Test
+    public void testEmptyMethods() {
+        commonClassDao.deleteAll();
+        commonClassDao.updateClAlarms("TestString1", "TestString2");
+        commonClassDao.updateClYaml("TestString1", "TestString2");
+    }
+
     @After
     public void deleteDB() {
         sessionFactory.close();