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.Before; 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.Project; import com.tencent.model.User; @ContextConfiguration({ "/applicationContext.xml" }) @TransactionConfiguration(transactionManager = "hibernateTransactionManager", defaultRollback = true) public class ProjectDAOImplTest { public static Logger log = Logger.getLogger("ProjectDAOImplTest.class"); private Project project = new Project("name", 0, "description", 1); private User user = new User("username", "password", "M", "test@qq.com", "935789181", "13871398643", "CS", "大二", 0, "description", 1, 1); private User t_user; private static IProjectDAO projectDao; private static IUserDAO userDao; @BeforeClass public static void setUpBeforeClass() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext( "applicationContext.xml"); projectDao = (IProjectDAO) ctx.getBean("projectDao"); userDao = (IUserDAO) ctx.getBean("userDao"); } @Before public void setUp() throws Exception { int id = userDao.save(user); t_user = userDao.findById(User.class, id); project.setCharger(t_user); project.setConsignor(t_user); } @After public void tearDown() throws Exception { Project t_project = projectDao.findByName("name"); if (t_project != null) { projectDao.delete(t_project); } t_user = userDao.findByName("username"); if(t_user != null){ userDao.delete(t_user); } } @Test public final void testFindByName() { projectDao.save(project); Project t_project = projectDao.findByName("name"); assertEquals("name", t_project.getName()); } @Test public final void testFindById() { int id = projectDao.save(project); Project t_project = projectDao.findById(Project.class, id); assertNotNull(t_project); assertEquals(id, t_project.getId()); } @Test public final void testSave() { int id = projectDao.save(project); Project t_project = projectDao.findById(Project.class, id); assertNotNull(t_project); assertEquals(id, t_project.getId()); } @Test public final void testDelete() { int id = projectDao.save(project); Project t_project = projectDao.findById(Project.class, id); projectDao.delete(t_project); t_project = projectDao.findById(Project.class, id); assertNull(t_project); } @Test public final void testUpdate() { int id = projectDao.save(project); Project t_project = projectDao.findById(Project.class, id); t_project.setDescription("test"); t_project.setState(2); projectDao.update(t_project); t_project = null; t_project = projectDao.findById(Project.class, id); assertEquals("test", t_project.getDescription()); assertEquals(2, t_project.getState()); } @SuppressWarnings("unchecked") @Test public final void testListString() { int id = projectDao.save(project); List<Project> list = (List<Project>) projectDao.list("from Project"); assertTrue(!list.isEmpty()); assertEquals(1, list.size()); assertEquals(id, list.get(0).getId()); } @Test public final void testListStringIntIntObjectArray() { int id = projectDao.save(project); @SuppressWarnings("unchecked") List<Project> list = (List<Project>) projectDao.list( "from Project p where p.name=? and p.state=?", 0, 1, "name", 1); assertTrue(!list.isEmpty()); assertEquals(1, list.size()); assertEquals("name", list.get(0).getName()); assertEquals(id, list.get(0).getId()); } }