53 lines
1.5 KiB
Rust
53 lines
1.5 KiB
Rust
// 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");
|
|
}
|