package com.b2msolutions.reyna.blackout; import org.junit.Test; import java.security.InvalidParameterException; import java.util.Calendar; import java.util.Date; import static junit.framework.Assert.*; public class TimeTest { @Test public void isBeforeShouldReturnExpected() { assertTrue(new Time(12, 00).isBeforeOrEqualTo(new Time(12, 01))); assertTrue(new Time(11, 00).isBeforeOrEqualTo(new Time(12, 00))); assertFalse(new Time(12, 01).isBeforeOrEqualTo(new Time(12, 00))); assertTrue(new Time(12, 01).isBeforeOrEqualTo(new Time(12, 01))); } @Test public void isAfterShouldReturnExpected() { assertFalse(new Time(12, 00).isAfterOrEqualTo(new Time(12, 01))); assertFalse(new Time(11, 00).isAfterOrEqualTo(new Time(12, 00))); assertTrue(new Time(12, 01).isAfterOrEqualTo(new Time(12, 00))); assertTrue(new Time(12, 01).isAfterOrEqualTo(new Time(12, 01))); } @Test public void shouldSetMinuteOfDay() { assertEquals(12 * 60 + 1, new Time(12, 01).getMinuteOfDay()); assertEquals(1000, new Time(1000).getMinuteOfDay()); } @Test public void constructor() { Time time = new Time(); int expected = new Date().getHours() * 60 + new Date().getMinutes(); assertTrue(expected <= time.getMinuteOfDay()); } @Test(expected = InvalidParameterException.class) public void shouldThrowOnConstructionIfHourTooLarge() { new Time(24, 00); } @Test(expected = InvalidParameterException.class) public void shouldThrowOnConstructionIfMinutesTooLarge() { new Time(23, 60); } @Test(expected = InvalidParameterException.class) public void shouldThrowOnConstructionIfHourTooSmall() { new Time(-1, 00); } @Test(expected = InvalidParameterException.class) public void shouldThrowOnConstructionIfMinutesTooSmall() { new Time(23, -1); } @Test(expected = InvalidParameterException.class) public void shouldThrowOnConstructionIfMinuteOfDayTooSmall() { new Time(-1); } @Test(expected = InvalidParameterException.class) public void shouldThrowOnConstructionIfMinuteOfDayTooLarge() { new Time(24 * 60); } }