// Copyright © 2015 HSL <https://www.hsl.fi>
// This program is dual-licensed under the EUPL v1.2 and AGPLv3 licenses.
package fi.hsl.parkandride.core.domain;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class TimeTest {
@Test
public void beginning_of_day() {
Time t = new Time(0);
assertThat(t.toString()).isEqualTo("00");
assertThat(t).isEqualTo(new Time("00"));
assertThat(t.hashCode()).isEqualTo(0);
assertThat(t.getHour()).isEqualTo(0);
assertThat(t.getMinute()).isEqualTo(0);
}
@Test
public void end_of_day() {
Time t = new Time(24*60);
assertThat(t.toString()).isEqualTo("24");
assertThat(t).isEqualTo(new Time("24"));
assertThat(t.hashCode()).isEqualTo(24*60);
assertThat(t.getHour()).isEqualTo(24);
assertThat(t.getMinute()).isEqualTo(0);
}
@Test
public void abbreviated_hour() {
assertThat(new Time("9").toString()).isEqualTo("09");
}
@Test
public void early_hour_and_minutes_to_string() {
assertThat(new Time("09:09").toString()).isEqualTo("09:09");
}
@Test
public void later_hour_and_minutes_to_string() {
assertThat(new Time("20:30").toString()).isEqualTo("20:30");
}
@Test
public void afternoon() {
assertThat(new Time("16").getMinuteOfDay()).isEqualTo(16*60);
}
@Test
public void beginning_of_day_is_before_end_of_day() {
assertThat(new Time("00").compareTo(new Time("24"))).isLessThan(0);
}
@Test
public void parse_minutes() {
assertThat(new Time("23:59").getMinuteOfDay()).isEqualTo(60*23 + 59);
}
@Test(expected = IllegalArgumentException.class)
public void one_digit_minute() {
new Time("1:1");
}
@Test(expected = IllegalArgumentException.class)
public void illegal_hour() {
new Time("25");
}
@Test(expected = IllegalArgumentException.class)
public void illegal_minute() {
new Time("9:60");
}
@Test(expected = IllegalArgumentException.class)
public void negative_hour() {
new Time("-1");
}
@Test(expected = IllegalArgumentException.class)
public void negative_minute() {
new Time("00:-1");
}
@Test(expected = IllegalArgumentException.class)
public void illegal_next_day() {
new Time("24:01");
}
}