package org.trimou.jsonp.converter;
import static org.junit.Assert.assertEquals;
import java.io.StringReader;
import javax.json.Json;
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.jsonp.resolver.JsonValueResolver;
/**
*
* @author Martin Kouba
*/
public class JsonProcessingValueConverterTest extends AbstractTest {
@Test
public void testConverter() {
MustacheEngine engine = MustacheEngineBuilder.newBuilder()
.addValueConverter(new JsonProcessingValueConverter())
.setProperty(EngineConfigurationKey.SKIP_VALUE_ESCAPING, true)
.setProperty(JsonValueResolver.ENABLED_KEY, false)
.setProperty(JsonProcessingValueConverter.ENABLED_KEY, true)
.build();
Mustache mustache = engine.compileMustache("converter_test",
"{{#this}}{{.}}{{/this}}");
assertEquals("1true", mustache.render(Json
.createReader(new StringReader("[\"1\",true,null]")).read()));
}
@Test
public void testUnwrapJsonPrimitiveSetToFalse() {
MustacheEngine engine = MustacheEngineBuilder.newBuilder()
.addValueConverter(new JsonProcessingValueConverter())
.setProperty(EngineConfigurationKey.SKIP_VALUE_ESCAPING, true)
.setProperty(JsonValueResolver.ENABLED_KEY, false)
.setProperty(JsonProcessingValueConverter.ENABLED_KEY, false)
.build();
Mustache mustache = engine.compileMustache(
"converter_unwrap_primitive_disabled_test",
"{{#this}}{{.}}{{/this}}");
assertEquals("\"1\"truenull", mustache.render(Json
.createReader(new StringReader("[\"1\",true,null]")).read()));
}
}