gamelog events unit tests

This commit is contained in:
Llywelwyn 2023-09-20 23:21:38 +01:00
parent 58e4742f12
commit 66013667d8
3 changed files with 48 additions and 3 deletions

43
tests/gamelog_test.rs Normal file
View file

@ -0,0 +1,43 @@
// 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);
}

View file

@ -1,2 +1,3 @@
// tests/mod.rs
mod map_test;
mod gamelog_test;