@Test public void testResolvesTemplateFromFinder() { AssetsFinder finder = spy(new TestAssetsFinder()); mustacheTemplateProcessor.setAssetsFinder(finder); mustacheTemplateProcessor.resolve("/test.mustache", MediaType.TEXT_HTML_TYPE); verify(finder).find("/test.mustache"); }
@Test public void testKeepsAssetsFinder() { AssetsFinder finder = new TestAssetsFinder(); mustacheTemplateProcessor.setAssetsFinder(finder); AssetsFinder actualFinder = mustacheTemplateProcessor.getAssetsFinder(); assertThat(actualFinder).isSameAs(finder); }
@Test public void testWritesTemplate() throws IOException { mustacheTemplateProcessor.setAssetsFinder(new TestAssetsFinder()); Mustache mustache = mustacheTemplateProcessor.resolve("/test.mustache", MediaType.TEXT_HTML_TYPE); Viewable viewable = mock(Viewable.class); when(viewable.getModel()).thenReturn(new TestModel("bar")); ByteArrayOutputStream out = new ByteArrayOutputStream(); MultivaluedMap<String, Object> httpHeaders = new MultivaluedHashMap<>(); mustacheTemplateProcessor.writeTo( mustache, viewable, MediaType.TEXT_HTML_TYPE, httpHeaders, out); out.close(); String result = new String(out.toByteArray(), Charsets.UTF_8); assertThat(result).isEqualTo("test bar"); }
@Test public void testWritesTemplateAndSetsEncodingHeader() throws IOException { mustacheTemplateProcessor.setAssetsFinder(new TestAssetsFinder()); Mustache mustache = mustacheTemplateProcessor.resolve("/test.mustache", MediaType.TEXT_HTML_TYPE); Viewable viewable = mock(Viewable.class); when(viewable.getModel()).thenReturn(new TestModel("bar")); ByteArrayOutputStream out = new ByteArrayOutputStream(); MultivaluedMap<String, Object> httpHeaders = new MultivaluedHashMap<>(); MediaType type = MediaType.TEXT_HTML_TYPE.withCharset("ISO-8859-1"); mustacheTemplateProcessor.writeTo(mustache, viewable, type, httpHeaders, out); out.close(); String result = new String(out.toByteArray(), Charset.forName("ISO-8859-1")); assertThat(result).isEqualTo("test bar"); assertThat(httpHeaders.get(HttpHeaders.CONTENT_TYPE).get(0)) .isEqualTo("text/html;charset=ISO-8859-1"); }
@Test(expected = IllegalStateException.class) public void testFailsResolvingWithoutResourceFinder() { mustacheTemplateProcessor.resolve("foo.mustache", MediaType.TEXT_HTML_TYPE); }
@Test(expected = IllegalArgumentException.class) public void testFailsToAddNullAssetsFinder() { mustacheTemplateProcessor.setAssetsFinder(null); }