package org.skyscreamer.yoga.listener;
import java.io.IOException;
import java.util.ArrayList;
import org.junit.BeforeClass;
import org.junit.Test;
import org.skyscreamer.yoga.exceptions.EntityCountExceededException;
import org.skyscreamer.yoga.mapper.ResultTraverser;
import org.skyscreamer.yoga.mapper.YogaRequestContext;
import org.skyscreamer.yoga.model.ObjectListHierarchicalModelImpl;
import org.skyscreamer.yoga.selector.CoreSelector;
import org.skyscreamer.yoga.selector.SelectorResolver;
import org.skyscreamer.yoga.test.model.basic.BasicTestDataLeaf;
import org.skyscreamer.yoga.test.util.DummyHttpServletRequest;
import org.skyscreamer.yoga.test.util.DummyHttpServletResponse;
public class CountLimitRenderingListenerTest
{
static ResultTraverser resultTraverser;
static int MAX_RESULTS = 100;
static YogaRequestContext requestContext;
@BeforeClass
public static void setup()
{
resultTraverser = new ResultTraverser();
requestContext = new YogaRequestContext( "map", new SelectorResolver(), new DummyHttpServletRequest(),
new DummyHttpServletResponse(), new CountLimitRenderingListener( MAX_RESULTS ) );
}
@Test(expected = EntityCountExceededException.class)
public void testLotsOfData() throws IOException
{
ArrayList<BasicTestDataLeaf> input = new ArrayList<BasicTestDataLeaf>();
for (int i = 0; i < MAX_RESULTS + 1; i++)
{
input.add( new BasicTestDataLeaf() );
}
ObjectListHierarchicalModelImpl model = new ObjectListHierarchicalModelImpl();
resultTraverser.traverse( input, new CoreSelector(), model, requestContext );
}
}