private void ensureDrugOrderAutoExpirationDateIsSet(Order order) { if (isDrugOrder(order)) { ((DrugOrder) order).setAutoExpireDateBasedOnDuration(); } }
/** * @see DrugOrder#setAutoExpireDateBasedOnDuration() */ @Test public void setAutoExpireDateBasedOnDuration_shouldDelegateCalculationToDosingInstructions() { DrugOrder drugOrder = spy(new DrugOrder()); drugOrder.setAutoExpireDate(null); DosingInstructions dosingInstructions = mock(DosingInstructions.class); when(drugOrder.getDosingInstructionsInstance()).thenReturn(dosingInstructions); Date expectedAutoExpireDate = new Date(); when(dosingInstructions.getAutoExpireDate(drugOrder)).thenReturn(expectedAutoExpireDate); drugOrder.setAutoExpireDateBasedOnDuration(); assertEquals(expectedAutoExpireDate, drugOrder.getAutoExpireDate()); }
/** * @see DrugOrder#setAutoExpireDateBasedOnDuration() */ @Test public void setAutoExpireDateBasedOnDuration_shouldNotCalculateIfAutoExpireDateAlreadySet() { DrugOrder drugOrder = new DrugOrder(); Date expectedAutoExpireDate = new Date(); drugOrder.setAutoExpireDate(expectedAutoExpireDate); drugOrder.setAutoExpireDateBasedOnDuration(); assertEquals(expectedAutoExpireDate, drugOrder.getAutoExpireDate()); }
/** * @see DrugOrder#setAutoExpireDateBasedOnDuration() */ @Test public void setAutoExpireDateBasedOnDuration_shouldNotCalculateForDiscontinueAction() { DrugOrder drugOrder = new DrugOrder(); drugOrder.setAction(Order.Action.DISCONTINUE); Date expectedAutoExpireDate = new Date(); drugOrder.setAutoExpireDate(expectedAutoExpireDate); drugOrder.setAutoExpireDateBasedOnDuration(); assertEquals(expectedAutoExpireDate, drugOrder.getAutoExpireDate()); }