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.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;
import com.tencent.model.ContactUs;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "/applicationContext.xml" })
@TransactionConfiguration(transactionManager = "hibernateTransactionManager", defaultRollback = true)
public class ContactUsDAOImplTest {
public static Logger log = Logger.getLogger(ContactUsDAOImplTest.class);
private ContactUs contactUs = new ContactUs();
@Resource
private IContactUsDAO contactUsDao;
public void setDao(IContactUsDAO dao) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
this.contactUsDao = (IContactUsDAO) ctx.getBean("contactUsDao");
}
public IContactUsDAO getDao(){
return (IContactUsDAO) this.contactUsDao;
}
@Before
public void setUp() throws Exception {
contactUs.setContent("content");
}
@After
public void tearDown() throws Exception {
ContactUs t_contactUs = contactUsDao.findByContent("content");
if(t_contactUs != null){
contactUsDao.delete(t_contactUs);
}
}
@Test
@Transactional
public final void testFindByContent() {
contactUsDao.save(contactUs);
ContactUs t_contactUs = contactUsDao.findByContent("content");
assertEquals("content", t_contactUs.getContent());
}
@Test
@Transactional
public final void testFindById() {
int id = contactUsDao.save(contactUs);
ContactUs t_contactUs = contactUsDao.findById(ContactUs.class, id);
assertEquals(id,t_contactUs.getId());
}
@Test
@Transactional
public final void testSave() {
int id = contactUsDao.save(contactUs);
assertTrue(id > 0);
}
@Test
@Transactional
public final void testDelete() {
int id = contactUsDao.save(contactUs);
ContactUs t_contactUs = contactUsDao.findById(ContactUs.class, id);
contactUsDao.delete(t_contactUs);
t_contactUs = null;
t_contactUs = contactUsDao.findById(ContactUs.class, id);
assertNull(t_contactUs);
}
@Test
@Transactional
public final void testUpdate() {
int id = contactUsDao.save(contactUs);
ContactUs t_contactUs = contactUsDao.findById(ContactUs.class, id);
t_contactUs.setContent("testUpdate");
contactUsDao.update(t_contactUs);
ContactUs resoult = contactUsDao.findById(ContactUs.class, id);
assertEquals("testUpdate",resoult.getContent());
}
@SuppressWarnings("unchecked")
@Test
public final void testList() {
int id = contactUsDao.save(contactUs);
List<ContactUs> list = (List<ContactUs>) contactUsDao.list("from ContactUs");
assertTrue(!list.isEmpty());
assertEquals(id, list.get(0).getId());
}
@Test
public final void testList1() {
int id = contactUsDao.save(contactUs);
@SuppressWarnings("unchecked")
List<ContactUs> list = (List<ContactUs>) contactUsDao.list(
"from ContactUs as a where a.nickname=? and a.content=?", 0, 1,
"匿名","content");
assertTrue(!list.isEmpty());
assertTrue(list.size() == 1);
assertEquals(id, list.get(0).getId());
}
}