diff options
Diffstat (limited to 'internal/game/craps_variants_test.go')
| -rw-r--r-- | internal/game/craps_variants_test.go | 65 |
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 } |
