/*
* 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.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.NominalAttributeDTO;
import qa.qcri.aidr.dbmanager.dto.UsersDTO;
/**
*
* @author Kushal
*/
public class TestNominalAttributeResourceFacadeImp {
//
static UsersResourceFacadeImp userResourceFacadeImp;
static EntityManager entityManager;
static UsersDTO user;
static CollectionDTO crisis;
static CollectionResourceFacadeImp crisisResourceFacadeImp;
static CrisisTypeResourceFacadeImp crisisTypeResourceFacadeImp;
static NominalAttributeDTO nominalAttribute;
static NominalAttributeResourceFacadeImp nominalAttributeResourceFacadeImp;
private static Logger logger = Logger.getLogger("db-manager-log");
@BeforeClass
public static void setUpClass() {
entityManager = Persistence.createEntityManagerFactory(
"ProjectDBManagerTest-ejbPU").createEntityManager();
userResourceFacadeImp = new UsersResourceFacadeImp();
crisisResourceFacadeImp = new CollectionResourceFacadeImp();
crisisTypeResourceFacadeImp = new CrisisTypeResourceFacadeImp();
userResourceFacadeImp.setEntityManager(entityManager);
nominalAttributeResourceFacadeImp = new NominalAttributeResourceFacadeImp();
crisisResourceFacadeImp.setEntityManager(entityManager);
crisisTypeResourceFacadeImp.setEntityManager(entityManager);
nominalAttributeResourceFacadeImp.setEntityManager(entityManager);
user = new UsersDTO("userDBTest"+new Date(), "normal"+new Date());
entityManager.getTransaction().begin();
user = userResourceFacadeImp.addUser(user);
entityManager.getTransaction().commit();
}
@Before
public void setUp() {
try {
nominalAttribute = new NominalAttributeDTO("test_nominal_attribute_name"+new Date(), "test_nominal_attribute_desc"+new Date(), "test_nominal_attribute_code"+new Date());
nominalAttribute.setUsersDTO(user);
entityManager.getTransaction().begin();
nominalAttribute = nominalAttributeResourceFacadeImp.addAttribute(nominalAttribute);
entityManager.getTransaction().commit();
} catch (PropertyNotSetException e) {
logger.error("PropertyNotSetException while adding nominal attribute "+e.getMessage());
fail("setUp failed");
}
}
@AfterClass
public static void shutDown() throws Exception {
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);
}
nominalAttributeResourceFacadeImp.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 (nominalAttribute != null) {
entityManager.getTransaction().begin();
nominalAttributeResourceFacadeImp.deleteAttribute(nominalAttribute.getNominalAttributeId());
entityManager.getTransaction().commit();
nominalAttribute=null;
}
} catch (PropertyNotSetException e) {
logger.error("PropertyNotSetException while deleting user by id "+e.getMessage());
fail("tearDown failed");
}
}
/**
* Test of addAttribute method, of class NominalAttributeResourceFacadeImp.
*/
@Test
public void testAddAttribute() {
assertEquals(user.getUserID(), nominalAttribute.getUsersDTO().getUserID());
}
/**
* Test of deleteAttribute method, of class NominalAttributeResourceFacadeImp.
*/
@Test
public void testDeleteAttribute() {
try {
entityManager.getTransaction().begin();
boolean result = nominalAttributeResourceFacadeImp.deleteAttribute(nominalAttribute.getNominalAttributeId());
entityManager.getTransaction().commit();
assertEquals(true, result);
nominalAttribute=null;
} catch (PropertyNotSetException e) {
logger.error("PropertyNotSetException while deleting nominal attribute "+e.getMessage());
fail("testdeleteAttribute failed");
}
}
/**
* Test of editAttribute method, of class NominalAttributeResourceFacadeImp.
*/
@Test
public void testEditAttribute() {
try {
nominalAttribute.setName("testNameNominal");
entityManager.getTransaction().begin();
nominalAttribute = nominalAttributeResourceFacadeImp.editAttribute(nominalAttribute);
entityManager.getTransaction().commit();
assertEquals("testNameNominal", nominalAttribute.getName());
} catch (PropertyNotSetException e) {
logger.error("PropertyNotSetException while editting nominal attribute "+e.getMessage());
fail("testEditAttribute failed");
}
}
/**
* Test of getAllAttributes method, of class NominalAttributeResourceFacadeImp.
*/
@Test
public void testGetAllAttributes() {
try {
List<NominalAttributeDTO> result = nominalAttributeResourceFacadeImp.getAllAttributes();
assertTrue(result.size()>=1);
} catch (PropertyNotSetException e) {
logger.error("PropertyNotSetException while getting all nominal attributes "+e.getMessage());
fail("testGetAllAttributes failed");
}
}
/**
* Test of getAttributeByID method, of class NominalAttributeResourceFacadeImp.
*/
@Test
public void testGetAttributeByID() {
try {
NominalAttributeDTO result = nominalAttributeResourceFacadeImp.getAttributeByID(nominalAttribute.getNominalAttributeId());
assertEquals(nominalAttribute.getNominalAttributeId(), result.getNominalAttributeId());
} catch (PropertyNotSetException e) {
logger.error("PropertyNotSetException while getting nominal attribute by Id "+e.getMessage());
fail("testGetAttributeByID failed");
}
}
/**
* Test of getAttributeByID method, of class NominalAttributeResourceFacadeImp.
*/
@Test
public void testIsAttributeExists() {
try {
Long result = nominalAttributeResourceFacadeImp.isAttributeExists(nominalAttribute.getCode());
assertEquals(nominalAttribute.getNominalAttributeId(), result);
} catch (PropertyNotSetException e) {
logger.error("PropertyNotSetException while checking whether the nominal attribute code exist or not "+e.getMessage());
fail("isAttributeExists failed");
}
}
/**
* Test of getAllAttributes method, of class NominalAttributeResourceFacadeImp.
*//*
@Test
public void testGetAllAttributesExceptCrisis() {
try {
CrisisTypeDTO crisisTypeDTO = crisisTypeResourceFacadeImp.findCrisisTypeByID(1100L);
CrisisDTO crisisDTO = new CrisisDTO("testCrisisName", "testCrisisCode", false, crisisTypeDTO, user);
entityManager.getTransaction().begin();
crisis = crisisResourceFacadeImp.addCrisis(crisisDTO);
entityManager.getTransaction().commit();
List<CrisisAttributesDTO> result = nominalAttributeResourceFacadeImp.getAllAttributesExceptCrisis(crisis.getCrisisID()+1);
assertTrue(result.size()>=1);
} catch (PropertyNotSetException e) {
logger.error("PropertyNotSetException while getting all nominal attributes except crises "+e.getMessage());
fail("testGetAllAttributesExceptCrisis failed");
}
}*/
}