package io.ebeaninternal.server.type; import io.ebean.text.TextException; import org.junit.Test; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.time.Year; import static org.junit.Assert.*; public class ScalarTypeYearTest { ScalarTypeYear type = new ScalarTypeYear(); @Test public void testReadData() throws Exception { ByteArrayOutputStream os = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(os); type.writeData(out, Year.of(2013)); type.writeData(out, null); out.flush(); out.close(); ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); ObjectInputStream in = new ObjectInputStream(is); Year year1 = type.readData(in); Year year2 = type.readData(in); assertEquals(Year.of(2013), year1); assertNull(year2); } @Test public void testToJdbcType() throws Exception { Integer year = 2013; Object val1 = type.toJdbcType(Year.of(2013)); Object val2 = type.toJdbcType(2013); Object val3 = type.toJdbcType(2013L); assertEquals(year, val1); assertEquals(year, val2); assertEquals(year, val3); } @Test public void testToBeanType() throws Exception { Year year = Year.of(2013); Year val1 = type.toBeanType(year); Year val2 = type.toBeanType(2013); Year val3 = type.toBeanType(2013L); assertEquals(year, val1); assertEquals(year, val2); assertEquals(year, val3); } @Test public void testFormatValue() throws Exception { String formatted = type.formatValue(Year.of(2013)); assertEquals("2013", formatted); } @Test public void testParse() throws Exception { Year year = type.parse("2013"); assertEquals(Year.of(2013), year); } @Test public void testIsDateTimeCapable() throws Exception { assertFalse(type.isDateTimeCapable()); } @Test(expected = TextException.class) public void testConvertFromMillis() throws Exception { type.convertFromMillis(1000); } @Test public void testJson() throws Exception { JsonTester jsonTester = new JsonTester(type); jsonTester.test(Year.of(2013)); } }