@Override public DefaultOverdueState calculateOverdueState(final BillingState billingState, final LocalDate now) throws OverdueApiException { for (final DefaultOverdueState overdueState : getStates()) { if (overdueState.getCondition() != null && overdueState.getCondition().evaluate(billingState, now)) { return overdueState; } } return getClearState(); }
@Override public OverdueState findState(final String stateName) throws OverdueApiException { if (stateName.equals(DefaultBlockingState.CLEAR_STATE_NAME)) { return clearState; } for (final DefaultOverdueState state : getStates()) { if (state.getName().equals(stateName)) { return state; } } throw new OverdueApiException(ErrorCode.CAT_NO_SUCH_OVEDUE_STATE, stateName); }
@SuppressWarnings("unchecked") public MockOverdueRules() { final OverdueStatesAccount bundleODS = new OverdueStatesAccount(); bundleODS.setAccountOverdueStates(new DefaultOverdueState[]{new DefaultOverdueState().setName(CLEAR_STATE)}); setOverdueStates(bundleODS); } }
@Override public ValidationErrors validate(final OverdueConfig root, final ValidationErrors errors) { for (final DefaultOverdueState state : getStates()) { state.validate(root, errors); } try { getClearState(); } catch (OverdueApiException e) { if (e.getCode() == ErrorCode.CAT_MISSING_CLEAR_STATE.getCode()) { errors.add("Overdue state set is missing a clear state.", root.getURI(), this.getClass(), ""); } } return errors; }
Assert.assertEquals(c.getStateSet().size(), 2); Assert.assertNull(c.getStateSet().getStates()[0].getEnterStateEmailNotification()); final EmailNotification secondNotification = c.getStateSet().getStates()[1].getEnterStateEmailNotification(); Assert.assertEquals(secondNotification.getSubject(), "ToTo"); Assert.assertEquals(secondNotification.getTemplateName(), "Titi");