package com.jamierf.dropwizard.debpkg.template;
import com.github.mustachejava.MustacheException;
import com.google.common.collect.ImmutableMap;
import com.google.common.io.Resources;
import com.jamierf.dropwizard.debpkg.template.mustache.MustacheTemplater;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
public class MustacheTemplateTest {
private static String getTemplate(String path) throws IOException {
return Resources.toString(MustacheTemplateTest.class.getResource(path), StandardCharsets.UTF_8);
}
private Templater templater;
@Before
public void setUp() {
templater = new MustacheTemplater();
}
@Test
public void testNullTemplate() throws IOException {
final String result = templater.execute(null, "test", Collections.emptyMap());
assertNull(result);
}
@Test
public void testEmptyTemplate() throws IOException {
final String result = templater.execute("", "test", Collections.emptyMap());
assertEquals("", result);
}
@Test
public void testBasicText() throws IOException {
final String template = getTemplate("text.mustache");
final String result = templater.execute(template, "test", Collections.emptySet());
assertEquals("hello world", result);
}
@Test
public void testSimpleTemplate() throws IOException {
final String template = getTemplate("simple.mustache");
final String result = templater.execute(template, "test", ImmutableMap.of(
"location", "world"
));
assertEquals("hello world", result);
}
@Test
public void testConditionalTemplate() throws IOException {
final String template = getTemplate("conditional.mustache");
final String result = templater.execute(template, "test", ImmutableMap.of(
"location", "world"
));
assertEquals("hello world", result);
}
@Test(expected = MissingParameterException.class)
public void testMissingParameter() throws IOException {
final String template = getTemplate("simple.mustache");
templater.execute(template, "test", Collections.emptySet());
}
@Test(expected = MustacheException.class)
public void testInvalidTemplate() throws IOException {
final String template = getTemplate("invalid.mustache");
templater.execute(template, "test", Collections.emptySet());
}
}