#[cfg(test)]
mod tests {
use booking_kit::error::BookingError;
use booking_kit::model::status::BookingStatus;
#[test]
fn test_invalid_status_transition() {
let from_status = BookingStatus::Pending;
let to_status = BookingStatus::Expired;
let error = BookingError::new_invalid_transition(from_status.clone(), to_status.clone());
match error {
BookingError::InvalidStatusTransition { from, to } => {
assert_eq!(from, from_status);
assert_eq!(to, to_status);
}
_ => panic!("Expected InvalidStatusTransition error"),
}
}
#[test]
fn test_invalid_status_transition_string() {
let from_status = BookingStatus::Pending;
let to_status = BookingStatus::Expired;
let error = BookingError::new_invalid_transition(from_status.clone(), to_status.clone());
let error_message = format!("{}", error);
assert_eq!(error_message, "Invalid status transition from Pending to Expired");
}
}