/*
* Copyright [duowan.com]
* Web Site: http://www.duowan.com
* Since 2005 - 2012
*/
package com.fpcms.dao.impl;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.time.DateUtils;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
import org.springframework.beans.factory.annotation.Autowired;
import com.github.rapid.common.util.DateConvertUtil;
import com.github.rapid.common.util.DateRange;
import com.github.rapid.common.util.page.Page;
import com.github.rapid.common.util.page.PageQuery;
import com.fpcms.CmsContentDataFactory;
import com.fpcms.common.base.BaseDaoTestCase;
import com.fpcms.dao.CmsContentDao;
import com.fpcms.model.CmsContent;
import com.fpcms.query.CmsContentQuery;
/**
* @author badqiu email:badqiu(a)gmail.com
* @version 1.0
* @since 1.0
*/
public class CmsContentDaoImplTest extends BaseDaoTestCase{
@Rule public TestName testName = new TestName();
private CmsContentDao dao;
@Autowired
public void setCmsContentDao(CmsContentDao dao) {
this.dao = dao;
}
@Override
protected String[] getDbUnitDataFiles() {
//通过testName.getMethodName() 可以得到当前正在运行的测试方法名称
// return new String[]{"classpath:testdata/common.xml","classpath:testdata/CmsContent.xml",
// "classpath:testdata/CmsContent_"+testName.getMethodName()+".xml"};
return null;
}
//数据库单元测试前会开始事务,结束时会回滚事务,所以测试方法可以不用关心测试数据的删除
@Test
public void findPage() {
CmsContentQuery query = CmsContentDataFactory.newCmsContentQuery();
Page page = dao.findPage(query);
assertEquals(1,page.getPaginator().getPage());
assertEquals(10,page.getPaginator().getPageSize());
List resultList = (List)page.getItemList();
assertNotNull(resultList);
}
@Test
public void test_insert() {
CmsContent c = CmsContentDataFactory.newCmsContent();
dao.insert(c);
}
@Test
public void test_update() {
dao.update(CmsContentDataFactory.newCmsContent());
}
@Test
public void test_delete() {
dao.deleteById(new java.lang.Long("1"));
}
@Test
public void test_getById() {
dao.getById(new java.lang.Long("1"));
}
@Test
public void test_getNextCmsContent() {
Date date = new Date();
CmsContent nextCmsContent = dao.getNextCmsContent(date,"localhost", 150);
assertNotNull(nextCmsContent);
assertTrue(nextCmsContent.getId() > 150);
}
@Test
public void test_getPreCmsContent() {
Date date = new Date();
CmsContent preCmsContent = dao.getPreCmsContent(date,"localhost", 150);
assertNotNull(preCmsContent);
assertTrue(preCmsContent.getId() < 150);
}
@Test
public void test_findPage2() {
Date endDate = new Date();
Date startDate = DateUtils.addDays(endDate, -30);
Page<CmsContent> page = dao.findPage(new PageQuery(1, 20), "localhost", "news", new DateRange(startDate, endDate));
assertNotNull(page);
assertFalse(page.getItemList().isEmpty());
}
@Test
public void test_findBySiteLike() {
Date endDate = new Date();
Date startDate = DateUtils.addDays(endDate, -30);
Page<CmsContent> page = dao.findBySiteLike(new PageQuery(1, 20), "localhost", "news", new DateRange(startDate, endDate));
assertNotNull(page);
assertFalse(page.getItemList().isEmpty());
}
@Test
public void test_countByTitle() {
test_insert();
int result = dao.countByTitle(DateUtils.addDays(new Date(),-20), new Date(), CmsContentDataFactory.newCmsContent().getTitle());
assertTrue(result == 1);
result = dao.countByTitle(DateUtils.addDays(new Date(),-20), new Date(), "not exist title 1111111111111xcsdf");
assertTrue(result == 0);
}
@Test
public void test_countBySearchKeyword() {
test_insert();
int result = dao.countBySearchKeyword(DateUtils.addDays(new Date(),-20), new Date(), CmsContentDataFactory.newCmsContent().getSearchKeyword());
assertTrue(result == 1);
result = dao.countBySearchKeyword(DateUtils.addDays(new Date(),-20), new Date(), "not exist title 1111111111111xcsdf");
assertTrue(result == 0);
}
@Test
public void test_getByDateCreatedAndId() {
dao.getById(new Date(), 1);
}
@Test
public void test_findLastBySite() {
assertNotNull(dao.findLastBySite("localhost"));
}
@Test
public void test_countBySourceUrl() {
test_insert();
int result = dao.countBySourceUrl(DateUtils.addDays(new Date(),-20), new Date(), CmsContentDataFactory.newCmsContent().getSearchKeyword());
assertTrue(result == 1);
result = dao.countBySourceUrl(DateUtils.addDays(new Date(),-20), new Date(), "not_exist_source_url_xxxxxxxxxxx928");
assertTrue(result == 0);
}
@Test
public void test_findFirstByCreatedDay() {
CmsContent createdDay = dao.findFirstByCreatedDay("localhost", DateConvertUtil.extract(new Date(), "yyyy-MM-dd"));
assertNotNull(createdDay);
}
@Test
public void statSite() {
List<Map<String,Object>> list = dao.statSite(new DateRange());
assertNotNull(list);
}
}