public void testValidateMultipleObjects() {
    Human human1 = new Human();
    Human human2 = new Human();

    ValidateContext validateContext = new ValidateContext();
    Set propertiesToValidate = new HashSet();
    propertiesToValidate.add("human1." + Human.FIRST_NAME);
    propertiesToValidate.add("human1." + Human.LAST_NAME);
    propertiesToValidate.add("human2." + Human.FIRST_NAME);
    propertiesToValidate.add("human2." + Human.LAST_NAME);
    validateContext.setPropertiesToValidate(propertiesToValidate);

    validateContext.enterProperty("human1");
    ValidateHome.validate(human1, validateContext);
    validateContext.leaveProperty();

    validateContext.enterProperty("human2");
    ValidateHome.validate(human2, validateContext);
    validateContext.leaveProperty();

    // First name and last name are mandatory
    assertTrue(validateContext.isInvalid());
    assertTrue(validateContext.isMissing("human1." + Human.FIRST_NAME));
    assertTrue(validateContext.isMissing("human1." + Human.LAST_NAME));
    assertTrue(validateContext.isMissing("human2." + Human.FIRST_NAME));
    assertTrue(validateContext.isMissing("human2." + Human.LAST_NAME));
    assertTrue(validateContext.getMissingProperties().size() == 4);
    assertFalse(validateContext.isProblematic());

    System.out.println(validateContext);
  }