/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.publication.freemarker.directive.out.article;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import com.ewcms.content.document.model.Content;
import freemarker.core.Environment;
import freemarker.template.TemplateModelException;
/**
* ContentDirectiveOut单元测试
*
* @author wangwei
*/
public class ContentDirectiveOutTest {
@Test
public void testValueIsEmptyOfGetContent()throws Exception{
ContentDirectiveOutMock out = new ContentDirectiveOutMock();
String content = out.getContent(null, null);
Assert.assertNull(content);
content = out.getContent(new ArrayList<Content>(), null);
Assert.assertNull(content);
}
@Test
public void testPageNumberOverflowOfGetContent()throws Exception{
ContentDirectiveOutMock out = new ContentDirectiveOutMock();
out.setPageNumber(2);
String value = out.getContent(initContents(), null);
Assert.assertNull(value);
}
@Test
public void testGetContent()throws Exception{
ContentDirectiveOutMock out = new ContentDirectiveOutMock();
out.setPageNumber(1);
String value = out.getContent(initContents(), null);
Assert.assertEquals("test1", value);
}
@Test
public void testLoopValueCall()throws Exception{
ContentDirectiveOutMock out = new ContentDirectiveOutMock();
out.setPageNumber(0);
Object value = out.loopValue(initContents(), null,null);
Assert.assertEquals("test", value);
}
@Test
public void testConstructOutCall()throws Exception{
ContentDirectiveOutMock out = new ContentDirectiveOutMock();
out.setPageNumber(1);
String value = out.constructOut(initContents(), null,null);
Assert.assertEquals("test1", value);
}
private List<Content> initContents(){
List<Content> list = new ArrayList<Content>();
Content content = new Content();
content.setDetail("test");
list.add(content);
content = new Content();
content.setDetail("test1");
list.add(content);
return list;
}
class ContentDirectiveOutMock extends ContentDirectiveOut{
private int pageNumber = 0;
@Override
int getPageNumber(Environment env)throws TemplateModelException{
return pageNumber;
}
void setPageNumber(int pageNumber){
this.pageNumber = pageNumber;
}
}
}