package cgeo.geocaching.utils;
import junit.framework.TestCase;
import java.util.Calendar;
import cgeo.geocaching.models.Geocache;
import cgeo.geocaching.enumerations.CacheType;
import static org.assertj.core.api.Java6Assertions.assertThat;
public class CalendarUtilsTest extends TestCase {
public static void testDaysSince() {
final Calendar start = Calendar.getInstance();
for (int hour = 0; hour < 24; hour++) {
start.set(Calendar.HOUR_OF_DAY, hour);
assertThat(CalendarUtils.daysSince(start.getTimeInMillis())).isEqualTo(0);
}
}
public static void testIsPastEvent() {
final Calendar start = Calendar.getInstance();
start.set(Calendar.HOUR_OF_DAY, 0);
start.set(Calendar.MINUTE, 10);
assertPastEvent(start, false);
start.set(Calendar.HOUR_OF_DAY, 23);
assertPastEvent(start, false);
start.add(Calendar.DAY_OF_MONTH, -1);
assertPastEvent(start, true);
}
private static void assertPastEvent(final Calendar start, final boolean expectedPast) {
final Geocache cache = new Geocache();
cache.setType(CacheType.EVENT);
cache.setHidden(start.getTime());
assertThat(CalendarUtils.isPastEvent(cache)).isEqualTo(expectedPast);
}
public static void testIsFuture() {
final Calendar date = Calendar.getInstance();
assertThat(CalendarUtils.isFuture(date)).isFalse();
date.add(Calendar.DAY_OF_MONTH, 1);
assertThat(CalendarUtils.isFuture(date)).isFalse();
date.add(Calendar.DAY_OF_MONTH, 1);
assertThat(CalendarUtils.isFuture(date)).isTrue();
}
}