/*
* Copyright [duowan.com]
* Web Site: http://www.duowan.com
* Since 2005 - 2012
*/
package com.fpcms.service.impl;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import com.fpcms.CmsSiteDataFactory;
import com.fpcms.common.base.BaseServiceTestCase;
import com.fpcms.common.util.KeywordUtil;
import com.fpcms.dao.CmsSiteDao;
import com.fpcms.model.CmsSite;
/**
* @author badqiu email:badqiu(a)gmail.com
* @version 1.0
* @since 1.0
*/
public class CmsSiteServiceImplTest extends BaseServiceTestCase{
//mock框架使用Mockito 具体使用请查看: http://code.google.com/p/mockito/wiki/MockitoVSEasyMock
private CmsSiteServiceImpl service = new CmsSiteServiceImpl();
private CmsSiteDao cmsSiteDao = mock(CmsSiteDao.class);
@Before
public void setUp() {
service.setCmsSiteDao(cmsSiteDao);
}
@Test
public void test_create() {
CmsSite obj = CmsSiteDataFactory.newCmsSite();
service.create(obj);
verify(cmsSiteDao).insert(obj); //验证执行了该语句
}
@Test
public void test_update() {
CmsSite obj = CmsSiteDataFactory.newCmsSite();
service.update(obj);
verify(cmsSiteDao).update(obj); //验证执行了该语句
}
@Test
public void test_removeById() {
service.removeById(new java.lang.String("1"));
verify(cmsSiteDao).deleteById(new java.lang.String("1")); //验证执行了该语句
}
@Test
public void test_getById() {
when(cmsSiteDao.getById(new java.lang.String("1"))).thenReturn(CmsSiteDataFactory.newCmsSite()); // mock方法调用
CmsSite cmsSite = service.getById(new java.lang.String("1"));
verify(cmsSiteDao).getById(new java.lang.String("1")); //验证执行了该语句
assertNotNull(cmsSite);
}
@Test
public void test_updateSearchEngineKeywordMaxRank() {
List<CmsSite> returnList = getTestCmsSiteList();
when(cmsSiteDao.findAll()).thenReturn(returnList); // mock方法调用
List<CmsSite> list = service.updateSearchEngineKeywordMaxRank();
assertEquals(list.get(0).getRankBaidu(),1);
verify(cmsSiteDao).findAll(); //验证执行了该语句
verify(cmsSiteDao,atLeast(2)).update(any(CmsSite.class)); //验证执行了该语句
}
private List<CmsSite> getTestCmsSiteList() {
List<CmsSite> returnList = new ArrayList();
CmsSite cmsSite = CmsSiteDataFactory.newCmsSite();
cmsSite.setSiteDomain("news.163.com");
cmsSite.setKeyword("网易新闻");
cmsSite.setRecordBaidu(20);
cmsSite.setRankBaidu(20);
returnList.add(cmsSite);
cmsSite = CmsSiteDataFactory.newCmsSite();
cmsSite.setSiteDomain("news.qq.com");
cmsSite.setKeyword("腾讯新闻");
cmsSite.setRecordBaidu(10);
cmsSite.setRankBaidu(10);
returnList.add(cmsSite);
return returnList;
}
@Test
public void test_updateSearchEngineRecord() {
List<CmsSite> returnList = getTestCmsSiteList();
when(cmsSiteDao.findAll()).thenReturn(returnList); // mock方法调用
List<CmsSite> list = service.updateSearchEngineRecord();
assertTrue(list.get(0).getRecordBaidu()> 100000);
verify(cmsSiteDao).findAll(); //验证执行了该语句
verify(cmsSiteDao,atLeast(2)).update(any(CmsSite.class)); //验证执行了该语句
}
}