package org.trimou.engine.resolver;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
import org.trimou.AbstractEngineTest;
import org.trimou.util.ImmutableMap;
/**
*
* @author Martin Kouba
*/
public class MapResolverTest extends AbstractEngineTest {
@Test
public void testResolution() {
MapResolver resolver = new MapResolver();
assertNull(resolver.resolve(null, "foo", null));
assertNotNull(
resolver.resolve(ImmutableMap.of("bar", "baz"), "bar", null));
assertNull(
resolver.resolve(ImmutableMap.of("bar", "baz"), "qux", null));
}
@Test
public void testInterpolation() {
Map<String, Integer> map = new HashMap<>(2);
map.put("foo", 1);
map.put("bar", 2);
Mapper mapper = key -> "foo".equals(key) ? 10 : null;
Map<String, Object> data = ImmutableMap.of("map", map, "mapper", mapper);
String templateContents = "Hello {{map.foo}} or {{map.bar}}!|{{map.nonExisting}} {{mapper.foo}}";
assertEquals("Hello 1 or 2!| 10",
engine.compileMustache("map", templateContents).render(data));
}
}