#[cfg(test)]
mod test {
use derive_getters::Getters;
use selective_assertions::*;
#[derive(Debug, PartialEq, Getters)]
struct User {
id: u32,
name: String,
age: usize,
}
#[test]
fn test_assert_eq_selected_should_pass_when_selects_same_one_field() {
let alice_in_wonder_land = User {
id: 1,
name: "Alice".to_string(),
age: 7,
};
let alice_in_looking_glass_land = User {
id: 1,
name: "Alice".to_string(),
age: 8,
};
assert_eq_selected!(alice_in_wonder_land, alice_in_looking_glass_land, id);
}
#[test]
fn test_assert_eq_selected_should_pass_when_selects_same_some_fields() {
let alice_in_wonder_land = User {
id: 1,
name: "Alice".to_string(),
age: 7,
};
let alice_in_looking_glass_land = User {
id: 1,
name: "Alice".to_string(),
age: 8,
};
assert_eq_selected!(alice_in_wonder_land, alice_in_looking_glass_land, id, name);
}
#[should_panic]
#[test]
fn test_assert_eq_selected_should_fail_when_selects_fields_has_with_some_different_values() {
let alice_in_wonder_land = User {
id: 1,
name: "Alice".to_string(),
age: 7,
};
let alice_in_looking_glass_land = User {
id: 1,
name: "Alice".to_string(),
age: 8,
};
assert_eq_selected!(
alice_in_wonder_land,
alice_in_looking_glass_land,
id,
name,
age
);
}
}