@Test public void shouldDisplayOnlySpecifiedStates() throws Exception { transitionToState(START_STATE); String htmlform = "<htmlform><workflowState workflowId=\"100\" stateIds=\"" + START_STATE + "," + END_STATE + "\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertPresent(session, START_STATE); assertPresent(session, END_STATE); assertNotPresent(session, MIDDLE_STATE); }
@SuppressWarnings("unused") private void enrollInProgram(String state) { enrollInProgram(state, new Date()); }
@Test public void shouldDisplayStateSpecifiedByMapping() throws Exception { executeDataSet(XML_DATASET_PATH + new TestUtil().getTestDatasetFilename(XML_TEST_DATASET)); String htmlform = "<htmlform><workflowState workflowId=\"108\" stateId=\"SNOMED CT:Test Code\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertPresent(session, MAPPED_STATE); }
@Test public void shouldDisplayAllStatesIfInInitialState() throws Exception { transitionToState(START_STATE); String htmlform = "<htmlform><workflowState workflowId=\"100\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertPresent(session, START_STATE); assertPresent(session, MIDDLE_STATE); assertPresent(session, END_STATE); }
@Test public void shouldDisplayOnlyInitialStateIfNotEnrolled() throws Exception { String htmlform = "<htmlform><workflowState workflowId=\"100\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertPresent(session, START_STATE); assertNotPresent(session, MIDDLE_STATE); assertNotPresent(session, END_STATE); }
private void transitionToState(String state) { transitionToState(state, new Date()); }
@Test public void shouldNotDisplayRetiredStates() throws Exception { transitionToState(START_STATE); String htmlform = "<htmlform><workflowState workflowId=\"100\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertNotPresent(session, RETIRED_STATE); }
@Test public void shouldDisplayStateLabel() throws Exception { String startState = "Transition to start state"; String htmlform = "<htmlform><workflowState workflowId=\"100\" stateId=\"" + START_STATE + "\" stateLabel=\"" + startState + "\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertPresent(session, startState); }
private void enrollInProgram(String state, Date date) { ProgramWorkflowState workflowState = Context.getProgramWorkflowService().getStateByUuid(state); PatientProgram patientProgram = getPatientProgramByWorkflow(patient, workflowState.getProgramWorkflow(), date); if (patientProgram == null) { patientProgram = new PatientProgram(); patientProgram.setPatient(patient); patientProgram.setProgram(workflowState.getProgramWorkflow().getProgram()); patientProgram.setDateEnrolled(date); } Context.getProgramWorkflowService().savePatientProgram(patientProgram); }
@Before public void before() throws Exception { executeDataSet(XML_DATASET_PATH + new TestUtil().getTestDatasetFilename(XML_REGRESSION_TEST_DATASET)); patient = Context.getPatientService().getPatient(2); LogicUtil.registerDefaultRules(); }
@Test public void checkboxShouldAppearCheckedIfCurrentlyInSpecifiedState() throws Exception { transitionToState(START_STATE, FURTHER_PAST_DATE); transitionToState(MIDDLE_STATE, PAST_DATE); new RegressionTestHelper() { @Override public String getFormName() { return XML_CHECKBOX_FORM_NAME; } @Override public void testBlankFormHtml(String html) { Pattern p = Pattern.compile(".*checked=\"true\"/><label for=\".*\">MIDDLE STATE.*", Pattern.MULTILINE | Pattern.DOTALL); Assert.assertTrue("Checkbox should be checked: " + html, p.matcher(html).matches()); } }.run(); }
@Test public void shouldDisplayStateLabels() throws Exception { transitionToState(START_STATE); String startState = "Transition to start state"; String endState = "Transition to end state"; String htmlform = "<htmlform><workflowState workflowId=\"100\" stateIds=\"" + START_STATE + "," + END_STATE + "\" stateLabels=\"" + startState + ", " + endState + "\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertPresent(session, startState); assertPresent(session, endState); }
@Test public void shouldDisplayOnlySpecifiedStateAndDefaultToCheckbox() throws Exception { String htmlform = "<htmlform><workflowState workflowId=\"100\" stateId=\"" + START_STATE + "\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertPresent(session, START_STATE); assertNotPresent(session, MIDDLE_STATE); assertNotPresent(session, END_STATE); Assert.assertTrue("Checkbox result: " + session.getHtmlToDisplay(), session.getHtmlToDisplay().contains("checkbox")); }
@Test public void shouldDisplayLabel() throws Exception { String label = "Some label text"; String htmlform = "<htmlform><workflowState workflowId=\"100\" labelText=\"" + label + "\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertPresent(session, label); }
private void transitionToState(String state, Date date) { ProgramWorkflowState workflowState = Context.getProgramWorkflowService().getStateByUuid(state); PatientProgram patientProgram = getPatientProgramByWorkflow(patient, workflowState.getProgramWorkflow(), date); if (patientProgram == null) { patientProgram = new PatientProgram(); patientProgram.setPatient(patient); patientProgram.setProgram(workflowState.getProgramWorkflow().getProgram()); patientProgram.setDateEnrolled(date); } patientProgram.transitionToState(workflowState, date); Context.getProgramWorkflowService().savePatientProgram(patientProgram); }
@Test public void shouldDisplayOnlySpecifiedStatesGivenIds() throws Exception { transitionToState(START_STATE); String htmlform = "<htmlform><workflowState workflowId=\"100\" stateIds=\"200,201\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertPresent(session, START_STATE); assertPresent(session, END_STATE); assertNotPresent(session, MIDDLE_STATE); }
@Test(expected = FormEntryException.class) public void shouldFailIfAttemptingToShiftStateStartDatePastEndDate() throws Exception { transitionToState(START_STATE, FURTHER_PAST_DATE); transitionToState(END_STATE, PAST_DATE);
@Test public void shouldDisplayIfSpecifiedStateAndHiddenStyle() throws Exception { String htmlform = "<htmlform><workflowState workflowId=\"100\" stateId=\"" + START_STATE + "\" type=\"hidden\"/></htmlform>"; FormEntrySession session = new FormEntrySession(patient, htmlform, null); assertPresent(session, START_STATE); Assert.assertTrue("Checkbox result: " + session.getHtmlToDisplay(), session.getHtmlToDisplay().contains("hidden")); }
@Test public void shouldCreateNewProgramIfEncounterDateNotDuringProgramEnrollmentOnEdit() throws Exception { enrollInProgram(START_STATE, DATE); new RegressionTestHelper() {
@Test public void checkboxShouldNotAppearCheckedIfNotCurrentlyInSpecifiedState() throws Exception { transitionToState(START_STATE, PAST_DATE); new RegressionTestHelper() { @Override public String getFormName() { return XML_CHECKBOX_FORM_NAME; } @Override public void testBlankFormHtml(String html) { Assert.assertTrue("Checkbox should not be checked: " + html, !html.contains("checked=\"true\"/>MIDDLE STATE")); } }.run(); }