@Test public void transitionToDate_shouldSetEndDateOfNewStateToProgramCompletionDateIfProgramCompleted() throws Exception { //given PatientProgram program = new PatientProgram(); program.setDateEnrolled(new Date()); program.setDateCompleted(new Date()); ProgramWorkflow workflow = new ProgramWorkflow(); ProgramWorkflowState workflowState = new ProgramWorkflowState(); workflowState.setTerminal(false); workflowState.setProgramWorkflow(workflow); //when program.transitionToState(workflowState, new Date()); //then Assert.assertTrue(program.getStates().size() == 1); Assert.assertTrue(program.getStates().iterator().next().getEndDate().equals(program.getDateCompleted())); }
@Test public void transitionToDate_shouldSetEndDateOfNewStateToNullIfProgramNotCompleted() throws Exception { //given PatientProgram program = new PatientProgram(); program.setDateEnrolled(new Date()); ProgramWorkflow workflow = new ProgramWorkflow(); ProgramWorkflowState workflowState = new ProgramWorkflowState(); workflowState.setTerminal(false); workflowState.setProgramWorkflow(workflow); //when program.transitionToState(workflowState, new Date()); //then Assert.assertTrue(program.getStates().size() == 1); Assert.assertNull(program.getStates().iterator().next().getEndDate()); }
state1_w1.setConcept(cs.getConcept(5)); state1_w1.setInitial(true); state1_w1.setTerminal(false); workflow1.addState(state1_w1); state2_w1.setConcept(cs.getConcept(6)); state2_w1.setInitial(false); state2_w1.setTerminal(true); workflow1.addState(state2_w1); state1_w2.setConcept(cs.getConcept(5)); state1_w2.setInitial(true); state1_w2.setTerminal(false); workflow2.addState(state1_w2); state2_w2.setConcept(cs.getConcept(6)); state2_w2.setInitial(false); state2_w2.setTerminal(true); workflow2.addState(state2_w2);
state1_w1.setConcept(cs.getConcept(5)); state1_w1.setInitial(true); state1_w1.setTerminal(false); workflow1.addState(state1_w1); state2_w1.setConcept(cs.getConcept(6)); state2_w1.setInitial(false); state2_w1.setTerminal(true); workflow1.addState(state2_w1); state1_w2.setConcept(cs.getConcept(5)); state1_w2.setInitial(true); state1_w2.setTerminal(false); workflow2.addState(state1_w2); state2_w2.setConcept(cs.getConcept(6)); state2_w2.setInitial(false); state2_w2.setTerminal(true); workflow2.addState(state2_w2); state1_w3.setConcept(cs.getConcept(5)); state1_w3.setInitial(true); state1_w3.setTerminal(false); workflow3.addState(state1_w3); state2_w3.setConcept(cs.getConcept(6)); state2_w3.setInitial(false); state2_w3.setTerminal(true); workflow3.addState(state2_w3);
state1.setConcept(cs.getConcept(5)); state1.setInitial(true); state1.setTerminal(false); workflow.addState(state1); state2.setConcept(cs.getConcept(6)); state2.setInitial(false); state2.setTerminal(true); workflow.addState(state2);
@Test public void saveProgram_shouldFailIfProgramWorkFlowStateConceptIsNull() { exception.expect(APIException.class); exception.expectMessage("ProgramWorkflowState concept, initial, terminal are required"); Program program = new Program(); program.setName("TEST PROGRAM"); program.setDescription("TEST PROGRAM DESCRIPTION"); program.setConcept(new Concept(1)); ProgramWorkflow workflow = new ProgramWorkflow(); workflow.setConcept(new Concept(2)); ProgramWorkflowState state1 = new ProgramWorkflowState(); state1.setInitial(true); state1.setTerminal(false); workflow.addState(state1); program.addWorkflow(workflow); pws.saveProgram(program); }
@Test public void saveProgram_shouldFailIfProgramWorkFlowStateInitialIsNull() { exception.expect(APIException.class); exception.expectMessage("ProgramWorkflowState concept, initial, terminal are required"); Program program = new Program(); program.setName("TEST PROGRAM"); program.setDescription("TEST PROGRAM DESCRIPTION"); program.setConcept(new Concept(1)); ProgramWorkflow workflow = new ProgramWorkflow(); workflow.setConcept(new Concept(2)); ProgramWorkflowState state1 = new ProgramWorkflowState(); state1.setConcept(new Concept(3)); state1.setTerminal(false); workflow.addState(state1); program.addWorkflow(workflow); pws.saveProgram(program); }