/*
* 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 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.CrisisTypeDTO;
/**
*
* @author nalemadi
*/
public class TestCrisisTypeResourceFacadeImp {
static CrisisTypeResourceFacadeImp crisisTypeResourceFacadeImp;
static CollectionResourceFacadeImp crisisResourceFacadeImp;
static UsersResourceFacadeImp userResourceFacadeImp;
static EntityManager entityManager;
static CrisisTypeDTO addCrisisType;
static String crisisTypeName = "Natural Hazard: Geophysical: Earthquake and/or Tsunami";
static Long crisisTypeId = 1100L;
static String sampleCrisisTypeName = "Test_Crisis_Type_Name"+new Date();
private static Logger logger = Logger.getLogger("db-manager-log");
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
public void setUp() {
crisisTypeResourceFacadeImp = new CrisisTypeResourceFacadeImp();
entityManager = Persistence.createEntityManagerFactory(
"ProjectDBManagerTest-ejbPU").createEntityManager();
crisisTypeResourceFacadeImp.setEntityManager(entityManager);
crisisResourceFacadeImp = new CollectionResourceFacadeImp();
crisisResourceFacadeImp.setEntityManager(entityManager);
userResourceFacadeImp = new UsersResourceFacadeImp();
userResourceFacadeImp.setEntityManager(entityManager);
}
@AfterClass
public static void shutDown() throws Exception {
crisisTypeResourceFacadeImp.getEntityManager().close();
}
@After
public void tearDown() {
}
/**
* Test of getAllCrisisTypes method, of class CrisisTypeResourceFacadeImp.
*/
@Test
public void testGetAllCrisisTypes() {
List<CrisisTypeDTO> result = crisisTypeResourceFacadeImp
.getAllCrisisTypes();
assertNotNull(result);
assertEquals(crisisTypeName, result.get(1).getName());
}
/**
* Test of addCrisisType method, of class CrisisTypeResourceFacadeImp.
*/
@Test
public void testAddCrisisType() {
CrisisTypeDTO addCrisisType = new CrisisTypeDTO();
addCrisisType.setName(sampleCrisisTypeName);
entityManager.getTransaction().begin();
CrisisTypeDTO result = crisisTypeResourceFacadeImp
.addCrisisType(addCrisisType);
entityManager.getTransaction().commit();
assertEquals(sampleCrisisTypeName, result.getName());
entityManager.getTransaction().begin();
crisisTypeResourceFacadeImp.deleteCrisisType(result.getCrisisTypeId());
entityManager.getTransaction().commit();
}
/**
* Test of editCrisisType method, of class CrisisTypeResourceFacadeImp.
*/
@Test
public void testEditCrisisType() {
CrisisTypeDTO addCrisisType = new CrisisTypeDTO();
addCrisisType.setName(sampleCrisisTypeName);
entityManager.getTransaction().begin();
CrisisTypeDTO result = crisisTypeResourceFacadeImp
.addCrisisType(addCrisisType);
entityManager.getTransaction().commit();
result.setName(sampleCrisisTypeName + "2");
entityManager.getTransaction().begin();
result = crisisTypeResourceFacadeImp.editCrisisType(result);
entityManager.getTransaction().commit();
assertEquals(sampleCrisisTypeName + "2", result.getName());
entityManager.getTransaction().begin();
crisisTypeResourceFacadeImp.deleteCrisisType(result
.getCrisisTypeId());
entityManager.getTransaction().commit();
}
/**
* Test of deleteCrisisType method, of class CrisisTypeResourceFacadeImp.
*/
@Test
public void testDeleteCrisisType() {
CrisisTypeDTO addCrisisType = new CrisisTypeDTO();
addCrisisType.setName(sampleCrisisTypeName);
entityManager.getTransaction().begin();
CrisisTypeDTO result = crisisTypeResourceFacadeImp
.addCrisisType(addCrisisType);
entityManager.getTransaction().commit();
entityManager.getTransaction().begin();
int delResult = crisisTypeResourceFacadeImp.deleteCrisisType(result
.getCrisisTypeId());
entityManager.getTransaction().commit();
assertEquals(1, delResult);
}
/**
* Test of findCrisisTypeByID method, of class CrisisTypeResourceFacadeImp.
*/
@Test
public void testFindCrisisTypeByID() {
CrisisTypeDTO result = crisisTypeResourceFacadeImp
.findCrisisTypeByID(crisisTypeId);
assertEquals(crisisTypeName, result.getName());
}
/**
* Test of isCrisisTypeExists method, of class CrisisTypeResourceFacadeImp.
*/
@Test
public void testIsCrisisTypeExists() {
boolean result = crisisTypeResourceFacadeImp
.isCrisisTypeExists(crisisTypeId);
assertEquals(true, result);
}
/**
* Test of getAllCrisisForCrisisTypeID method, of class
* CrisisTypeResourceFacadeImp.
*/
/*
* @Test public void testGetAllCrisisForCrisisTypeID() { try {
* CrisisDTO crisisDTO =
* new CrisisDTO(); crisisDTO.setName("testCrisisName");
* crisisDTO.setCode("testCrisisCode"); crisisDTO.setIsTrashed(false);
* CrisisTypeDTO crisisTypeDTO =
* crisisTypeResourceFacadeImp.findCrisisTypeByID(crisisTypeId);
* crisisDTO.setCrisisTypeDTO(crisisTypeDTO); UsersDTO user =
* userResourceFacadeImp.getUserById(1L); crisisDTO.setUsersDTO(user);
* entityManager.getTransaction().begin(); crisisDTO =
* crisisResourceFacadeImp.addCrisis(crisisDTO);
* entityManager.getTransaction().commit();
*
* List<CrisisDTO> result =
* crisisTypeResourceFacadeImp.getAllCrisisForCrisisTypeID(crisisTypeId);
* assertEquals(crisisTypeName, result.get(0).getCrisisTypeDTO().getName());
*
* entityManager.getTransaction().begin();
* crisisResourceFacadeImp.deleteCrisis(crisisDTO);
* entityManager.getTransaction().commit(); } catch (PropertyNotSetException
* ex) {
* Logger.getLogger(CrisisTypeResourceFacadeImpTest.class.getName()).log
* (Level.SEVERE,
* "PropertyNotSetException while getting all crisises for a specific crisis type "
* , ex); } }
*/
}