package io.ebeaninternal.server.type; import org.junit.Test; import java.sql.Timestamp; import static org.assertj.core.api.StrictAssertions.assertThat; public class DateTimeJsonParserTest { @Test public void parseFormat_when_hasMillis() throws Exception { DateTimeJsonParser parser = new DateTimeJsonParser(); String input = "2016-02-28T20:39:00.123Z"; String formatted = parseAndFormat(parser, input); assertThat(formatted).isEqualTo("2016-02-28T20:39:00.123Z"); } @Test public void parseFormat_when_noMillis() throws Exception { DateTimeJsonParser parser = new DateTimeJsonParser(); String input = "2016-02-28T20:39:00Z"; String formatted = parseAndFormat(parser, input); assertThat(formatted).isEqualTo("2016-02-28T20:39:00.000Z"); } @Test public void parseFormat_when_millis_1dp() throws Exception { DateTimeJsonParser parser = new DateTimeJsonParser(); String input = "2016-02-28T20:39:00.0Z"; String formatted = parseAndFormat(parser, input); assertThat(formatted).isEqualTo("2016-02-28T20:39:00.000Z"); } @Test public void parseFormat_when_millis_2dp() throws Exception { DateTimeJsonParser parser = new DateTimeJsonParser(); String input = "2016-02-28T20:39:00.00Z"; String formatted = parseAndFormat(parser, input); assertThat(formatted).isEqualTo("2016-02-28T20:39:00.000Z"); } @Test public void parseFormat_when_millis_3dp() throws Exception { DateTimeJsonParser parser = new DateTimeJsonParser(); String input = "2016-02-28T20:39:00.000Z"; String formatted = parseAndFormat(parser, input); assertThat(formatted).isEqualTo("2016-02-28T20:39:00.000Z"); } private String parseAndFormat(DateTimeJsonParser parser, String input) { Timestamp timestamp = parser.parse(input); return parser.format(timestamp); } }