DateTimeTestBase.java

package tools.jackson.databind.ext.javatime;

import java.time.ZoneId;
import java.util.*;

import tools.jackson.core.json.JsonWriteFeature;
import tools.jackson.databind.ObjectMapper;
import tools.jackson.databind.cfg.MapperBuilder;
import tools.jackson.databind.json.JsonMapper;

public class DateTimeTestBase
    extends tools.jackson.databind.testutil.DatabindTestUtil
{
    protected static final ZoneId UTC = ZoneId.of("UTC");

    protected static final ZoneId Z_CHICAGO = ZoneId.of("America/Chicago");
    protected static final ZoneId Z_BUDAPEST = ZoneId.of("Europe/Budapest");

    // 14-Mar-2016, tatu: Serialization of trailing zeroes may change [datatype-jsr310#67]
    //   Note, tho, that "0.0" itself is special case; need to avoid scientific notation:
    final protected static String NO_NANOSECS_SER = "0.0";
    final protected static String NO_NANOSECS_SUFFIX = ".000000000";

    protected static ObjectMapper newMapper() {
        return newMapperBuilder().build();
    }

    protected static MapperBuilder<?,?> newMapperBuilder() {
        return JsonMapper.builder()
                .disable(JsonWriteFeature.ESCAPE_FORWARD_SLASHES);
    }

    protected static MapperBuilder<?,?> newMapperBuilder(TimeZone tz) {
        return JsonMapper.builder()
                .defaultTimeZone(tz)
                .disable(JsonWriteFeature.ESCAPE_FORWARD_SLASHES);
    }

    protected static ObjectMapper newMapper(TimeZone tz) {
        return newMapperBuilder(tz).build();
    }

    protected static JsonMapper.Builder mapperBuilder() {
        return JsonMapper.builder()
                .defaultLocale(Locale.ENGLISH)
                .disable(JsonWriteFeature.ESCAPE_FORWARD_SLASHES);
    }

    protected static <T> Map<T, String> asMap(T key, String value) {
        return Collections.singletonMap(key, value);
    }

    protected static String mapAsString(String key, String value) {
        return String.format("{\"%s\":\"%s\"}", key, value);
    }
}