results.assertLocation(2);
// do a sanity check here
ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(END_STATE);
PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE);
PatientState patientState = getPatientState(patientProgram, state, DATE);
Assert.assertNotNull(patientProgram);
Assert.assertEquals(dateAsString(DATE), dateAsString(patientState.getStartDate()));
Assert.assertNull(patientState.getEndDate());
}
public boolean doViewEncounter() {
return true;
}
public void testViewingEncounter(Encounter encounter, String html) {
Assert.assertTrue("View should contain current state: " + html, html.contains("END STATE"));
}
public boolean doEditEncounter() {
return true;
}
public String[] widgetLabelsForEdit() {
return new String[] { "Date:", "Location:", "Provider:", "State:" };
}
public void setupEditRequest(MockHttpServletRequest request, Map<String,String> widgets) {
request.setParameter(widgets.get("Location:"), "2");
request.setParameter(widgets.get("Provider:"), "502");
request.setParameter(widgets.get("Date:"), dateAsString(PAST_DATE));
request.setParameter(widgets.get("State:"), MIDDLE_STATE);
}
public void testEditedResults(SubmissionResults results) {
results.assertNoErrors();
ProgramWorkflowState startState = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
ProgramWorkflowState middleState = Context.getProgramWorkflowService().getStateByUuid(MIDDLE_STATE);
PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), startState, FURTHER_PAST_DATE);
Assert.assertNotNull(patientProgram);
// assert that the patient program only has two states
Assert.assertEquals(2, patientProgram.getStates().size());
// verify that the start state now ends on PAST_DATE
PatientState patientState = getPatientState(patientProgram, startState, FURTHER_PAST_DATE);
Assert.assertNotNull(patientState);
Assert.assertEquals(dateAsString(FURTHER_PAST_DATE), dateAsString(patientState.getStartDate()));
Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientState.getEndDate()));
// verify that the middle state starts on PAST_DATE and has no current end date
patientState = getPatientState(patientProgram, middleState, PAST_DATE);
Assert.assertNotNull(patientState);
Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientState.getStartDate()));
Assert.assertNull(patientState.getEndDate());
}
}.run();
}