DurationDeser337Test.java
package tools.jackson.databind.ext.javatime.deser;
import java.time.Duration;
import org.junit.jupiter.api.Test;
import tools.jackson.databind.*;
import tools.jackson.databind.cfg.DateTimeFeature;
import tools.jackson.databind.ext.javatime.DateTimeTestBase;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class DurationDeser337Test extends DateTimeTestBase
{
@Test
public void testWithDurationsAsTimestamps() throws Exception
{
final ObjectMapper MAPPER_DURATION_TIMESTAMPS = mapperBuilder()
.enable(DateTimeFeature.WRITE_DURATIONS_AS_TIMESTAMPS)
.build();
Duration duration = Duration.parse("PT-43.636S");
String ser = MAPPER_DURATION_TIMESTAMPS.writeValueAsString(duration);
assertEquals("-43.636000000", ser);
Duration deser = MAPPER_DURATION_TIMESTAMPS.readValue(ser, Duration.class);
assertEquals(duration, deser);
assertEquals(deser.toString(), "PT-43.636S");
}
@Test
public void testWithoutDurationsAsTimestamps() throws Exception
{
ObjectMapper mapper = mapperBuilder()
.disable(DateTimeFeature.WRITE_DURATIONS_AS_TIMESTAMPS)
.build();
Duration duration = Duration.parse("PT-43.636S");
String ser = mapper.writeValueAsString(duration);
assertEquals(q("PT-43.636S"), ser);
Duration deser = mapper.readValue(ser, Duration.class);
assertEquals(duration, deser);
}
}