package com.hubspot.jinjava.lib.tag;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.google.common.base.Throwables;
import com.google.common.io.Resources;
import com.hubspot.jinjava.Jinjava;
import com.hubspot.jinjava.interpret.Context;
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
import com.hubspot.jinjava.loader.ResourceLocator;
public class FromTagTest {
private Context context;
private JinjavaInterpreter interpreter;
@Before
public void setup() {
Jinjava jinjava = new Jinjava();
jinjava.setResourceLocator(new ResourceLocator() {
@Override
public String getString(String fullName, Charset encoding,
JinjavaInterpreter interpreter) throws IOException {
return Resources.toString(
Resources.getResource(String.format("tags/macrotag/%s", fullName)), StandardCharsets.UTF_8);
}
});
interpreter = jinjava.newInterpreter();
JinjavaInterpreter.pushCurrent(interpreter);
context = interpreter.getContext();
context.put("padding", 42);
}
@After
public void cleanup() {
JinjavaInterpreter.popCurrent();
}
@Test
public void importedContextExposesVars() {
assertThat(fixture("from"))
.contains("wrap-spacer:")
.contains("<td height=\"42\">")
.contains("wrap-padding: padding-left:42px;padding-right:42px");
}
private String fixture(String name) {
try {
return interpreter.renderFlat(Resources.toString(
Resources.getResource(String.format("tags/macrotag/%s.jinja", name)), StandardCharsets.UTF_8));
} catch (IOException e) {
throw Throwables.propagate(e);
}
}
}