Last active
March 9, 2021 12:08
-
-
Save renato04/f11c8b8a09f71410e8dec2d3cd4000a3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package example; | |
import com.fasterxml.jackson.databind.DeserializationFeature; | |
import com.fasterxml.jackson.databind.ObjectMapper; | |
import com.jayway.jsonpath.Configuration; | |
import com.jayway.jsonpath.Option; | |
import com.jayway.jsonpath.internal.DefaultsImpl; | |
import com.jayway.jsonpath.spi.json.JacksonJsonProvider; | |
import com.jayway.jsonpath.spi.json.JsonProvider; | |
import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider; | |
import com.jayway.jsonpath.spi.mapper.MappingProvider; | |
import org.apache.commons.io.input.CountingInputStream; | |
import org.junit.After; | |
import org.junit.Before; | |
import org.junit.Test; | |
import org.junit.runner.RunWith; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; | |
import org.springframework.test.context.junit4.SpringRunner; | |
import org.springframework.test.web.servlet.MockMvc; | |
import java.io.ByteArrayInputStream; | |
import java.math.BigInteger; | |
import java.util.EnumSet; | |
import java.util.Set; | |
import static org.hamcrest.Matchers.is; | |
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; | |
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; | |
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; | |
/** | |
* Unit tests for the API | |
*/ | |
@RunWith(SpringRunner.class) | |
@WebMvcTest(ExampleController.class) | |
public class ExampleControllerTest { | |
@Autowired | |
private MockMvc mockMvc; | |
// Reset to default configuration | |
@After | |
public void after(){ | |
Configuration.setDefaults(DefaultsImpl.INSTANCE); | |
} | |
@Test | |
public void testBigDecimalWithConfig() throws Exception { | |
final ObjectMapper objectMapper = new ObjectMapper(); | |
objectMapper.enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS); // default is Double | |
configJsonProvider(objectMapper); | |
this.mockMvc.perform(get("/test/bigdecimal")) | |
.andDo(print()) | |
.andExpect(jsonPath("$.value", is(ExampleController.VALUE_BIG_DECIMAL))); | |
} | |
private void configJsonProvider(ObjectMapper objectMapper) { | |
Configuration.setDefaults(new Configuration.Defaults() { | |
private final JsonProvider jsonProvider = new JacksonJsonProvider(objectMapper); | |
private final MappingProvider mappingProvider = new JacksonMappingProvider(objectMapper); | |
@Override | |
public JsonProvider jsonProvider() { | |
return jsonProvider; | |
} | |
@Override | |
public MappingProvider mappingProvider() { | |
return mappingProvider; | |
} | |
@Override | |
public Set<Option> options() { | |
return EnumSet.noneOf(Option.class); | |
} | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment