use easy_assert::list_assertions::ListAssert;
use easy_assert::{actual_vec, expected_vec};
#[test]
#[should_panic]
pub fn same_should_contains_all() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.all()
}
#[test]
#[should_panic]
pub fn same_should_contains_all_in_any_order() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![
String::from("b"),
String::from("c"),
String::from("a"),
]))
.all()
}
#[test]
#[should_panic]
pub fn same_should_contains_all_for_at_lest_one() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.at_least_one()
}
#[test]
#[should_panic]
pub fn same_should_contains_all_in_any_order_for_at_lest_one() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![
String::from("b"),
String::from("c"),
String::from("a"),
]))
.at_least_one()
}
#[test]
#[should_panic]
pub fn bigger_should_contains_all() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![String::from("a"), String::from("b")]))
.all()
}
#[test]
#[should_panic]
pub fn bigger_should_contains_all_in_any_order() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![String::from("b"), String::from("c")]))
.all()
}
#[test]
#[should_panic]
pub fn bigger_should_contains_all_for_at_lest_one() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![String::from("a"), String::from("b")]))
.at_least_one()
}
#[test]
#[should_panic]
pub fn bigger_should_contains_all_in_any_order_for_at_lest_one() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![String::from("b"), String::from("c")]))
.at_least_one()
}
#[test]
#[should_panic]
pub fn does_not_contains_all_failing_if_one_exist() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![
String::from("a"),
String::from("d"),
String::from("e"),
]))
.all()
}
#[test]
pub fn does_not_contains_all_succeed_if_all_diff() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![String::from("d"), String::from("e")]))
.all()
}
#[test]
pub fn does_not_contains_at_least_one_pass_even_if_just_one_differ() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![String::from("a"), String::from("d")]))
.at_least_one()
}
#[test]
pub fn does_not_contains_at_least_one_pass_even_if_all_differ() {
ListAssert::assert_that(actual_vec(vec![
String::from("a"),
String::from("b"),
String::from("c"),
]))
.with_element_matcher(|a, b| a.eq(b))
.does_not_contain(expected_vec(vec![String::from("d"), String::from("e")]))
.at_least_one()
}