package org.gdg.frisbee.android.eventseries; import org.gdg.frisbee.android.api.model.Event; import org.gdg.frisbee.android.api.model.SimpleEvent; import org.joda.time.DateTime; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; public class EventDateComparatorTest { private EventDateComparator comparator; private EventAdapter.Item eventInMarch; private EventAdapter.Item eventInApril; private EventAdapter.Item eventWithoutStartDate; @Before public void setup() { comparator = new EventDateComparator(); SimpleEvent simpleEventInMarch = new Event() { @Override public DateTime getStart() { return new DateTime(2014, 3, 1, 0, 0); } }; eventInMarch = new EventAdapter.Item(simpleEventInMarch); SimpleEvent simpleEventInApril = new Event() { @Override public DateTime getStart() { return new DateTime(2014, 4, 1, 0, 0); } }; eventInApril = new EventAdapter.Item(simpleEventInApril); SimpleEvent simpleEventWithoutStartDate = new Event() { @Override public DateTime getStart() { return null; } }; eventWithoutStartDate = new EventAdapter.Item(simpleEventWithoutStartDate); } @Test public void valueAnEventHigherThanAnEventThatStartedBefore() { assertEquals(1, comparator.compare(eventInApril, eventInMarch)); assertEquals(-1, comparator.compare(eventInMarch, eventInApril)); assertEquals(0, comparator.compare(eventInMarch, eventInMarch)); } @Test public void valueAnEventLowerThanAnEventWithoutStartDate() { assertEquals(-1, comparator.compare(eventInApril, eventWithoutStartDate)); assertEquals(1, comparator.compare(eventWithoutStartDate, eventInApril)); assertEquals(0, comparator.compare(eventWithoutStartDate, eventWithoutStartDate)); } }