package net.thucydides.core.matchers.dates; import org.joda.time.DateTime; import org.junit.Before; import org.junit.Test; import java.util.Date; import static net.thucydides.core.matchers.dates.DateMatchers.isCloseTo; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.not; import static org.joda.time.Period.minutes; public class WhenMatchingTimes { Date januaryFirst2000At10_00am; Date januaryFirst2000At10_01am; Date januaryFirst2000At10_06am; DateTime januaryFirst2001At10_00am; DateTime januaryFirst2001At10_01am; DateTime januaryFirst2001At10_06am; @Before public void setupDates() { januaryFirst2000At10_00am = new DateTime(2000,01,01,10,0).toDate(); januaryFirst2000At10_01am = new DateTime(2000,01,01,10,1).toDate(); januaryFirst2000At10_06am = new DateTime(2000,01,01,10,6).toDate(); januaryFirst2001At10_00am = new DateTime(2000,01,01,10,0); januaryFirst2001At10_01am = new DateTime(2000,01,01,10,1); januaryFirst2001At10_06am = new DateTime(2000,01,01,10,6); } @Test public void should_be_able_to_check_whether_two_times_are_within_a_specified_margin() { assertThat(januaryFirst2000At10_00am, isCloseTo(januaryFirst2000At10_01am, minutes(5))); } @Test public void should_be_able_to_check_whether_two_times_are_far_apart() { assertThat(januaryFirst2000At10_00am, not(isCloseTo(januaryFirst2000At10_06am, minutes(5)))); } @Test public void should_be_able_to_check_whether_two_datetimes_are_within_a_specified_margin() { assertThat(januaryFirst2001At10_00am, isCloseTo(januaryFirst2001At10_01am, minutes(5))); } @Test public void should_be_able_to_check_whether_two_datetimes_are_far_apart() { assertThat(januaryFirst2001At10_00am, not(isCloseTo(januaryFirst2001At10_06am, minutes(5)))); } }