added method to read templates from a reader

This commit is contained in:
Sebastian Sdorra
2012-10-29 13:04:00 +01:00
parent 94d8d9f2bf
commit 8d58137bae
9 changed files with 211 additions and 5 deletions

View File

@@ -30,10 +30,13 @@
*/
package sonia.scm.template;
//~--- JDK imports ------------------------------------------------------------
import java.io.InputStream;
import javax.servlet.ServletContext;
/**
@@ -82,4 +85,19 @@ public class FreemarkerTemplateEngineTest extends TemplateEngineTestBase
{
return "sonia/scm/template/002.ftl";
}
/**
* Method description
*
*
* @param resource
*
* @return
*/
@Override
protected InputStream getResource(String resource)
{
return FreemarkerTemplateEngineTest.class.getResourceAsStream(
"/sonia/scm/template/".concat(resource).concat(".ftl"));
}
}

View File

@@ -30,10 +30,13 @@
*/
package sonia.scm.template;
//~--- JDK imports ------------------------------------------------------------
import java.io.InputStream;
import javax.servlet.ServletContext;
/**
@@ -82,4 +85,19 @@ public class MustacheTemplateEngineTest extends TemplateEngineTestBase
{
return "sonia/scm/template/001.mustache";
}
/**
* Method description
*
*
* @param resource
*
* @return
*/
@Override
protected InputStream getResource(String resource)
{
return MustacheTemplateEngineTest.class.getResourceAsStream(
"/sonia/scm/template/".concat(resource).concat(".mustache"));
}
}

View File

@@ -30,10 +30,12 @@
*/
package sonia.scm.template;
//~--- non-JDK imports --------------------------------------------------------
import com.google.common.collect.Maps;
import com.google.common.io.Closeables;
import org.junit.Test;
@@ -46,9 +48,13 @@ import static org.mockito.Mockito.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringWriter;
import java.net.URL;
import java.util.Map;
import javax.servlet.ServletContext;
/**
@@ -86,6 +92,16 @@ public abstract class TemplateEngineTestBase
*/
public abstract String getTemplateResource();
/**
* Method description
*
*
* @param resource
*
* @return
*/
protected abstract InputStream getResource(String resource);
//~--- methods --------------------------------------------------------------
/**
@@ -135,6 +151,45 @@ public abstract class TemplateEngineTestBase
assertNotNull(engine.getTemplate(getTemplateResource()));
}
/**
* Method description
*
*
* @throws IOException
*/
@Test
public void testGetTemplateFromReader() throws IOException
{
ServletContext context = mock(ServletContext.class);
TemplateEngine engine = createEngine(context);
InputStream input = null;
try
{
input = getResource("007");
Template template = engine.getTemplate("007",
new InputStreamReader(input));
assertNotNull(template);
Map<String, Object> env = Maps.newHashMap();
env.put("time", "Lunchtime");
StringWriter writer = new StringWriter();
template.execute(writer, env);
assertEquals("Time is an illusion. Lunchtime doubly so.",
writer.toString());
}
finally
{
Closeables.closeQuietly(input);
}
}
/**
* Method description
*