### Question:
AbwesenheitCalcRule extends AbstractCalcRule { @Override protected void executeRule(@Nonnull Betreuung betreuung, @Nonnull VerfuegungZeitabschnitt verfuegungZeitabschnitt) { if (betreuung.getBetreuungsangebotTyp().isAngebotJugendamtKleinkind() && verfuegungZeitabschnitt.isLongAbwesenheit()) { verfuegungZeitabschnitt.setBezahltVollkosten(true); verfuegungZeitabschnitt.addBemerkung(RuleKey.ABWESENHEIT, MsgKey.ABWESENHEIT_MSG); } } AbwesenheitCalcRule(@Nonnull DateRange validityPeriod);   }### Answer:
@Test public void testSchulamtBetreuungWithAbwesenheit() { final AbwesenheitCalcRule rule = new AbwesenheitCalcRule(PERIODE); final VerfuegungZeitabschnitt zeitAbschnitt = createZeitabschnitt(true); final Betreuung betreuung = TestDataUtil.createDefaultBetreuung(); betreuung.getInstitutionStammdaten().setBetreuungsangebotTyp(BetreuungsangebotTyp.TAGESSCHULE); rule.executeRule(betreuung, zeitAbschnitt); Assert.assertFalse(zeitAbschnitt.isBezahltVollkosten()); Assert.assertEquals("", zeitAbschnitt.getBemerkungen()); }
@Test public void testJABetreuungWithAbwesenheit() { final AbwesenheitCalcRule rule = new AbwesenheitCalcRule(PERIODE); final VerfuegungZeitabschnitt zeitAbschnitt = createZeitabschnitt(true); final Betreuung betreuung = TestDataUtil.createDefaultBetreuung(); betreuung.getInstitutionStammdaten().setBetreuungsangebotTyp(BetreuungsangebotTyp.KITA); rule.executeRule(betreuung, zeitAbschnitt); Assert.assertTrue(zeitAbschnitt.isBezahltVollkosten()); Assert.assertEquals("ABWESENHEIT: Ab dem 31. Tag einer Abwesenheit (Krankheit oder Unfall " + "des Kinds und bei Mutterschaft ausgeschlossen) entfällt der Gutschein.", zeitAbschnitt.getBemerkungen()); }
@Test public void testJABetreuungWithoutAbwesenheit() { final AbwesenheitCalcRule rule = new AbwesenheitCalcRule(PERIODE); final VerfuegungZeitabschnitt zeitAbschnitt = createZeitabschnitt(false); final Betreuung betreuung = TestDataUtil.createDefaultBetreuung(); betreuung.getInstitutionStammdaten().setBetreuungsangebotTyp(BetreuungsangebotTyp.KITA); rule.executeRule(betreuung, zeitAbschnitt); Assert.assertFalse(zeitAbschnitt.isBezahltVollkosten()); Assert.assertEquals("", zeitAbschnitt.getBemerkungen()); }