I faced other deserialization problems. Instead of creating new
ObjectMapper I overrided
method io.dropwizard.testing.junit.DropwizardAppRule#clientBuilder and used
io.dropwizard.testing.junit.DropwizardAppRule#getObjectMapper:
@ClassRule
public static final DropwizardAppRule<NotesConfiguration> APP = new
DropwizardAppRule<NotesConfiguration>(
NotesApplication.class,
ResourceHelpers.resourceFilePath("test-config.yml")
) {
@Override
protected JerseyClientBuilder clientBuilder() {
final JacksonJsonProvider jsonProvider = new JacksonJsonProvider();
jsonProvider.setMapper(getObjectMapper());
return new JerseyClientBuilder()
.property(ClientProperties.CONNECT_TIMEOUT, 1000)
.property(ClientProperties.READ_TIMEOUT, 5000)
.register(jsonProvider);
}
};
perjantai 29. syyskuuta 2017 22.51.11 UTC+3 Antti Pohjanpalo kirjoitti:
>
> I managed to get it working by adding:
>
> @Before
> public void before() {
> ObjectMapper objectMapper = new ObjectMapper();
> objectMapper.registerModule(new JavaTimeModule());
>
> JacksonJsonProvider provider = new JacksonJsonProvider();
> provider.setMapper(objectMapper);
>
> APP.client().register(provider);
> }
>
> Not sure if I should open an issue for this or not.
>
> keskiviikko 27. syyskuuta 2017 19.57.00 UTC+3 Antti Pohjanpalo kirjoitti:
>>
>> Hi!
>>
>> I'm having problem with the following test class:
>>
>> public class NotesApplicationTest {
>>
>> @ClassRule
>> public static final DropwizardAppRule<NotesConfiguration> APP = new
>> DropwizardAppRule<>(
>> NotesApplication.class,
>> ResourceHelpers.resourceFilePath("test-config.yml")
>> );
>>
>> private final String BASE_URI = String.format("http://localhost:%d",
>> APP.getLocalPort());
>>
>> @Test
>> public void shouldGetNotes() {
>> Response response = APP.client()
>> .target(BASE_URI + "/notes/1")
>> .request(MediaType.APPLICATION_JSON_TYPE)
>> .get();
>>
>> assertThat(response.getStatus()).isEqualTo(200);
>> NoteResponse note = response.readEntity(NoteResponse.class); //
>> this line throws error
>> }
>>
>> }
>>
>> The error I get is this:
>>
>> Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not
>> deserialize instance of java.time.LocalDate out of START_ARRAY token
>> at [Source: org.glassfish.jersey.message.internal.
>> ReaderInterceptorExecutor$UnCloseableInputStream@28b286c0; line: 1,
>> column: 16] (through reference chain: anttipp.notes.rest.api.NoteResponse
>> ["date"])
>> at com.fasterxml.jackson.databind.JsonMappingException.from(
>> JsonMappingException.java:270)
>> at com.fasterxml.jackson.databind.DeserializationContext.
>> reportMappingException(DeserializationContext.java:1234)
>>
>> The application itself works fine and testing with ResourceTestRule
>> <http://dropwizard.readthedocs.io/en/latest/manual/testing.html#testing-resources>
>> is
>> also working fine. I'm using Dropwizard 1.1.4. How should I setup my test
>> case to get it working? Could this be something similar than in
>> https://github.com/dropwizard/dropwizard-java8/issues/8 ?
>>
>
--
You received this message because you are subscribed to the Google Groups
"dropwizard-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.