43 lines
1.1 KiB
Rust
43 lines
1.1 KiB
Rust
// tests/gamelog_test.rs
|
|
use rust_rl::gamelog::*;
|
|
use rust_rl::data::events::*;
|
|
use lazy_static::lazy_static;
|
|
use std::sync::Mutex;
|
|
|
|
// To ensure this test module uses a single thread.
|
|
lazy_static! {
|
|
static ref SINGLE_THREAD: Mutex<()> = Mutex::new(());
|
|
}
|
|
|
|
#[test]
|
|
fn recording_event() {
|
|
let _lock = SINGLE_THREAD.lock();
|
|
clear_events();
|
|
record_event(EVENT::Turn(1));
|
|
record_event(EVENT::Turn(0));
|
|
record_event(EVENT::Turn(-1));
|
|
record_event(EVENT::Killed("mob".to_string()));
|
|
}
|
|
|
|
#[test]
|
|
fn getting_event_count() {
|
|
let _lock = SINGLE_THREAD.lock();
|
|
clear_events();
|
|
record_event(EVENT::Turn(1));
|
|
assert_eq!(get_event_count(EVENT::COUNT_TURN), 1);
|
|
record_event(EVENT::Turn(3));
|
|
assert_eq!(get_event_count(EVENT::COUNT_TURN), 4);
|
|
clear_events();
|
|
assert_eq!(get_event_count(EVENT::COUNT_TURN), 0);
|
|
}
|
|
|
|
#[test]
|
|
fn cloning_events() {
|
|
let _lock = SINGLE_THREAD.lock();
|
|
clear_events();
|
|
record_event(EVENT::Level(1));
|
|
record_event(EVENT::Turn(5));
|
|
record_event(EVENT::Identified("item".to_string()));
|
|
let cloned_events = clone_events();
|
|
assert_eq!(EVENTS.lock().unwrap().clone(), cloned_events);
|
|
}
|