package com.tencent.dao;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.List;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import com.tencent.model.Task;
import com.tencent.model.User;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "/applicationContext.xml" })
@TransactionConfiguration(transactionManager = "hibernateTransactionManager", defaultRollback = true)
public class TaskDAOImplTest {
public static Logger log = Logger.getLogger(TaskDAOImplTest.class);
private static User user = new User("username", "password", "M",
"test@qq.com", "935789181", "13871398643", "CS", "大二", 0,
"description", 1, 1);
private User t_user;
private static Task task = new Task("content", 1, true);
private ITaskDAO taskDao;
private IUserDAO userDao;
public ITaskDAO getTaskDao() {
return taskDao;
}
@Resource(name = "taskDao")
public void setTaskDao(ITaskDAO taskDao) {
this.taskDao = taskDao;
}
public IUserDAO getUserDao() {
return userDao;
}
@Resource(name = "userDao")
public void setUserDao(IUserDAO userDao) {
this.userDao = userDao;
}
@Before
public void setUp() throws Exception {
int id = userDao.save(user);
user = userDao.findById(User.class, id);
task.setBuilder(user);
}
@After
public void tearDown() throws Exception {
Task t_task = taskDao.findByContent("content");
if (t_task != null) {
taskDao.delete(t_task);
}
t_user = userDao.findByName("username");
if(t_user != null){
userDao.delete(t_user);
}
}
@Test
public final void testFindByContent() {
int id = taskDao.save(task);
Task t_task = taskDao.findByContent("content");
assertEquals(id, t_task.getId());
assertEquals("content", t_task.getContent());
}
@Test
public final void testFindById() {
int id = taskDao.save(task);
Task t_task = taskDao.findById(Task.class, id);
assertEquals(id, t_task.getId());
}
@Test
public final void testSave() {
this.testFindById();
}
@Test
public final void testDelete() {
int id = taskDao.save(task);
Task t_task = taskDao.findById(Task.class, id);
taskDao.delete(t_task);
t_task = taskDao.findByContent("content");
assertNull(t_task);
}
@Test
public final void testUpdate() {
int id = taskDao.save(task);
Task t_task = taskDao.findById(Task.class, id);
t_task.setType(2);
taskDao.update(t_task);
t_task = taskDao.findById(Task.class, id);
assertEquals(2, t_task.getType());
}
@SuppressWarnings("unchecked")
@Test
public final void testListString() {
int id = taskDao.save(task);
List<Task> list = (List<Task>) taskDao.list("from Task");
assertTrue(!list.isEmpty());
assertEquals(id, list.get(0).getId());
}
@Test
public final void testListStringIntIntObjectArray() {
int id = taskDao.save(task);
@SuppressWarnings("unchecked")
List<Task> list = (List<Task>) taskDao.list(
"from Task t where t.type=? and t.content=?", 0, 1, 1,
"content");
assertEquals(1, list.size());
assertEquals(id, list.get(0).getId());
}
}