Zeit testen

HitoriGameTimerFeature
3013016 2025-01-06 23:37:38 +01:00
parent bc01f4a588
commit 4f91ab08f9
1 changed files with 131 additions and 0 deletions

View File

@ -0,0 +1,131 @@
import domain.HitoriGameTimer;
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;
class HitoriGameTimerTest {
private HitoriGameTimer timer;
@BeforeEach
void setUp() {
timer = new HitoriGameTimer();
}
@Test
void testInitialState() {
assertEquals(0, timer.getElapsedTimeInSeconds());
assertFalse(timer.isPaused());
}
@Test
void testStartTimer() {
timer.startTimer();
try {
Thread.sleep(1100); // Wait a bit more than 1 second
} catch (InterruptedException e) {
fail("Timer test interrupted");
}
assertTrue(timer.getElapsedTimeInSeconds() >= 1);
assertFalse(timer.isPaused());
}
@Test
void testPauseTimer() {
timer.startTimer();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
fail("Timer test interrupted");
}
timer.pauseTimer();
long pausedTime = timer.getElapsedTimeInSeconds();
assertTrue(timer.isPaused());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
fail("Timer test interrupted");
}
// Time should not have increased while paused
assertEquals(pausedTime, timer.getElapsedTimeInSeconds());
}
@Test
void testResumeTimer() {
timer.startTimer();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
fail("Timer test interrupted");
}
timer.pauseTimer();
long pausedTime = timer.getElapsedTimeInSeconds();
timer.startTimer(); // Resume
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
fail("Timer test interrupted");
}
assertTrue(timer.getElapsedTimeInSeconds() > pausedTime);
}
@Test
void testStopTimer() {
timer.startTimer();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
fail("Timer test interrupted");
}
timer.stopTimer();
long stoppedTime = timer.getElapsedTimeInSeconds();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
fail("Timer test interrupted");
}
assertEquals(stoppedTime, timer.getElapsedTimeInSeconds());
}
@Test
void testResetTimer() {
timer.startTimer();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
fail("Timer test interrupted");
}
timer.resetTimer();
assertEquals(0, timer.getElapsedTimeInSeconds());
assertFalse(timer.isPaused());
}
@Test
void testMultiplePauseResume() {
timer.startTimer();
try {
Thread.sleep(500);
timer.pauseTimer();
Thread.sleep(500);
timer.startTimer();
Thread.sleep(500);
timer.pauseTimer();
Thread.sleep(500);
timer.startTimer();
Thread.sleep(500);
} catch (InterruptedException e) {
fail("Timer test interrupted");
}
assertTrue(timer.getElapsedTimeInSeconds() >= 1);
}
}