first commit

This commit is contained in:
hujun
2026-03-20 12:50:41 +08:00
commit 24fce055fd
88 changed files with 7655 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
package com.xuezhanmaster.game.event;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
class GameEventTest {
@Test
void shouldBuildResponseActionPayloadForFutureResponseEvents() {
GameEvent event = GameEvent.responseActionDeclared(
"game-1",
GameEventType.PENG_DECLARED,
2,
1,
"三万"
);
assertThat(event.eventType()).isEqualTo(GameEventType.PENG_DECLARED);
assertThat(event.seatNo()).isEqualTo(2);
assertThat(event.payload())
.containsEntry("actionType", "PENG")
.containsEntry("sourceSeatNo", 1)
.containsEntry("tile", "三万");
}
@Test
void shouldBuildStandardPublicTableEvents() {
GameEvent started = GameEvent.gameStarted("game-1", "room-1");
GameEvent phaseChanged = GameEvent.phaseChanged("game-1", "PLAYING");
GameEvent switched = GameEvent.turnSwitched("game-1", 3);
assertThat(started.eventType()).isEqualTo(GameEventType.GAME_STARTED);
assertThat(started.payload()).containsEntry("roomId", "room-1");
assertThat(phaseChanged.eventType()).isEqualTo(GameEventType.GAME_PHASE_CHANGED);
assertThat(phaseChanged.payload()).containsEntry("phase", "PLAYING");
assertThat(switched.eventType()).isEqualTo(GameEventType.TURN_SWITCHED);
assertThat(switched.payload()).containsEntry("currentSeatNo", 3);
}
}