package crmdna.common; import crmdna.common.DateUtils.Month; import crmdna.common.api.APIException; import crmdna.common.api.APIResponse.Status; import org.junit.Test; import java.util.Calendar; import static crmdna.common.TestUtil.ensureResourceIncorrectException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class DateUtilsTest { @Test public void geDateDiffTest() { assertEquals("5 seconds", DateUtils.getDateDiff(0, 5)); assertEquals("1 minute(s)", DateUtils.getDateDiff(0, 65)); assertEquals("2 minute(s)", DateUtils.getDateDiff(0, 110)); assertEquals("30 minute(s)", DateUtils.getDateDiff(0, 1820)); assertEquals("1 hour(s)", DateUtils.getDateDiff(0, 3800)); assertEquals("3 hour(s)", DateUtils.getDateDiff(0, 11000)); assertEquals("1 day(s)", DateUtils.getDateDiff(0, 3600 * 24)); assertEquals("2 day(s)", DateUtils.getDateDiff(0, 3600 * 24 * 2 + 1200)); } @Test public void getDurationAsString() { int start; int end; // same start and end date start = 20130201; end = 20130201; assertEquals("1 Feb 13", DateUtils.getDurationAsString(start, end)); // same month and year start = 20130201; end = 20130204; assertEquals("1 - 4 Feb 13", DateUtils.getDurationAsString(start, end)); // different month same year start = 20130227; end = 20130304; assertEquals("27 Feb - 4 Mar 13", DateUtils.getDurationAsString(start, end)); // different year start = 20131227; end = 20140104; assertEquals("27 Dec - 4 Jan 14", DateUtils.getDurationAsString(start, end)); start = 2013123; end = 2013125; try { DateUtils.getDurationAsString(start, end); assertTrue(false); } catch (APIException ex) { assertEquals(Status.ERROR_RESOURCE_INCORRECT, ex.statusCode); } } @Test public void toYYYYMMDDTest() { Calendar calendar = Calendar.getInstance(); // 1-jan-2014 calendar.set(2014, 0, 1); // month goes from 0 to 11 assertEquals(20140101, DateUtils.toYYYYMMDD(calendar.getTime())); // 31-dec-1989 calendar.set(1989, 11, 31); // month goes from 0 to 11 assertEquals(19891231, DateUtils.toYYYYMMDD(calendar.getTime())); // 29-feb-2004 calendar.set(2004, 1, 29); // month goes from 0 to 11 assertEquals(20040229, DateUtils.toYYYYMMDD(calendar.getTime())); } @Test public void isFormatInYYYYMMDD() { assertEquals(false, DateUtils.isFormatInYYYYMMDD(2)); assertEquals(false, DateUtils.isFormatInYYYYMMDD(290394938)); assertEquals(false, DateUtils.isFormatInYYYYMMDD(2013312)); assertEquals(false, DateUtils.isFormatInYYYYMMDD(20130229)); assertEquals(false, DateUtils.isFormatInYYYYMMDD(19000229)); assertEquals(false, DateUtils.isFormatInYYYYMMDD(21000229)); assertEquals(true, DateUtils.isFormatInYYYYMMDD(20140201)); assertEquals(true, DateUtils.isFormatInYYYYMMDD(20140131)); assertEquals(true, DateUtils.isFormatInYYYYMMDD(20131231)); assertEquals(true, DateUtils.isFormatInYYYYMMDD(20140630)); } @Test public void getNSTest() { // assertTrue(false); } @Test public void ensureDateNotInFutureTest() { DateUtils.ensureDateNotInFuture(Month.JUL, 2014); DateUtils.ensureDateNotInFuture(Month.AUG, 2013); ensureResourceIncorrectException(new ICode() { @Override public void run() { DateUtils.ensureDateNotInFuture(Month.AUG, 2018); } }); ensureResourceIncorrectException(new ICode() { @Override public void run() { DateUtils.ensureDateNotInFuture(Month.JAN, 2020); } }); } @Test public void getMonthEnumTest() { assertEquals(Month.JAN, DateUtils.getMonthEnum(20140101)); assertEquals(Month.FEB, DateUtils.getMonthEnum(20140202)); assertEquals(Month.FEB, DateUtils.getMonthEnum(19700202)); assertEquals(Month.DEC, DateUtils.getMonthEnum(19701202)); // exception if date in wrong format ensureResourceIncorrectException(new ICode() { @Override public void run() { DateUtils.getMonthEnum(100); } }); // exception if month is invalid ensureResourceIncorrectException(new ICode() { @Override public void run() { DateUtils.getMonthEnum(20141302); } }); } }