package com.github.mustachejava.functions;
import com.github.mustachejava.DefaultMustacheFactory;
import com.github.mustachejava.Mustache;
import com.github.mustachejava.MustacheException;
import com.github.mustachejava.MustacheFactory;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import static com.github.mustachejava.TestUtil.getContents;
import static org.junit.Assert.assertEquals;
public class CommentTest {
@Test
public void testCommentBlock() throws MustacheException, IOException, ExecutionException, InterruptedException {
File root = getRoot("comment.html");
MustacheFactory c = new DefaultMustacheFactory(root);
Mustache m = c.compile("comment.html");
StringWriter sw = new StringWriter();
Map scope = new HashMap();
scope.put("ignored", "ignored");
m.execute(sw, scope);
assertEquals(getContents(root, "comment.txt"), sw.toString());
}
@Test
public void testCommentInline() throws MustacheException, IOException, ExecutionException, InterruptedException {
File root = getRoot("commentinline.html");
MustacheFactory c = new DefaultMustacheFactory(root);
Mustache m = c.compile("commentinline.html");
StringWriter sw = new StringWriter();
Map scope = new HashMap();
scope.put("title", "A Comedy of Errors");
m.execute(sw, scope);
assertEquals(getContents(root, "commentinline.txt"), sw.toString());
}
@Test
public void testInlineCommentWithinExtendCodeBlock() throws MustacheException, IOException, ExecutionException, InterruptedException {
File root = getRoot("commentWithinExtendCodeBlock.html");
MustacheFactory c = new DefaultMustacheFactory(root);
Mustache m = c.compile("commentWithinExtendCodeBlock.html");
StringWriter sw = new StringWriter();
m.execute(sw, Collections.emptyList());
assertEquals(getContents(root, "commentWithinExtendCodeBlock.txt"), sw.toString());
}
private File getRoot(String fileName) {
File file = new File("compiler/src/test/resources/functions");
return new File(file, fileName).exists() ? file : new File("src/test/resources/functions");
}
}