package org.rendersnake.test;
import java.io.IOException;
import org.rendersnake.HtmlCanvas;
import org.rendersnake.Renderable;
import org.rendersnake.error.RenderException;
import junit.framework.TestCase;
public class RenderExceptionTest extends TestCase {
public class CloseOnEmpty implements Renderable {
public void renderOn(HtmlCanvas html) throws IOException {
html.close();
}
}
public class ErrorInRender implements Renderable {
public void renderOn(HtmlCanvas html) throws IOException {
throw RenderException.caught(new RuntimeException("test"));
}
}
public class WriteNullTag implements Renderable {
public void renderOn(HtmlCanvas html) throws IOException {
html.tag(null);
}
}
public void testEmpty() throws IOException {
HtmlCanvas html = new HtmlCanvas();
try {
html.render(new CloseOnEmpty());
fail("should raise render exception");
} catch (RenderException rex) {
assertTrue(rex.isEmptyStack);
html.render(rex);
assertTrue(html.toHtml().length() > 0);
System.out.println(rex.toString());
}
}
public void testNull() throws IOException {
HtmlCanvas html = new HtmlCanvas();
try {
html.render(new WriteNullTag());
fail("should raise render exception");
} catch (RenderException rex) {
assertTrue(rex.isNullTag);
html.render(rex);
assertTrue(html.toHtml().length() > 0);
System.out.println(rex.toString());
}
}
public void testCaught() throws IOException {
HtmlCanvas html = new HtmlCanvas();
try {
html.render(new ErrorInRender());
fail("should raise render exception");
} catch (RenderException rex) {
assertFalse(rex.isEmptyStack);
html.render(rex);
assertTrue(html.toHtml().length() > 0);
System.out.println(rex.toString());
}
}
}