/** @see ShortPatientFormValidator#validate(Object,Errors) */
  @Test
  @Verifies(value = "should reject a duplicate address", method = "validate(Object,Errors)")
  public void validate_shouldRejectADuplicateAddress() throws Exception {
    Patient patient = ps.getPatient(2);
    PersonAddress oldAddress = patient.getPersonAddress();
    Assert.assertEquals(1, patient.getAddresses().size()); // sanity check
    // add a name for testing purposes
    PersonAddress address = (PersonAddress) oldAddress.clone();
    address.setPersonAddressId(null);
    address.setUuid(null);
    address.setAddress1("address1");
    address.setAddress2("address2");
    patient.addAddress(address);
    Context.getPatientService().savePatient(patient);
    Assert.assertNotNull(address.getId()); // should have been added

    ShortPatientModel model = new ShortPatientModel(patient);
    // should still be the preferred address for the test to pass
    Assert.assertEquals(oldAddress.getId(), model.getPersonAddress().getId());
    // change to a duplicate name
    model.getPersonAddress().setAddress1("Address1"); // should be case insensitive
    model.getPersonAddress().setAddress2("address2");

    Errors errors = new BindException(model, "patientModel");
    validator.validate(model, errors);
    Assert.assertEquals(true, errors.hasErrors());
  }