package jetbrick.template.exec.directive;
import java.util.HashMap;
import java.util.Map;
import jetbrick.template.exec.AbstractJetxTest;
import org.junit.Assert;
import org.junit.Test;
public class DirectiveIncludeTest extends AbstractJetxTest {
@Test
public void testInclude() {
StringBuilder s = new StringBuilder();
s.append("abc");
s.append("#include('/sub.jetx')");
s.append("123");
engine.set(DEFAULT_MAIN_FILE, s.toString());
s = new StringBuilder();
s.append("xxx");
engine.set("/sub.jetx", s.toString());
Assert.assertEquals("abcxxx123", eval());
}
@Test
public void testInclude_args() {
StringBuilder s = new StringBuilder();
s.append("#set(c='c')");
s.append("${a}");
s.append("#include('/sub.jetx', {b:'b'})");
s.append("${c}");
engine.set(DEFAULT_MAIN_FILE, s.toString());
s = new StringBuilder();
s.append("<${a}-${b}-${c}>");
engine.set("/sub.jetx", s.toString());
Map<String, Object> ctx = new HashMap<String, Object>();
ctx.put("a", "a");
Assert.assertEquals("a<a-b-c>c", eval(ctx));
}
@Test
public void testReturn() {
StringBuilder s = new StringBuilder();
s.append("${X}");
s.append("#include('/sub.jetx', 'X')");
s.append("${X}");
engine.set(DEFAULT_MAIN_FILE, s.toString());
s = new StringBuilder();
s.append("#return(12345)");
engine.set("/sub.jetx", s.toString());
Assert.assertEquals("12345", eval());
}
}