/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package qa.qcri.aidr.dbmanager.ejb.remote.facade.imp; import static org.junit.Assert.assertEquals; 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 java.util.Date; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.Persistence; import org.apache.log4j.Logger; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import qa.qcri.aidr.common.exception.PropertyNotSetException; import qa.qcri.aidr.dbmanager.dto.CollectionDTO; import qa.qcri.aidr.dbmanager.dto.CrisisTypeDTO; import qa.qcri.aidr.dbmanager.dto.UsersDTO; /** * * @author nalemadi */ public class TestUsersResourceFacadeImp { static UsersResourceFacadeImp userResourceFacadeImp; static EntityManager entityManager; static UsersDTO user; static String userName = "userDBTest"+new Date(); static String userRole = "normal"+new Date(); static CollectionDTO crisis; static CollectionResourceFacadeImp crisisResourceFacadeImp; static CrisisTypeResourceFacadeImp crisisTypeResourceFacadeImp; private static Logger logger = Logger.getLogger("db-manager-log"); @BeforeClass public static void setUpClass() { userResourceFacadeImp = new UsersResourceFacadeImp(); entityManager = Persistence.createEntityManagerFactory( "ProjectDBManagerTest-ejbPU").createEntityManager(); userResourceFacadeImp.setEntityManager(entityManager); crisisResourceFacadeImp = new CollectionResourceFacadeImp(); crisisTypeResourceFacadeImp = new CrisisTypeResourceFacadeImp(); crisisResourceFacadeImp.setEntityManager(entityManager); crisisTypeResourceFacadeImp.setEntityManager(entityManager); } @Before public void setUp() { user = new UsersDTO(userName, userRole); entityManager.getTransaction().begin(); user = userResourceFacadeImp.addUser(user); entityManager.getTransaction().commit(); } @AfterClass public static void shutDown() throws Exception { userResourceFacadeImp.getEntityManager().close(); } @After public void tearDown() { try { if (crisis != null) { entityManager.getTransaction().begin(); crisisResourceFacadeImp.deleteCrisis(crisis); entityManager.getTransaction().commit(); CollectionDTO result = crisisResourceFacadeImp.getCrisisByCode(crisis.getCode()); assertNull(result); crisis=null; } if (user != null) { entityManager.getTransaction().begin(); user = userResourceFacadeImp.getUserByName(user.getName()); userResourceFacadeImp.deleteUser(user.getUserID()); entityManager.getTransaction().commit(); UsersDTO result = userResourceFacadeImp.getUserByName(user.getName()); assertNull(result); } } catch (PropertyNotSetException e) { logger.error("PropertyNotSetException while deleting user by id "+e.getMessage()); fail("tearDown failed"); } } /** * Test of getUserByName method, of class UsersResourceFacadeImp. */ @Test public void testGetUserByName() { try { UsersDTO result = userResourceFacadeImp.getUserByName(user .getName()); assertEquals(user.getUserID(), result.getUserID()); } catch (PropertyNotSetException ex) { logger.error("PropertyNotSetException while fetching user by name "+ex.getMessage()); fail("testGetUserByName failed"); } } /** * Test of getUserById method, of class UsersResourceFacadeImp. */ @Test public void testGetUserById() { try { UsersDTO result = userResourceFacadeImp.getUserById(user .getUserID()); assertEquals(user.getName(), result.getName()); } catch (PropertyNotSetException ex) { logger.error("PropertyNotSetException while fetching user by id "+ex.getMessage()); fail("testGetUserById failed"); } } /** * Test of getAllUsersByName method, of class UsersResourceFacadeImp. */ @Test public void testGetAllUsersByName() { try { List<UsersDTO> result = userResourceFacadeImp .getAllUsersByName(user.getName()); assertEquals(user.getName(), result.get(0).getName()); } catch (PropertyNotSetException ex) { logger.error("PropertyNotSetException while fetching all user by name "+ex.getMessage()); fail("testGetAllUsersByName failed"); } } /** * Test of findAllCrisisByUserID method, of class UsersResourceFacadeImp. */ @Test public void testFindAllCrisisByUserId() { try { CrisisTypeDTO crisisTypeDTO = crisisTypeResourceFacadeImp.findCrisisTypeByID(1100L); CollectionDTO crisisDTO = new CollectionDTO("testCrisisName", "testCrisisCode", false, false, crisisTypeDTO, user, user); entityManager.getTransaction().begin(); crisis = crisisResourceFacadeImp.addCrisis(crisisDTO); entityManager.getTransaction().commit(); List<CollectionDTO> result = userResourceFacadeImp .findAllCrisisByUserID(user.getUserID()); assertEquals(user.getUserID(), result.get(0).getUsersDTO() .getUserID()); } catch (PropertyNotSetException ex) { logger.error("PropertyNotSetException while fetching all crisis by userId "+ex.getMessage()); fail("testFindAllCrisisByUserID failed"); } } /** * Test of addUser method, of class UsersResourceFacadeImp. */ @Test public void testAddUser() { assertEquals(userName, user.getName()); } /** * Test of deleteUser method, of class UsersResourceFacadeImp. */ @Test public void testDeleteUser() { entityManager.getTransaction().begin(); int result = userResourceFacadeImp.deleteUser(user.getUserID()); entityManager.getTransaction().commit(); assertEquals(1, result); user = null; } /** * Test of findByCriteria method, of class UsersResourceFacadeImp. */ @Test public void testFindByCriteria() { try { String columnName = "role"; String value = userRole; List<UsersDTO> result = userResourceFacadeImp.findByCriteria( columnName, value); assertNotNull(result); assertEquals(userRole, result.get(0).getRole()); } catch (PropertyNotSetException ex) { logger.error("PropertyNotSetException while fetching users by criteria "+ex.getMessage()); fail("testFindByCriteria failed"); } } /** * Test of getAllUsers method, of class UsersResourceFacadeImp. */ @Test public void testGetAllUsers() { try { List<UsersDTO> result = userResourceFacadeImp.getAllUsers(); assertNotNull(result); assertTrue(result.size() >= 1); } catch (PropertyNotSetException ex) { logger.error("PropertyNotSetException while fetching all users "+ex.getMessage()); fail("testGetAllUsers failed"); } } }