use fluent_test::prelude::*;
use std::cell::RefCell;
thread_local! {
static TEST_COUNTER: RefCell<u32> = RefCell::new(0);
}
mod test_module {
use super::*;
#[setup]
fn setup() {
println!("Setting up test environment with attribute macro...");
TEST_COUNTER.with(|counter| {
*counter.borrow_mut() = 0;
});
}
#[tear_down]
fn tear_down() {
println!("Cleaning up test environment with attribute macro...");
TEST_COUNTER.with(|counter| {
println!("Final counter value: {}", *counter.borrow());
});
}
#[with_fixtures]
pub fn run_test() {
expect!(get_counter()).to_equal(0);
increment_counter();
expect!(get_counter()).to_equal(1);
}
}
fn increment_counter() {
TEST_COUNTER.with(|counter| {
*counter.borrow_mut() += 1;
});
}
fn get_counter() -> u32 {
TEST_COUNTER.with(|counter| *counter.borrow())
}
fn main() {
config().enhanced_output(true).apply();
println!("Running test with attribute-style fixtures:");
test_module::run_test();
println!("\nTest passed!");
}