@Test
  public void should_not_match_against_non_matching_single_bean() {
    Person person = new Person("Bill", "Kidd");

    BeanMatcher firstNameIsBill = BeanMatchers.the("firstName", is("Bill"));
    BeanMatcher lastNameIsOddie = BeanMatchers.the("lastName", is("Oddie"));

    assertThat(BeanMatcherAsserts.matches(person, firstNameIsBill, lastNameIsOddie)).isFalse();
  }
  @Test
  public void should_match_against_a_single_bean() {
    Map<String, String> person = mappedPerson("Bill", "Oddie");

    BeanMatcher firstNameIsBill = BeanMatchers.the("firstName", is("Bill"));
    BeanMatcher lastNameIsOddie = BeanMatchers.the("lastName", is("Oddie"));

    assertThat(BeanMatcherAsserts.matches(person, firstNameIsBill, lastNameIsOddie)).isTrue();
  }
  @Test
  public void should_fail_filter_if_no_matching_elements_found() {
    List<Map<String, String>> persons =
        Arrays.asList(
            mappedPerson("Bill", "Kidd"),
            mappedPerson("Graeam", "Garden"),
            mappedPerson("Tim", "Brooke-Taylor"));

    BeanMatcher firstNameIsBill = BeanMatchers.the("firstName", is("Bill"));
    BeanMatcher lastNameIsOddie = BeanMatchers.the("lastName", is("Oddie"));

    assertThat(BeanMatcherAsserts.matches(persons, firstNameIsBill, lastNameIsOddie)).isFalse();
  }
  @Test
  public void should_filter_list_of_beans_by_matchers() {
    List<Map<String, String>> persons =
        Arrays.asList(
            mappedPerson("Bill", "Oddie"),
            mappedPerson("Graeam", "Garden"),
            mappedPerson("Tim", "Brooke-Taylor"));

    BeanMatcher firstNameIsBill = BeanMatchers.the("firstName", is("Bill"));
    BeanMatcher lastNameIsOddie = BeanMatchers.the("lastName", is("Oddie"));

    assertThat(BeanMatcherAsserts.matches(persons, firstNameIsBill, lastNameIsOddie)).isTrue();
  }