package io.robe.convert.xml.parsers;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.robe.convert.xml.ParserUtil;
import org.junit.Test;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.Date;
import static org.junit.Assert.*;
public class ParseDateTest {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.S")
public Date testDate;
public Date testDateNoPattern;
@Test
public void parse() throws Exception {
Date expected = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse("2016-10-31 09:10:12.2");
Field field = getClass().getField("testDate");
ParseDate parseDate = new ParseDate();
Date actual = parseDate.parse(ParserUtil.getParser("<date>2016-10-31 09:10:12.2</date>"), field);
assertEquals(expected, actual);
}
@Test
public void parseEmpty() throws Exception {
Date expected = null;
Field field = getClass().getField("testDate");
ParseDate parseDate = new ParseDate();
Date actual = parseDate.parse(ParserUtil.getParser("<date></date>"), field);
assertEquals(expected, actual);
}
@Test
public void parseSpace() throws Exception {
Date expected = null;
Field field = getClass().getField("testDate");
ParseDate parseDate = new ParseDate();
Date actual = parseDate.parse(ParserUtil.getParser("<date> </date>"), field);
assertEquals(expected, actual);
}
@Test(expected = RuntimeException.class)
public void parseNoFormat() throws Exception {
Field field = getClass().getField("testDateNoPattern");
ParseDate parseDate = new ParseDate();
parseDate.parse(ParserUtil.getParser("<date>2016-10-31 09:10:12.2</date>"), field);
}
@Test(expected = RuntimeException.class)
public void parseWrongFormat() throws Exception {
Field field = getClass().getField("testDate");
ParseDate parseDate = new ParseDate();
parseDate.parse(ParserUtil.getParser("<date>2016-10-3109:10:12</date>"), field);
}
}