/**
*
*/
package org.celllife.idart.misc;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
* Unit tests for
* {@link org.celllife.idart.misc.DateFieldComparator#compare(java.util.Date, java.util.Date)}
* .
*/
public class DateFieldComparatorTest {
/**
* Test method for
* {@link org.celllife.idart.misc.DateFieldComparator#compare(java.util.Date, java.util.Date)}
* .
*/
@Test(dataProvider = "dateProvider")
public void testCompare(Date d1, Date d2, int field, int result,
@SuppressWarnings("unused") String fieldName) {
DateFieldComparator c = new DateFieldComparator(field);
Assert.assertEquals(c.compare(d1, d2), result);
}
@DataProvider(name = "dateProvider")
public Object[][] dateProvider() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
return new Object[][] {
{ sdf.parse("20010511145109"), sdf.parse("20010511145109"),
Calendar.SECOND, 0, "SECOND 0" },
{ sdf.parse("20010511145109"), sdf.parse("20010511145115"),
Calendar.SECOND, -1, "SECOND -1" },
{ sdf.parse("20010511145116"), sdf.parse("20010511145115"),
Calendar.SECOND, +1, "SECOND +1" },
{ sdf.parse("20010510145116"), sdf.parse("20010511145116"),
Calendar.SECOND, -1, "SECOND -1 (day diff)" },
{ sdf.parse("20010611145116"), sdf.parse("20010511145116"),
Calendar.SECOND, +1, "SECOND +1 (month diff)" },
{ sdf.parse("20010511145100"), sdf.parse("20010511145151"),
Calendar.MINUTE, 0, "MINUTE 0" },
{ sdf.parse("20010511145051"), sdf.parse("20010511145151"),
Calendar.MINUTE, -1, "MINUTE -1" },
{ sdf.parse("20010511145251"), sdf.parse("20010511145151"),
Calendar.MINUTE, +1, "MINUTE +1" },
{ sdf.parse("20010511135151"), sdf.parse("20010511145151"),
Calendar.MINUTE, -1, "MINUTE -1 (hour diff)" },
{ sdf.parse("20020511145151"), sdf.parse("20010511145151"),
Calendar.MINUTE, +1, "MINUTE +1 (year diff)" },
{ sdf.parse("20010511140000"), sdf.parse("20010511145151"),
Calendar.HOUR_OF_DAY, 0, "HOUR 0" },
{ sdf.parse("20010411135115"), sdf.parse("20010511145515"),
Calendar.HOUR_OF_DAY, -1, "HOUR -1" },
{ sdf.parse("20010511155515"), sdf.parse("20010511145515"),
Calendar.HOUR_OF_DAY, +1, "HOUR +1" },
{ sdf.parse("20010510145515"), sdf.parse("20010511145515"),
Calendar.HOUR_OF_DAY, -1, "HOUR -1 (day diff)" },
{ sdf.parse("20010512145515"), sdf.parse("20010511145515"),
Calendar.HOUR_OF_DAY, +1, "HOUR +1 (day diff)" },
{ sdf.parse("20010511000000"), sdf.parse("20010511145515"),
Calendar.DAY_OF_MONTH, 0, "DAY 0" },
{ sdf.parse("20010510145515"), sdf.parse("20010511145515"),
Calendar.DAY_OF_MONTH, -1, "DAY -1" },
{ sdf.parse("20010512145515"), sdf.parse("20010511145515"),
Calendar.DAY_OF_MONTH, +1, "DAY +1" },
{ sdf.parse("20000511145515"), sdf.parse("20010511145515"),
Calendar.DAY_OF_MONTH, -1, "DAY -1 year diff" },
{ sdf.parse("20010611145515"), sdf.parse("20010511145515"),
Calendar.DAY_OF_MONTH, +1, "DAY +1 month diff" },
{ sdf.parse("20010511111111"), sdf.parse("20010511145515"),
Calendar.MONTH, 0, "MONTH 0" },
{ sdf.parse("20010411145515"), sdf.parse("20010511145515"),
Calendar.MONTH, -1, "MONTH -1" },
{ sdf.parse("20010611145515"), sdf.parse("20010511145515"),
Calendar.MONTH, +1, "MONTH +1" },
{ sdf.parse("20000511145515"), sdf.parse("20010511145515"),
Calendar.MONTH, -1, "MONTH -1 year dif)" },
{ sdf.parse("20020511145515"), sdf.parse("20010511145515"),
Calendar.MONTH, +1, "MONTH +1 year diff" },
{ sdf.parse("20011111111111"), sdf.parse("20010511145515"),
Calendar.YEAR, 0, "YEAR 0" },
{ sdf.parse("20000511145515"), sdf.parse("20010511145515"),
Calendar.YEAR, -1, "YEAR -1" },
{ sdf.parse("20020511145515"), sdf.parse("20010511145515"),
Calendar.YEAR, +1, "YEAR +1" } };
}
}