package com.pugh.sockso.web.action;
import com.pugh.sockso.tests.SocksoTestCase;
import com.pugh.sockso.tests.TestRequest;
import com.pugh.sockso.web.action.covers.BaseCoverer;
public class CovererTest extends SocksoTestCase {
private Coverer action;
public static int runState = 0;
@Override
protected void setUp() {
action = new Coverer();
action.setRequest( new TestRequest("GET /foo/bar HTTP/1.0") );
}
public void testNoLoginRequired() {
assertFalse( action.requiresLogin() );
}
public void testNoSessionRequired() {
assertFalse( action.requiresSession() );
}
public void testCoverPluginsAreCheckedForCoverMatches() throws Exception {
runState = 0;
action.addPlugin(new CovererPluginAdapter() {
public boolean serveCover( String name ) {
CovererTest.runState = 1;
return true;
}
});
action.handleRequest();
assertEquals( 1, runState );
}
public void testPluginProcessingStopsWhenFirstPluginReturnsTrue() throws Exception {
runState = 0;
action.addPlugin(new CovererPluginAdapter() {
public boolean serveCover( String name ) {
CovererTest.runState = 1;
return true;
}
});
action.addPlugin(new CovererPluginAdapter() {
public boolean serveCover( String name ) {
CovererTest.runState = 2;
return true;
}
});
action.handleRequest();
assertEquals( 1, runState );
}
}
class CovererPluginAdapter extends BaseCoverer {
public boolean serveCover( String name ) {
return false;
}
}