package org.trimou.gson.converter; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.trimou.AbstractTest; import org.trimou.Mustache; import org.trimou.engine.MustacheEngine; import org.trimou.engine.MustacheEngineBuilder; import org.trimou.engine.config.EngineConfigurationKey; import org.trimou.gson.resolver.JsonElementResolver; import com.google.gson.JsonParser; /** * * @author Martin Kouba */ public class GsonValueConverterTest extends AbstractTest { @Test public void testConverter() { MustacheEngine engine = MustacheEngineBuilder.newBuilder() .addValueConverter(new GsonValueConverter()) .setProperty(EngineConfigurationKey.SKIP_VALUE_ESCAPING, true) .setProperty(JsonElementResolver.UNWRAP_JSON_PRIMITIVE_KEY, true) .setProperty(GsonValueConverter.ENABLED_KEY, true).build(); Mustache mustache = engine.compileMustache("converter_test", "{{#this}}{{.}}{{/this}}"); assertEquals("1true", mustache.render(new JsonParser().parse("[\"1\",true,null]"))); } @Test public void testUnwrapJsonPrimitiveSetToFalse() { MustacheEngine engine = MustacheEngineBuilder.newBuilder() .addValueConverter(new GsonValueConverter()) .setProperty(EngineConfigurationKey.SKIP_VALUE_ESCAPING, true) .setProperty(JsonElementResolver.UNWRAP_JSON_PRIMITIVE_KEY, false) .setProperty(GsonValueConverter.ENABLED_KEY, false).build(); Mustache mustache = engine.compileMustache( "converter_unwrap_primitive_disabled_test", "{{#this}}{{.}}{{/this}}"); assertEquals("\"1\"truenull", mustache.render(new JsonParser().parse("[\"1\",true,null]"))); } }