package be.raildelays.delays;
import be.raildelays.delays.TimeDelay;
import org.junit.Assert;
import org.junit.Test;
import java.time.LocalTime;
import static be.raildelays.delays.DelayMatcher.*;
/**
* @author Almex
*/
public class DelayMatcherTest {
@Test
public void durationBetweenTwoDefaultTimestampDelayIsEqualToZero() {
final TimeDelay timeDelay = TimeDelay.now();
Assert.assertTrue(duration(between(timeDelay).and(timeDelay), is(equalsTo(0L))));
Assert.assertTrue(duration(between(timeDelay).and(timeDelay), is(zero())));
Assert.assertTrue(duration(between(timeDelay).and(timeDelay), is(0L)));
}
@Test
public void durationBetweenTwoTimestampIsBefore() {
final TimeDelay timeDelay = TimeDelay.now();
final TimeDelay timeDelay2 = timeDelay.withDelay(1L);
Assert.assertTrue(duration(between(timeDelay2).and(timeDelay), is(before())));
Assert.assertFalse(duration(between(timeDelay).and(timeDelay2), is(before())));
}
@Test
public void durationBetweenTwoTimestampIsAfter() {
final TimeDelay timeDelay = TimeDelay.now();
final TimeDelay timeDelay2 = timeDelay.withDelay(1L);
Assert.assertTrue(duration(between(timeDelay).and(timeDelay2), is(after())));
Assert.assertFalse(duration(between(timeDelay2).and(timeDelay), is(after())));
}
@Test
public void durationBetweenTwoDefaultTimestampDelayIsGreaterThanZero() {
final TimeDelay timeDelay = TimeDelay.now();
final TimeDelay timeDelay2 = timeDelay.withDelay(1L);
Assert.assertTrue(duration(between(timeDelay).and(timeDelay2), is(greaterThan(0L))));
Assert.assertFalse(duration(between(timeDelay).and(timeDelay2), is(greaterThan(1L))));
}
@Test
public void durationBetweenTwoDefaultTimestampDelayIsGreaterThanOrEqualToZero() {
final TimeDelay timeDelay = TimeDelay.now();
final TimeDelay timeDelay2 = timeDelay.withDelay(1L);
Assert.assertTrue(duration(between(timeDelay).and(timeDelay2), is(greaterThanOrEqual(0L))));
}
@Test
public void durationBetweenTwoDefaultTimestampDelayIsLessThanZero() {
final TimeDelay timeDelay = TimeDelay.now();
final TimeDelay timeDelay2 = timeDelay.withDelay(1L);
Assert.assertTrue(duration(between(timeDelay2).and(timeDelay), is(lessThan(0L))));
Assert.assertFalse(duration(between(timeDelay2).and(timeDelay), is(lessThan(-1L))));
}
@Test
public void durationBetweenTwoDefaultTimestampDelayIsLessThanOrEqualToZero() {
final TimeDelay timeDelay = TimeDelay.now();
final TimeDelay timeDelay2 = timeDelay.withDelay(1L);
Assert.assertTrue(duration(between(timeDelay2).and(timeDelay), is(lessThanOrEqual(0L))));
}
@Test
public void durationBetweenDateAndTimestampDelayIsEqualToZero() {
final LocalTime time = LocalTime.now();
final TimeDelay timeDelay = TimeDelay.of(time);
Assert.assertTrue(duration(between(timeDelay).and(time), is(equalsTo(0L))));
Assert.assertTrue(duration(between(time).and(timeDelay), is(equalsTo(0L))));
}
}