use crate::event::Event;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct AdvanceTimeRequested;
impl Event for AdvanceTimeRequested {}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct DayChanged {
pub day: u32,
}
impl Event for DayChanged {}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct ActionConsumedEvent {
pub actions_remaining: u32,
}
impl Event for ActionConsumedEvent {}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_advance_time_requested_creation() {
let event = AdvanceTimeRequested;
let _cloned = event.clone();
}
#[test]
fn test_day_changed_event_creation() {
let event = DayChanged { day: 5 };
assert_eq!(event.day, 5);
}
#[test]
fn test_day_changed_event_clone() {
let event1 = DayChanged { day: 10 };
let event2 = event1.clone();
assert_eq!(event1, event2);
}
#[test]
fn test_action_consumed_event_creation() {
let event = ActionConsumedEvent {
actions_remaining: 3,
};
assert_eq!(event.actions_remaining, 3);
}
}