From e9aa46473bd8721e3498d092c0d0dff7d2081708 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 18 Aug 2012 13:20:41 +0200 Subject: [PATCH] added test for defect templates --- .../scm/template/FreemarkerTemplateTest.java | 34 ++++++++++++-- .../scm/template/MustacheTemplateTest.java | 37 +++++++++++++-- .../sonia/scm/template/TemplateTestBase.java | 45 +++++++++++++++++-- .../resources/sonia/scm/template/003.mustache | 1 + .../test/resources/sonia/scm/template/004.ftl | 1 + 5 files changed, 109 insertions(+), 9 deletions(-) create mode 100644 scm-webapp/src/test/resources/sonia/scm/template/003.mustache create mode 100644 scm-webapp/src/test/resources/sonia/scm/template/004.ftl diff --git a/scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateTest.java b/scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateTest.java index 8917411b87..cb6a7116cd 100644 --- a/scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateTest.java +++ b/scm-webapp/src/test/java/sonia/scm/template/FreemarkerTemplateTest.java @@ -57,11 +57,39 @@ public class FreemarkerTemplateTest extends TemplateTestBase * @throws IOException */ @Override - public Template getTemplate() throws IOException + public Template getFailureTemplate() throws IOException + { + return getTemplate("sonia/scm/template/002.ftl"); + } + + /** + * Method description + * + * + * @return + * + * @throws IOException + */ + @Override + public Template getHelloTemplate() throws IOException + { + return getTemplate("sonia/scm/template/004.ftl"); + } + + /** + * Method description + * + * + * @param path + * + * @return + * + * @throws IOException + */ + private Template getTemplate(String path) throws IOException { ServletContext context = mock(ServletContext.class); - return new FreemarkerTemplateEngine(context).getTemplate( - "sonia/scm/template/002.ftl"); + return new FreemarkerTemplateEngine(context).getTemplate(path); } } diff --git a/scm-webapp/src/test/java/sonia/scm/template/MustacheTemplateTest.java b/scm-webapp/src/test/java/sonia/scm/template/MustacheTemplateTest.java index 86cd8c22df..7ff4c185b3 100644 --- a/scm-webapp/src/test/java/sonia/scm/template/MustacheTemplateTest.java +++ b/scm-webapp/src/test/java/sonia/scm/template/MustacheTemplateTest.java @@ -36,6 +36,10 @@ package sonia.scm.template; import com.github.mustachejava.DefaultMustacheFactory; import com.github.mustachejava.Mustache; +//~--- JDK imports ------------------------------------------------------------ + +import java.io.IOException; + /** * * @author Sebastian Sdorra @@ -48,13 +52,40 @@ public class MustacheTemplateTest extends TemplateTestBase * * * @return + * + * @throws IOException */ @Override - public Template getTemplate() + public Template getFailureTemplate() throws IOException + { + return getTemplate("sonia/scm/template/003.mustache"); + } + + /** + * Method description + * + * + * @return + */ + @Override + public Template getHelloTemplate() + { + return getTemplate("sonia/scm/template/001.mustache"); + } + + /** + * Method description + * + * + * @param path + * + * @return + */ + private Template getTemplate(String path) { DefaultMustacheFactory factory = new DefaultMustacheFactory(); - Mustache mustache = factory.compile("sonia/scm/template/001.mustache"); + Mustache mustache = factory.compile(path); - return new MustacheTemplate("sonia/scm/template/001.mustache", mustache); + return new MustacheTemplate(path, mustache); } } diff --git a/scm-webapp/src/test/java/sonia/scm/template/TemplateTestBase.java b/scm-webapp/src/test/java/sonia/scm/template/TemplateTestBase.java index c30f496a85..15f6e3994e 100644 --- a/scm-webapp/src/test/java/sonia/scm/template/TemplateTestBase.java +++ b/scm-webapp/src/test/java/sonia/scm/template/TemplateTestBase.java @@ -59,7 +59,17 @@ public abstract class TemplateTestBase * * @return */ - public abstract Template getTemplate() throws IOException; + public abstract Template getFailureTemplate() throws IOException; + + /** + * Method description + * + * + * @return + * + * @throws IOException + */ + public abstract Template getHelloTemplate() throws IOException; //~--- methods -------------------------------------------------------------- @@ -72,8 +82,37 @@ public abstract class TemplateTestBase @Test public void testRender() throws IOException { - Template template = getTemplate(); + Template template = getHelloTemplate(); + assertEquals("Hello marvin!", execute(template)); + } + + /** + * Method description + * + * + * @throws IOException + */ + @Test(expected = IOException.class) + public void testRenderFailure() throws IOException + { + Template template = getFailureTemplate(); + + execute(template); + } + + /** + * Method description + * + * + * @param template + * + * @return + * + * @throws IOException + */ + private String execute(Template template) throws IOException + { Map env = Maps.newHashMap(); env.put("name", "marvin"); @@ -82,6 +121,6 @@ public abstract class TemplateTestBase template.execute(writer, env); - assertEquals("Hello marvin!", writer.toString()); + return writer.toString(); } } diff --git a/scm-webapp/src/test/resources/sonia/scm/template/003.mustache b/scm-webapp/src/test/resources/sonia/scm/template/003.mustache new file mode 100644 index 0000000000..a2338b1b4a --- /dev/null +++ b/scm-webapp/src/test/resources/sonia/scm/template/003.mustache @@ -0,0 +1 @@ +Hello {{/name}}! \ No newline at end of file diff --git a/scm-webapp/src/test/resources/sonia/scm/template/004.ftl b/scm-webapp/src/test/resources/sonia/scm/template/004.ftl new file mode 100644 index 0000000000..e446eee93b --- /dev/null +++ b/scm-webapp/src/test/resources/sonia/scm/template/004.ftl @@ -0,0 +1 @@ +Hello <#list a>! \ No newline at end of file