package com.tencent.dao;
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 java.util.List;
import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.transaction.TransactionConfiguration;
import com.tencent.model.Resource;
@ContextConfiguration({ "/applicationContext.xml" })
@TransactionConfiguration(transactionManager = "hibernateTransactionManager", defaultRollback = true)
public class ResourceDAOImplTest {
public static Logger log = Logger.getLogger(ResourceDAOImplTest.class);
private static com.tencent.model.Resource resource;
private static IResourceDAO resourceDao;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
resourceDao = (IResourceDAO) ctx.getBean("resourceDao");
resource = new com.tencent.model.Resource("title", 1, 1, "cause",
"content");
}
@After
public void tearDown() throws Exception {
com.tencent.model.Resource t_resource = resourceDao
.findByTitle("title");
if (t_resource != null) {
resourceDao.delete(t_resource);
}
}
@Test
public final void testFindBytitle() {
int id = resourceDao.save(resource);
com.tencent.model.Resource t_resource = resourceDao
.findByTitle("title");
assertEquals(id, t_resource.getId());
}
@Test
public final void testFindById() {
int id = resourceDao.save(resource);
com.tencent.model.Resource t_resource = resourceDao.findById(
com.tencent.model.Resource.class, id);
assertNotNull(t_resource);
assertEquals(id, t_resource.getId());
}
@Test
public final void testSave() {
int id = resourceDao.save(resource);
com.tencent.model.Resource t_resource = resourceDao.findById(
com.tencent.model.Resource.class, id);
assertEquals(id, t_resource.getId());
}
@Test
public final void testDelete() {
int id = resourceDao.save(resource);
com.tencent.model.Resource t_resource = resourceDao.findById(
com.tencent.model.Resource.class, id);
resourceDao.delete(t_resource);
t_resource = resourceDao.findById(com.tencent.model.Resource.class, id);
assertNull(t_resource);
}
@Test
public final void testUpdate() {
int id = resourceDao.save(resource);
com.tencent.model.Resource t_resource = resourceDao.findById(
com.tencent.model.Resource.class, id);
t_resource.setCause("test");
t_resource.setInput(100);
resourceDao.update(t_resource);
t_resource = null;
t_resource = resourceDao.findById(com.tencent.model.Resource.class, id);
assertEquals("test", t_resource.getCause());
assertEquals(100, t_resource.getInput());
}
@SuppressWarnings("unchecked")
@Test
public final void testListString() {
int id = resourceDao.save(resource);
List<com.tencent.model.Resource> list = (List<Resource>) resourceDao
.list("from Resource");
assertTrue(!list.isEmpty());
assertEquals(1, list.size());
assertEquals(id, list.get(0).getId());
}
@Test
public final void testListStringIntIntObjectArray() {
int id = resourceDao.save(resource);
@SuppressWarnings("unchecked")
List<com.tencent.model.Resource> list = (List<Resource>) resourceDao.list(
"from Resource r where r.content=? and r.status=?", 0, 1,
"content", 1);
assertTrue(!list.isEmpty());
assertEquals(1, list.size());
assertEquals(id, list.get(0).getId());
}
}