package net.jsunit.action;
import junit.framework.TestCase;
import net.jsunit.InvalidBrowserIdException;
import net.jsunit.MockBrowserTestRunner;
import net.jsunit.model.BrowserResult;
import net.jsunit.utility.XmlUtility;
public class ResultDisplayerActionTest extends TestCase {
private ResultDisplayerAction action;
private MockBrowserTestRunner mockRunner;
public void setUp() throws Exception {
super.setUp();
action = new ResultDisplayerAction();
mockRunner = new MockBrowserTestRunner();
action.setBrowserTestRunner(mockRunner);
action.setId("12345");
action.setBrowserId(8);
}
public void testResultFound() throws Exception {
mockRunner.resultToReturn = new BrowserResult();
assertEquals(ResultDisplayerAction.SUCCESS, action.execute());
assertEquals("12345", mockRunner.idPassed);
assertEquals(8, mockRunner.browserIdPassed.intValue());
assertEquals(mockRunner.resultToReturn, action.getXmlRenderable());
}
public void testResultNotFound() throws Exception {
assertEquals(ResultDisplayerAction.SUCCESS, action.execute());
assertEquals("12345", mockRunner.idPassed);
assertEquals(8, mockRunner.browserIdPassed.intValue());
assertEquals("<error>No Test Result has been submitted with ID '12345' for browser ID '8'</error>", XmlUtility.asString(action.getXmlRenderable().asXml()));
}
public void testIdNotGiven() throws Exception {
action.setId(null);
action.setBrowserId(null);
assertEquals(ResultDisplayerAction.ERROR, action.execute());
assertNull(mockRunner.idPassed);
assertNull(mockRunner.browserIdPassed);
assertEquals("<error>A Test Result ID and a browser ID must both be given</error>", XmlUtility.asString(action.getXmlRenderable().asXml()));
}
public void testInvalidBrowserId() throws Exception {
action.setId("54321");
action.setBrowserId(12345);
mockRunner = new MockBrowserTestRunner() {
public BrowserResult findResultWithId(String id, int browserId) throws InvalidBrowserIdException {
super.findResultWithId(id, browserId);
throw new InvalidBrowserIdException(browserId);
}
};
action.setBrowserTestRunner(mockRunner);
assertEquals(ResultDisplayerAction.ERROR, action.execute());
assertEquals("54321", this.mockRunner.idPassed);
assertEquals(12345, this.mockRunner.browserIdPassed.intValue());
assertEquals("<error>Invalid Browser ID '12345'</error>", XmlUtility.asString(action.getXmlRenderable().asXml()));
}
}