#[macro_export]
#[deprecated]
macro_rules! assert_logs_contain {
($inspector: expr, $($level:expr => $line: literal),*) => {
let mut expected = Vec::<$crate::logging::interface::LogLine>::new();
$(
expected.push($crate::logging::interface::LogLine($level, $line.to_string()));
)*
$inspector.assert_logs_contain_in_order(&expected);
};
}
#[macro_export]
macro_rules! assert_logs_contain_in_order {
($inspector: expr, $($level:expr => $line: expr),*) => {
let mut expected = Vec::<$crate::logging::interface::LogLine>::new();
$(
expected.push($crate::logging::interface::LogLine($level, $line.to_string()));
)*
$inspector.assert_logs_contain_in_order(&expected);
};
}
#[cfg(test)]
mod tests {
use crate::logging::setup_logging_test;
use log::{info, warn, Level};
#[test]
fn should_succeed_if_logs_contain_all_of_the_expected_items_in_order() {
let logs = setup_logging_test();
info!("Doing stuff");
warn!("Oops, something happened!");
assert_logs_contain_in_order!(
logs,
Level::Warn => "Oops, something happened!"
);
}
#[test]
fn should_allow_expressions() {
let logs = setup_logging_test();
warn!("Oops, something happened!");
assert_logs_contain_in_order!(
logs,
Level::Warn => format!("{}", "Oops, something happened!")
);
}
}