Skip to content

Commit

Permalink
Adds unit testing for SpawnWaveTask
Browse files Browse the repository at this point in the history
  • Loading branch information
bojyyy committed Sep 11, 2023
1 parent 9780bc8 commit 28de058
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@
public class SpawnWaveTask extends DefaultTask implements PriorityTask {
private static final Logger logger = LoggerFactory.getLogger(SpawnWaveTask.class);
private final GameTime globalTime;
private long endTime;
private long endTime = 0;
private final int SPAWNING_INTERVAL = 10;
public SpawnWaveTask() {
this.globalTime = ServiceLocator.getTimeSource();
}

@Override
public int getPriority() {
return 10; // Low priority task
return 10; // High priority task
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.csse3200.game.components.tasks;

import com.csse3200.game.ai.tasks.AITaskComponent;
import com.csse3200.game.entities.Entity;
import com.csse3200.game.events.listeners.EventListener0;
import com.csse3200.game.extensions.GameExtension;
import com.csse3200.game.utils.math.Vector2Utils;
import com.csse3200.game.physics.components.PhysicsMovementComponent;
import com.csse3200.game.services.GameTime;
import com.csse3200.game.services.ServiceLocator;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

import static org.mockito.Mockito.*;

@ExtendWith(GameExtension.class)
@ExtendWith(MockitoExtension.class)
class SpawnWaveTaskTest {

@Test
void shouldTriggerSpawning() {
GameTime time = mock(GameTime.class);
when(time.getTime()).thenReturn(11000L);
ServiceLocator.registerTimeSource(time);
SpawnWaveTask waveTask = new SpawnWaveTask();

AITaskComponent aiTaskComponent = new AITaskComponent().addTask(waveTask);
Entity entity = new Entity().addComponent(aiTaskComponent).addComponent(new PhysicsMovementComponent());
entity.create();

// Register callbacks
EventListener0 callback = mock(EventListener0.class);
entity.getEvents().addListener("spawnWave", callback);

waveTask.update();

verify(callback).handle();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

@ExtendWith(GameExtension.class)
class WaitTaskTest {
@Disabled("Testing without use of WaitTask")
@Test
void shouldWaitUntilTime() {
GameTime time = mock(GameTime.class);
Expand Down

0 comments on commit 28de058

Please sign in to comment.