package com.tencent.dao; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; 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.AfterClass; 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.Activity; import com.tencent.model.User; @ContextConfiguration({ "/applicationContext.xml" }) @TransactionConfiguration(transactionManager = "hibernateTransactionManager", defaultRollback = true) public class ActivityDAOImplTest { public static Logger log = Logger.getLogger(ActivityDAOImplTest.class); private static Activity activity; private static User user; private static IActivityDAO activityDao; private static IUserDAO userDao; @BeforeClass public static void init() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext( "applicationContext.xml"); activityDao = (IActivityDAO) ctx.getBean("activityDao"); userDao = (IUserDAO) ctx.getBean("userDao"); user = new User("username", "password", "M", "test@qq.com", "935789181", "13871398643", "CS", "大二", 0, "description", 1, 1); int id = userDao.save(user); user = userDao.findById(User.class, id); activity = new Activity("activity", "location", "description", 1, 1); activity.setCreator(user); } @AfterClass public static void tearDownAfterClass() throws Exception { User t_user = userDao.findByName("username"); if(t_user != null){ userDao.delete(t_user); } } @After public void tearDown() throws Exception { Activity t_activity = activityDao.findByName("activity"); if (t_activity != null) { activityDao.delete(t_activity); } } @Test public final void testFindByName() { activityDao.save(activity); Activity t_activity = activityDao.findByName("activity"); assertEquals("activity", t_activity.getName()); } @Test public final void testFindByLocation() { activityDao.save(activity); List<Activity> list = activityDao.findByLocation("location"); assertFalse(list.isEmpty()); assertEquals("location", list.get(0).getLocation()); } @Test public final void testFindById() { int id = activityDao.save(activity); Activity t_activity = activityDao.findById(Activity.class, id); assertTrue(id == t_activity.getId()); } @Test public final void testSave() { int id = activityDao.save(activity); Activity t_activity = activityDao.findById(Activity.class, id); assertNotNull(t_activity); assertTrue(id == t_activity.getId()); } @Test public final void testDelete() { int id = activityDao.save(activity); activityDao.delete(activity); Activity t_activity = activityDao.findById(Activity.class, id); assertNull(t_activity); } @Test public final void testUpdate() { int id = activityDao.save(activity); Activity t_activity = activityDao.findById(Activity.class, id); t_activity.setLocation("沁苑"); activityDao.update(t_activity); t_activity = null; t_activity = activityDao.findById(Activity.class, id); assertEquals("沁苑", t_activity.getLocation()); } @SuppressWarnings("unchecked") @Test public final void testList() { int id = activityDao.save(activity); List<Activity> list = (List<Activity>) activityDao.list("from Activity"); assertTrue(!list.isEmpty()); assertEquals(id, list.get(0).getId()); } @Test public final void testList1() { int id = activityDao.save(activity); @SuppressWarnings("unchecked") List<Activity> list = (List<Activity>) activityDao.list( "from Activity as a where a.name=? and a.location=?", 0, 1, "activity","location"); assertTrue(!list.isEmpty()); assertTrue(list.size() == 1); assertEquals(id, list.get(0).getId()); } }