/** * Test the {@link PersonProgramStatusController#create(UUID, PersonProgramStatusTO)} and {@link * PersonProgramStatusController#delete(UUID, UUID)} actions. * * @throws ValidationException If validation error occurred. * @throws ObjectNotFoundException If object could not be found. */ @Test(expected = ObjectNotFoundException.class) public void testControllerDelete() throws ValidationException, ObjectNotFoundException { final Date now = new Date(); final PersonProgramStatusTO obj = createProgramStatus(); obj.setEffectiveDate(now); final PersonProgramStatusTO saved = controller.create(PERSON_ID, obj); assertNotNull("Saved instance should not have been null.", saved); final UUID savedId = saved.getId(); assertNotNull("Saved instance identifier should not have been null.", savedId); assertEquals("Saved instance values did not match.", now, saved.getEffectiveDate()); assertEquals( "Saved instance sets did not match.", PROGRAM_STATUS_CHANGE_REASON_ID, saved.getProgramStatusChangeReasonId()); final ServiceResponse response = controller.delete(savedId, PERSON_ID); assertNotNull("Deletion response should not have been null.", response); assertTrue("Deletion response did not return success.", response.isSuccess()); final PersonProgramStatusTO afterDeletion = controller.get(savedId, PERSON_ID); // ObjectNotFoundException expected at this point assertNull( "Instance should not be able to get loaded after it has been deleted.", afterDeletion); }
/** * Test the {@link PersonJournalEntryController#create(UUID, JournalEntryTO)} and {@link * PersonJournalEntryController#delete(UUID, UUID)} actions. * * @throws ObjectNotFoundException Should not be thrown for this test. * @throws ValidationException Should not be thrown for this test. */ @Test() public void testControllerCreateAndDelete() throws ObjectNotFoundException, ValidationException { // Now create JournalEntry for testing final JournalEntryTO obj = new JournalEntryTO(); obj.setPersonId(PERSON_ID); obj.setEntryDate(new Date()); obj.setJournalSource( new ReferenceLiteTO<JournalSource>( UUID.fromString("b2d07973-5056-a51a-8073-1d3641ce507f"), "")); obj.setJournalTrack( new ReferenceLiteTO<JournalTrack>( UUID.fromString("b2d07a7d-5056-a51a-80a8-96ae5188a188"), "")); obj.setConfidentialityLevel(new ConfidentialityLevelLiteTO(CONFIDENTIALITY_LEVEL_ID, "")); obj.setObjectStatus(ObjectStatus.ACTIVE); final Set<JournalEntryDetailTO> journalEntryDetails = Sets.newHashSet(); final JournalEntryDetailTO journalEntryDetail = new JournalEntryDetailTO(); journalEntryDetail.setJournalStep(new ReferenceLiteTO<JournalStep>(JOURNAL_STEP_ID, "")); final Set<ReferenceLiteTO<JournalStepDetail>> details = Sets.newHashSet(); details.add(new ReferenceLiteTO<JournalStepDetail>(JOURNAL_STEP_DETAIL_ID, "")); journalEntryDetail.setJournalStepDetails(details); journalEntryDetails.add(journalEntryDetail); obj.setJournalEntryDetails(journalEntryDetails); final JournalEntryTO saved = controller.create(PERSON_ID, obj); final Session session = sessionFactory.getCurrentSession(); session.flush(); final UUID savedId = saved.getId(); assertNotNull("Saved instance identifier should not have been null.", savedId); assertEquals("Person identifiers don't match.", PERSON_ID, saved.getPersonId()); assertFalse( "JournalEntryDetails should not have been empty.", saved.getJournalEntryDetails().isEmpty()); session.flush(); session.clear(); final JournalEntryTO reloaded = controller.get(savedId, PERSON_ID); assertFalse( "JournalEntryDetails should not have been empty.", reloaded.getJournalEntryDetails().isEmpty()); // Try save (update) final JournalEntryDetailTO journalEntryDetail2 = new JournalEntryDetailTO(); journalEntryDetail2.setJournalStep(new ReferenceLiteTO<JournalStep>(JOURNAL_STEP_ID, "")); final Set<ReferenceLiteTO<JournalStepDetail>> details2 = Sets.newHashSet(); details2.add(new ReferenceLiteTO<JournalStepDetail>(JOURNAL_STEP_DETAIL_ID, "")); journalEntryDetail2.setJournalStepDetails(details2); journalEntryDetails.add(journalEntryDetail2); reloaded.getJournalEntryDetails().add(journalEntryDetail2); final JournalEntryTO updated = controller.save(savedId, PERSON_ID, reloaded); session.flush(); assertEquals("Saved instance identifiers do not match.", savedId, updated.getId()); assertEquals("PersonIds did not match.", PERSON_ID, updated.getPersonId()); assertFalse( "JournalEntryDetails should have had entries.", updated.getJournalEntryDetails().isEmpty()); session.flush(); session.clear(); final JournalEntryTO reloadedAgain = controller.get(savedId, PERSON_ID); assertEquals( "JournalEntryDetails did not have the expected number of entries.", 2, reloadedAgain.getJournalEntryDetails().size()); // finally delete final ServiceResponse response = controller.delete(savedId, PERSON_ID); assertNotNull("Deletion response should not have been null.", response); assertTrue("Deletion response did not return success.", response.isSuccess()); try { // ObjectNotFoundException expected at this point final JournalEntryTO afterDeletion = controller.get(savedId, PERSON_ID); assertNull( "Instance should not be able to get loaded after it has been deleted.", afterDeletion); } catch (final ObjectNotFoundException exc) { // NOPMD by jon.adams // expected } }