private void setPreferredPersonAddress(Person person) { PersonAddress preferredAddress = null; PersonAddress possiblePreferredAddress = person.getPersonAddress(); if (possiblePreferredAddress != null && possiblePreferredAddress.getPreferred() && !possiblePreferredAddress.getVoided()) { preferredAddress = possiblePreferredAddress; } for (PersonAddress address : person.getAddresses()) { if (preferredAddress == null && !address.getVoided()) { address.setPreferred(true); preferredAddress = address; continue; } if (!address.equals(preferredAddress)) { address.setPreferred(false); } } }
private void checkGetPersonAddressResultForVoidedPerson(PersonAddress expectedPersonAddress, Set<PersonAddress> personAddresses) { Person person = new Person(); person.setAddresses(personAddresses); person.setVoided(true); PersonAddress actualPersonAddress = person.getPersonAddress(); assertEquals(expectedPersonAddress, actualPersonAddress); }
/** * @see Person#getPersonAddress() */ @Test public void getPersonAddress_shouldGetVoidedPersonAddressIfPersonIsVoidedAndNotvoidedAddressDoesNotExist() { // addresses PersonAddress voidedAddress1 = PersonAddressBuilder.newBuilder().withVoided(true).build(); PersonAddress voidedAddress2 = PersonAddressBuilder.newBuilder().withVoided(true).build(); Set<PersonAddress> personAddresses = new HashSet<>(Arrays.asList(voidedAddress1, voidedAddress2)); Person person = new Person(); person.setVoided(true); person.setAddresses(personAddresses); PersonAddress actualPersonAddress = person.getPersonAddress(); assertTrue(actualPersonAddress.getVoided()); }
@PropertyGetter("preferredAddress") public static PersonAddress getPreferredAddress(Person instance) { return instance.getPersonAddress(); }
/** * @see Person#getPersonAddress() */ @Test public void getPersonAddress_shouldReturnNullIfPersonIsNotvoidedAndHaveVoidedAddress() { PersonAddress firstPersonAddress = PersonAddressBuilder.newBuilder().withVoided(true).build(); PersonAddress secondPersonAddress = PersonAddressBuilder.newBuilder().withVoided(true).build(); Person notVoidedPerson = new Person(); notVoidedPerson.addAddress(firstPersonAddress); notVoidedPerson.addAddress(secondPersonAddress); Assert.assertNull(notVoidedPerson.getPersonAddress()); }
@Test public void shouldAddAnAddressWithSpecificUuidToAPerson() throws Exception { SimpleObject address = new SimpleObject(); address.add("address1", "test address"); address.add("country", "USA"); address.add("preferred", "true"); address.add("uuid", ADDRESS_TEST_UUID); MockHttpServletRequest req = newPostRequest(getURI(), address); handle(req); PersonAddress personAddress = service.getPersonByUuid(RestTestConstants1_8.PERSON_UUID).getPersonAddress(); Assert.assertNotNull(personAddress); Assert.assertEquals(ADDRESS_TEST_UUID, personAddress.getUuid()); }
@Test public void shouldSetThePreferredAddressAndUnmarkTheOldOne() throws Exception { executeDataSet("PersonControllerTest-otherPersonData.xml"); Person person = service.getPersonByUuid(getUuid()); PersonAddress preferredAddress = service.getPersonAddressByUuid("8a806d8c-822d-11e0-872f-18a905e044dc"); PersonAddress notPreferredAddress = service.getPersonAddressByUuid("3350d0b5-821c-4e5e-ad1d-a9bce331e118"); assertTrue(preferredAddress.isPreferred()); assertFalse(notPreferredAddress.isPreferred()); assertFalse(notPreferredAddress.isVoided()); //sanity check that the addresses belong to the person assertEquals(person, preferredAddress.getPerson()); assertEquals(person, notPreferredAddress.getPerson()); handle(newPostRequest(getURI() + "/" + getUuid(), "{ \"preferredAddress\":\"" + notPreferredAddress.getUuid() + "\" }")); assertEquals(notPreferredAddress, person.getPersonAddress()); assertTrue(notPreferredAddress.isPreferred()); assertFalse(preferredAddress.isPreferred()); }