package com.gmail.dpierron.calibre;
import com.gmail.dpierron.calibre.datamodel.DateRange;
import org.junit.Test;
import java.util.Calendar;
import java.util.GregorianCalendar;
import static org.junit.Assert.fail;
public class DateRangeTest {
@Test
public void testValueOf() {
GregorianCalendar d = new GregorianCalendar();
d.add(Calendar.DAY_OF_MONTH, -0);
if (DateRange.ONEDAY != DateRange.valueOf(d.getTime()))
fail("DateRange failed on ONEDAY");
d = new GregorianCalendar();
d.add(Calendar.DAY_OF_MONTH, -6);
if (DateRange.ONEWEEK != DateRange.valueOf(d.getTime()))
fail("DateRange failed on ONEWEEK");
d = new GregorianCalendar();
d.add(Calendar.DAY_OF_MONTH, -13);
if (DateRange.FORTNIGHT != DateRange.valueOf(d.getTime()))
fail("DateRange failed on FORTNIGHT");
d = new GregorianCalendar();
d.add(Calendar.DAY_OF_MONTH, -27); // sometimes a month can even be 28 days long
if (DateRange.MONTH != DateRange.valueOf(d.getTime()))
fail("DateRange failed on MONTH");
d = new GregorianCalendar();
d.add(Calendar.DAY_OF_MONTH, -57); // minimum is 28 + 30
if (DateRange.TWOMONTHS != DateRange.valueOf(d.getTime()))
fail("DateRange failed on TWOMONTHS");
d = new GregorianCalendar();
d.add(Calendar.DAY_OF_MONTH, -88); // minimum is 28 + 30 + 31
if (DateRange.THREEMONTHS != DateRange.valueOf(d.getTime()))
fail("DateRange failed on THREEMONTHS");
d = new GregorianCalendar();
d.add(Calendar.DAY_OF_MONTH, -179); // minimum is 28 + 30 + 31 + 30 + 31 + 30
if (DateRange.SIXMONTHS != DateRange.valueOf(d.getTime()))
fail("DateRange failed on SIXMONTHS");
d = new GregorianCalendar();
d.add(Calendar.DAY_OF_MONTH, -359);
if (DateRange.YEAR != DateRange.valueOf(d.getTime()))
fail("DateRange failed on YEAR");
d = new GregorianCalendar();
d.add(Calendar.DAY_OF_MONTH, -3000);
if (DateRange.MORE != DateRange.valueOf(d.getTime()))
fail("DateRange failed on MORE");
}
}