// Module 1: Handles and order of play. Each test matches a heading in scenarios.md. use engine::harness::*; #[test] fn test_01_ids_stable_and_order_increases() { let mut g = new_game(GameOpts::default()); let a = g.summon("Test Filler", 0); let order_a = g.order_of_play(a); let b = g.summon("Test Filler", 0); assert_ne!(a, b); assert!(g.order_of_play(a) < g.order_of_play(b)); assert_eq!(g.order_of_play(a), order_a); assert_eq!(g.name_of(a), "Test Filler"); assert_eq!(g.zone_of(a), Zone::Board); assert_eq!(g.board(0), vec![a, b]); } #[test] fn test_01_zones() { let mut g = new_game(GameOpts::default()); let d = g.add_to_deck("Test Filler", 0); let h = g.add_to_hand("Test Filler", 0); let s = g.summon("Test Filler", 0); assert_eq!(g.zone_of(d), Zone::Deck); assert_eq!(g.zone_of(h), Zone::Hand); assert_eq!(g.zone_of(s), Zone::Board); assert_eq!(g.hand(0), vec![h]); assert_eq!(g.board(0), vec![s]); } #[test] fn test_01_board_query_per_player() { let mut g = new_game(GameOpts::default()); let a0 = g.summon("Test Filler", 0); let a1 = g.summon("Test Filler", 1); let b0 = g.summon("Test Filler", 0); assert_eq!(g.board(0), vec![a0, b0]); assert_eq!(g.board(1), vec![a1]); } #[test] fn test_01_names() { let mut g = new_game(GameOpts::default()); let a = g.summon("Test Filler", 0); let h = g.add_to_hand("Test Filler", 1); assert_eq!(g.name_of(a), "Test Filler"); assert_eq!(g.name_of(h), "Test Filler"); }