package br.com.citframework.util; import java.sql.Timestamp; import java.util.Calendar; import java.util.Date; import javax.xml.datatype.XMLGregorianCalendar; import org.junit.Assert; import org.junit.Test; /** * Classe de testes para valida��o do comportamento de {@link UtilXMLDate} * * @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a> * @since 01/10/2014 * */ public final class UtilXMLDateTest { private final int YEAR = 2014; private final int MONTH = Calendar.JANUARY; private final int DAY_OF_MONTH = 1; private final int HOUR_OF_DAY = 13; private final int MINUTE = 27; private final int SECOND = 43; private final int MILLISECOND = 483; private Date date; private Date getDate() { if (date == null) { final Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, YEAR); cal.set(Calendar.MONTH, MONTH); cal.set(Calendar.DAY_OF_MONTH, DAY_OF_MONTH); cal.set(Calendar.HOUR_OF_DAY, HOUR_OF_DAY); cal.set(Calendar.MINUTE, MINUTE); cal.set(Calendar.SECOND, SECOND); cal.set(Calendar.MILLISECOND, MILLISECOND); date = cal.getTime(); } return date; } private XMLGregorianCalendar getXMLGregorianCalendar() { return UtilXMLDate.toXMLGregorianCalendar(this.getDate()); } @Test public void testToDate() { final XMLGregorianCalendar cal = this.getXMLGregorianCalendar(); final Date newDate = UtilXMLDate.toDate(cal); Assert.assertEquals(date, newDate); } @Test public void testToXMLGregorianCalendar() { final XMLGregorianCalendar cal = UtilXMLDate.toXMLGregorianCalendar(this.getDate()); final int[] result = {cal.getYear(), cal.getMonth(), cal.getDay(), cal.getHour(), cal.getMinute(), cal.getSecond(), cal.getMillisecond()}; final int[] expected = {YEAR, MONTH + 1, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND}; Assert.assertArrayEquals(result, expected); } @Test public void testToTimeStamp() { final XMLGregorianCalendar cal = this.getXMLGregorianCalendar(); final Timestamp dateTime = UtilXMLDate.toTimeStamp(cal); Assert.assertTrue(dateTime.compareTo(this.getDate()) == 0); } @Test(expected = IllegalArgumentException.class) public void testToXMLGregorianCalendarWhenDateIsNull() { UtilXMLDate.toXMLGregorianCalendar(null); } @Test(expected = IllegalArgumentException.class) public void testToDateWhenXMLGregorianCalendarIsNull() { UtilXMLDate.toDate(null); } @Test(expected = IllegalArgumentException.class) public void testTimeStampWhenXMLGregorianCalendarIsNull() { UtilXMLDate.toTimeStamp(null); } }