Add oving 1
This commit is contained in:
153
src/test/java/oving1/StopWatchTest.java
Normal file
153
src/test/java/oving1/StopWatchTest.java
Normal file
@@ -0,0 +1,153 @@
|
||||
package oving1;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
||||
public class StopWatchTest {
|
||||
|
||||
private StopWatch stopWatch;
|
||||
|
||||
@BeforeEach
|
||||
public void beforeEach() {
|
||||
stopWatch = new StopWatch();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Constructor")
|
||||
public void testConstructor() {
|
||||
assertFalse(stopWatch.isStarted(), "Stopwatch should not be started");
|
||||
assertFalse(stopWatch.isStopped(), "Stopwatch should not be stopped");
|
||||
assertEquals(0, stopWatch.getTicks(), "Wrong ticks returned");
|
||||
assertEquals(-1, stopWatch.getTime(), "Time should be -1 when not started");
|
||||
assertEquals(-1, stopWatch.getLapTime(), "Lap time should be -1 when not started");
|
||||
assertEquals(-1, stopWatch.getLastLapTime(), "Last lap time should be -1 when not started");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Tick without starting")
|
||||
public void testTicksWithoutStart() {
|
||||
stopWatch.tick(1);
|
||||
assertEquals(-1, stopWatch.getTime(), "Time should be -1 when not started");
|
||||
assertEquals(1, stopWatch.getTicks(), "Ticks should be 1 after calling #tick(1)");
|
||||
|
||||
stopWatch.tick(4);
|
||||
assertEquals(-1, stopWatch.getTime(), "Time should be -1 when not started");
|
||||
assertEquals(5, stopWatch.getTicks(), "Ticks should be 5 after calling #tick(4)");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Tick, start and stop 1")
|
||||
public void testStartTickStop() {
|
||||
stopWatch.start();
|
||||
assertEquals(0, stopWatch.getTime(), "Time should be 0 when just started");
|
||||
assertEquals(0, stopWatch.getTicks(), "Ticks should be 0 when #tick() has not been called");
|
||||
assertTrue(stopWatch.isStarted(), "Should be started after calling #start()");
|
||||
assertFalse(stopWatch.isStopped(), "Should not be stopped before calling #stop()");
|
||||
|
||||
stopWatch.tick(3);
|
||||
assertEquals(3, stopWatch.getTime(),
|
||||
"Time should be 3 when started and #tick(3) has been called");
|
||||
assertEquals(3, stopWatch.getTicks(), "Ticks should be 3 when #tick(3) has been called");
|
||||
assertTrue(stopWatch.isStarted(), "Should be started after calling #start()");
|
||||
assertFalse(stopWatch.isStopped(), "Should not be stopped before calling #stop()");
|
||||
|
||||
stopWatch.tick(5);
|
||||
assertEquals(8, stopWatch.getTime(),
|
||||
"Time should be 8 when started and #tick(5) has been called");
|
||||
assertEquals(8, stopWatch.getTicks(), "Ticks should be 8 when #tick(5) has been called");
|
||||
assertTrue(stopWatch.isStarted(), "Should be started after calling #start()");
|
||||
assertFalse(stopWatch.isStopped(), "Should not be stopped before calling #stop()");
|
||||
|
||||
stopWatch.stop();
|
||||
assertEquals(8, stopWatch.getTime(), "Time should be 8 after #stop() has been called");
|
||||
assertEquals(8, stopWatch.getTicks(), "Ticks should be 8 after #stop() has been called");
|
||||
assertTrue(stopWatch.isStarted(), "Should be started even after #stop() has been called");
|
||||
assertTrue(stopWatch.isStopped(), "Should be stopped after calling #stop()");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Tick, start and stop 2")
|
||||
public void testTickStartTickStopTick() {
|
||||
stopWatch.tick(2);
|
||||
assertEquals(-1, stopWatch.getTime(), "Time should be -1 when not started");
|
||||
assertEquals(2, stopWatch.getTicks(), "Ticks should be 2 when #tick(2) has been called");
|
||||
assertFalse(stopWatch.isStarted(), "Stopwatch should not be started");
|
||||
assertFalse(stopWatch.isStopped(), "Stopwatch should not be stopped");
|
||||
|
||||
stopWatch.start();
|
||||
assertEquals(0, stopWatch.getTime(), "Time should be 0 when just started");
|
||||
assertEquals(2, stopWatch.getTicks(), "Ticks should be 2 after #start() has been called");
|
||||
assertTrue(stopWatch.isStarted(), "Should be started after calling #start()");
|
||||
assertFalse(stopWatch.isStopped(), "Should not be stopped before calling #stop()");
|
||||
|
||||
stopWatch.tick(3);
|
||||
assertEquals(3, stopWatch.getTime(),
|
||||
"Time should be 3 when started and #tick(3) has been called");
|
||||
assertEquals(5, stopWatch.getTicks(), "Ticks should be 5 when #tick(3) has been called");
|
||||
assertTrue(stopWatch.isStarted(), "Should be started after calling #tick(3)");
|
||||
assertFalse(stopWatch.isStopped(), "Should not be stopped before calling #tick(3)");
|
||||
|
||||
stopWatch.tick(5);
|
||||
assertEquals(8, stopWatch.getTime(),
|
||||
"Time should be 8 when started and #tick(5) has been called");
|
||||
assertEquals(10, stopWatch.getTicks(), "Ticks should be 10 when #tick(5) has been called");
|
||||
assertTrue(stopWatch.isStarted(), "Should be started after calling #tick(5)");
|
||||
assertFalse(stopWatch.isStopped(), "Should not be stopped before calling #tick(5)");
|
||||
|
||||
stopWatch.stop();
|
||||
assertEquals(8, stopWatch.getTime(), "Time should be 8 after #stop() has been called");
|
||||
assertEquals(10, stopWatch.getTicks(), "Ticks should be 10 after #stop() has been called");
|
||||
assertTrue(stopWatch.isStarted(), "Should be started even after #stop() has been called");
|
||||
assertTrue(stopWatch.isStopped(), "Should be stopped after calling #stop()");
|
||||
|
||||
stopWatch.tick(3);
|
||||
assertEquals(8, stopWatch.getTime(),
|
||||
"Time should be 8 after #tick(3) has been called while stopped");
|
||||
assertEquals(13, stopWatch.getTicks(),
|
||||
"Ticks should be 13 when #tick(3) has been called while stopped");
|
||||
assertTrue(stopWatch.isStarted(),
|
||||
"Should be started even after #tick() has been called while stopped");
|
||||
assertTrue(stopWatch.isStopped(), "Should be stopped after calling #tick() while stopped");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Lap times")
|
||||
public void testLaps() {
|
||||
stopWatch.start();
|
||||
assertEquals(0, stopWatch.getTime(), "Time should be 0 when just started");
|
||||
assertEquals(0, stopWatch.getLapTime(), "Lap time should be 0 when just started");
|
||||
assertEquals(-1, stopWatch.getLastLapTime(),
|
||||
"Last lap time should be -1 when there is no previous lap");
|
||||
|
||||
stopWatch.tick(3);
|
||||
assertEquals(3, stopWatch.getTime(), "Time should be 3 after #tick(3) has been called");
|
||||
assertEquals(3, stopWatch.getLapTime(),
|
||||
"Lap time should be 3 after calling #tick(3) while started");
|
||||
assertEquals(-1, stopWatch.getLastLapTime(),
|
||||
"Last lap time should be -1 when there is no previous lap");
|
||||
|
||||
stopWatch.lap();
|
||||
assertEquals(3, stopWatch.getTime(), "Time should still be 3 after starting a new lap");
|
||||
assertEquals(0, stopWatch.getLapTime(), "Current lap time should be 0 when just started");
|
||||
assertEquals(3, stopWatch.getLastLapTime(),
|
||||
"Last lap time should be 3 when we just started a new lap");
|
||||
|
||||
stopWatch.tick(5);
|
||||
assertEquals(8, stopWatch.getTime(), "Time should be 8 after #tick(5) has been called");
|
||||
assertEquals(5, stopWatch.getLapTime(),
|
||||
"Current lap time should be 5 after calling #tick(5)");
|
||||
assertEquals(3, stopWatch.getLastLapTime(),
|
||||
"Last lap time should be 3 even after time passes");
|
||||
|
||||
stopWatch.stop();
|
||||
assertEquals(8, stopWatch.getTime(), "Time should be 8 after stopping");
|
||||
assertEquals(0, stopWatch.getLapTime(), "Current lap time should be 0 when stopped");
|
||||
assertEquals(5, stopWatch.getLastLapTime(),
|
||||
"Last lap should be the lap time of the current lap when stopping");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user