aboutsummaryrefslogtreecommitdiff
path: root/internal/game/craps_variants_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/game/craps_variants_test.go')
-rw-r--r--internal/game/craps_variants_test.go65
1 files changed, 41 insertions, 24 deletions
diff --git a/internal/game/craps_variants_test.go b/internal/game/craps_variants_test.go
index 76d1424..42f3529 100644
--- a/internal/game/craps_variants_test.go
+++ b/internal/game/craps_variants_test.go
@@ -64,40 +64,57 @@ func TestCrapsVariantRendering(t *testing.T) {
func TestShippedCrapsGallery(t *testing.T) {
w := world.New(filepath.Join("..", "..", "data"))
- variants := []string{"bank", "simplified", "high_point", "crapless", "new_york", "die_rich", "diceless"}
- for i, v := range variants {
- id := 6185 + i
- room, err := w.LoadRoom(id)
- if err != nil {
- t.Fatal(err)
- }
- if len(room.CasinoTables) != 1 {
- t.Fatal(id, "missing table")
+ northVariants := []string{"simplified", "high_point", "crapless"}
+ southVariants := []string{"new_york", "die_rich", "diceless"}
+ for i, v := range northVariants {
+ id := 6186 + i
+ room := loadCrapsRoom(t, w, id, v)
+ if i > 0 && room.Exits["south"].Room != id-1 {
+ t.Fatal(id, "missing return exit")
}
- cfg := room.CasinoTables[0]
- if cfg.Game != casino.GameCraps || cfg.Craps.Variant != v {
- t.Fatal(id, cfg)
+ if i < len(northVariants)-1 && room.Exits["north"].Room != id+1 {
+ t.Fatal(id, "unreachable next table")
}
- if err := cfg.Validate(); err != nil {
- t.Fatal(id, err)
+ }
+ for i, v := range southVariants {
+ id := 6189 + i
+ room := loadCrapsRoom(t, w, id, v)
+ if i == 0 && room.Exits["north"].Room != 6185 {
+ t.Fatal(id, "south gallery unreachable from the bank pit")
}
- if i > 0 && room.Exits["south"].Room != id-1 {
+ if i > 0 && room.Exits["north"].Room != id-1 {
t.Fatal(id, "missing return exit")
}
- if i < len(variants)-1 && room.Exits["north"].Room != id+1 {
+ if i < len(southVariants)-1 && room.Exits["south"].Room != id+1 {
t.Fatal(id, "unreachable next table")
}
- m := casino.NewManager(1)
- m.Join(id, cfg, "a")
- if m.Table(id, cfg.ID) == nil {
- t.Fatal(id, "table registration")
- }
}
- room, err := w.LoadRoom(6182)
+ room := loadCrapsRoom(t, w, 6185, "bank")
+ if room.Exits["west"].Room != 6182 || room.Exits["east"].Room != 6118 {
+ t.Fatal("pit exits missing", room.Exits)
+ }
+}
+
+func loadCrapsRoom(t *testing.T, w *world.World, id int, variant string) *world.Room {
+ t.Helper()
+ room, err := w.LoadRoom(id)
if err != nil {
t.Fatal(err)
}
- if room.Exits["west"].Room != 6185 {
- t.Fatal("gallery unreachable from roulette")
+ if len(room.CasinoTables) != 1 {
+ t.Fatal(id, "missing table")
+ }
+ cfg := room.CasinoTables[0]
+ if cfg.Game != casino.GameCraps || cfg.Craps.Variant != variant {
+ t.Fatal(id, cfg)
+ }
+ if err := cfg.Validate(); err != nil {
+ t.Fatal(id, err)
+ }
+ m := casino.NewManager(1)
+ m.Join(id, cfg, "a")
+ if m.Table(id, cfg.ID) == nil {
+ t.Fatal(id, "table registration")
}
+ return room
}