package com.hubspot.jinjava.lib.filter;
import static org.assertj.core.api.Assertions.assertThat;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import org.junit.Before;
import org.junit.Test;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.hubspot.jinjava.objects.date.PyishDate;
public class PrettyPrintFilterTest {
PrettyPrintFilter f;
@Before
public void setup() {
f = new PrettyPrintFilter();
}
@Test
public void ppString() {
assertThat(f.filter("foobar", null)).isEqualTo("{% raw %}(String: foobar){% endraw %}");
}
@Test
public void ppInt() {
assertThat(f.filter(123, null)).isEqualTo("{% raw %}(Integer: 123){% endraw %}");
}
@Test
public void ppPyDate() {
assertThat(f.filter(new PyishDate(ZonedDateTime.of(2014, 8, 4, 0, 0, 0, 0, ZoneOffset.UTC)), null)).isEqualTo("{% raw %}(PyishDate: 2014-08-04 00:00:00){% endraw %}");
}
@Test
public void ppMap() {
assertThat(f.filter(ImmutableMap.of("a", "foo", "b", "bar"), null))
.isEqualTo("{% raw %}(RegularImmutableMap: {a=foo, b=bar}){% endraw %}");
}
@Test
public void ppList() {
assertThat(f.filter(Lists.newArrayList("foo", "bar"), null)).isEqualTo("{% raw %}(ArrayList: [foo, bar]){% endraw %}");
}
@Test
public void ppObject() {
assertThat(f.filter(new MyClass(), null)).isEqualTo("{% raw %}(MyClass: {bar=123, foo=foofoo}){% endraw %}");
}
public static class MyClass {
public String getFoo() {
return "foofoo";
}
public int getBar() {
return 123;
}
}
}