81a85a5381523d251d5cd55d429879b4c58c55a6
[Sone.git] / src / test / java / net / pterodactylus / sone / main / DebugLoadersTest.java
1 package net.pterodactylus.sone.main;
2
3 import static org.hamcrest.MatcherAssert.assertThat;
4 import static org.hamcrest.Matchers.is;
5
6 import java.io.File;
7 import java.io.IOException;
8 import java.io.StringWriter;
9
10 import net.pterodactylus.util.template.Template;
11 import net.pterodactylus.util.template.TemplateContext;
12
13 import com.google.common.base.Charsets;
14 import com.google.common.io.Files;
15 import org.junit.Before;
16 import org.junit.Rule;
17 import org.junit.Test;
18 import org.junit.rules.TemporaryFolder;
19
20 /**
21  * Unit test for {@link DebugLoaders}.
22  *
23  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
24  */
25 public class DebugLoadersTest {
26
27         @Rule
28         public final TemporaryFolder temporaryFolder = new TemporaryFolder();
29
30         private final StringWriter stringWriter = new StringWriter();
31         private final TemplateContext templateContext = new TemplateContext();
32         private String templatePath;
33         private Loaders loaders;
34
35         @Before
36         public void setupLoader() throws IOException {
37                 templatePath = temporaryFolder.newFolder("temps").getPath();
38                 loaders = new DebugLoaders(templatePath);
39         }
40
41         @Test
42         public void debugLoaderCanLoadTemplatesFromFilesystem() throws IOException {
43                 File templateFile = new File(templatePath, "template.txt");
44                 Files.write("<%if foo>foo<%else>bar<%/if>", templateFile, Charsets.UTF_8);
45                 Template template = loaders.loadTemplate("/template.txt");
46                 template.render(templateContext, stringWriter);
47                 assertThat(stringWriter.toString(), is("bar"));
48         }
49
50 }