All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kiwiproject.test.constants.KiwiTestConstants Maven / Gradle / Ivy

There is a newer version: 3.7.0
Show newest version
package org.kiwiproject.test.constants;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler;
import io.dropwizard.jackson.Jackson;
import lombok.experimental.UtilityClass;
import org.kiwiproject.json.JsonHelper;
import org.kiwiproject.test.json.LoggingDeserializationTestHandler;

/**
 * A utility class that provides some rather opinionated constants for use in test code.
 * 

* The advantage of using this is (assuming you're OK with the opinions used) that all test * code will use a consistent set of behaviors. */ @UtilityClass public class KiwiTestConstants { /** * An {@link ObjectMapper} that can be used in tests. The mapper is created using * {@link JsonHelper#newDropwizardObjectMapper()} which in turn relies on Dropwizard's * {@link Jackson#newObjectMapper()} method and how it configures the mapper. *

* As of Dropwizard 2.x, the behavior has been changed such that * {@link com.fasterxml.jackson.databind.DeserializationFeature#FAIL_ON_UNKNOWN_PROPERTIES FAIL_ON_UNKNOWN_PROPERTIES} * is false by default now, whereas in previous Dropwizard versions (and in Jackson) the default is true. *

* NOTE: Since this is static, changes to it may persist across tests and cause unexpected behavior. Modify * at your own risk. The recommended usage is as a "read-only" object to use for JSON serialization. * * @see JsonHelper#newDropwizardObjectMapper() * @see Jackson#newObjectMapper() * @see com.fasterxml.jackson.databind.DeserializationFeature#FAIL_ON_UNKNOWN_PROPERTIES */ public static final ObjectMapper OBJECT_MAPPER = JsonHelper.newDropwizardObjectMapper(); /** * A Jackson {@link DeserializationProblemHandler} that can be added to an {@link ObjectMapper} in order to * log and count unknown properties that occur during JSON deserialization. *

* This is added to {@link #OBJECT_MAPPER}. */ public static final LoggingDeserializationTestHandler JSON_DESERIALIZATION_HANDLER = new LoggingDeserializationTestHandler(); static { OBJECT_MAPPER.addHandler(JSON_DESERIALIZATION_HANDLER); } /** * A Kiwi {@link JsonHelper} that can be used in tests. It uses {@link #OBJECT_MAPPER}, which has a behavior * defined by Dropwizard instead of the default Jackson {@link ObjectMapper}. * * @see #OBJECT_MAPPER * @see #JSON_DESERIALIZATION_HANDLER */ public static final JsonHelper JSON_HELPER = new JsonHelper(OBJECT_MAPPER); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy