/** * @see org.openmrs.api.ProgramWorkflowService#purgeProgram(org.openmrs.Program) */ @Override public void purgeProgram(Program program) throws APIException { Context.getProgramWorkflowService().purgeProgram(program, false); }
@Test public void purgeProgram_shouldFailGivenNonEmptyWorkFlowsAndTrueCascade() { exception.expect(APIException.class); exception.expectMessage("Cascade purging of Programs is not implemented yet"); Program program = new Program(1); ProgramWorkflow workflow = new ProgramWorkflow(1); program.addWorkflow(workflow); pws.purgeProgram(program, true); } }
@Override public void purge(Program program, RequestContext context) throws ResponseException { Context.getProgramWorkflowService().purgeProgram(program); }
@Test public void purgeProgram_shouldPurgeProgramWithPatientsEnrolled() { Program program = Context.getProgramWorkflowService().getProgram(2); // program has at least one patient enrolled List<PatientProgram> patientPrograms = Context.getProgramWorkflowService().getPatientPrograms(null, program, null, null, null, null, true); assertTrue(patientPrograms.size() > 0); Context.getProgramWorkflowService().purgeProgram(program); // should cascade to patient programs for (PatientProgram patientProgram : patientPrograms) { assertNull(Context.getProgramWorkflowService().getPatientProgram(patientProgram.getId())); } // make sure that the program was deleted properly assertNull(Context.getProgramWorkflowService().getProgram(2)); } @Test