diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/jasper/CalendarCreator.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/jasper/CalendarCreator.java index 4236d0f..ab2b72c 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/jasper/CalendarCreator.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/jasper/CalendarCreator.java @@ -25,7 +25,7 @@ import net.sf.jasperreports.engine.JasperReport; public abstract class CalendarCreator { - private static final String HOLIDAY_CALENDAR = "Schulferien"; + static final String HOLIDAY_CALENDAR = "Schulferien"; public static JasperPrint createCalendar(Date date) throws JRException { return new MonthlyCalendarCreator(date).setValues(Collections.emptyMap()) @@ -98,7 +98,8 @@ public abstract class CalendarCreator { start = start.plusDays(1); } } - } else { + } + else { if (start.getYear() == year) { concatDayValue(values, ev, start); } @@ -112,7 +113,8 @@ public abstract class CalendarCreator { StringBuilder txt; if (values.get(start) != null) { txt = (StringBuilder) values.get(start); - } else { + } + else { txt = new StringBuilder(); values.put(start, txt); } diff --git a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/jasper/YearlyCalendarCreatorTest.java b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/jasper/YearlyCalendarCreatorTest.java new file mode 100644 index 0000000..14cd60b --- /dev/null +++ b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/jasper/YearlyCalendarCreatorTest.java @@ -0,0 +1,93 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.jasper; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.InputStream; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEventBuilder; +import net.sf.jasperreports.engine.JRDataSource; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.design.JRDesignField; + +class YearlyCalendarCreatorTest { + + private Map values; + + private YearlyCalendarCreator creator; + + @BeforeEach + void setUp() throws Exception { + values = new HashMap(); + } + + @Test + void testGetSource() throws JRException { + creator = new YearlyCalendarCreator(2019, values); + JRDataSource source = creator.getSource(); + Integer month = 1; + JRDesignField jrField = new JRDesignField(); + jrField.setName("MONTH_COUNTER"); + for (; month <= 12; month++) { + assertTrue(source.next()); + Object value = source.getFieldValue(jrField); + assertEquals(month, value); + } + } + + @Test + void testFillParameterMap() { + creator = new YearlyCalendarCreator(2019, values); + Map parameters = new HashMap(); + creator.fillParameterMap(parameters); + assertEquals(1, parameters.size()); + } + + @Test + void testJrxmlResource() { + creator = new YearlyCalendarCreator(2019, values); + InputStream jrxml = creator.jrxmlResource(); + assertNotNull(jrxml); + } + + @Test + void testFilterHoliday() { + List allevents = new ArrayList(); + allevents.add(new ClubEventBuilder().withAllDay(true).withCaption("Ferien1") + .withOrganizerDisplayName(YearlyCalendarCreator.HOLIDAY_CALENDAR) + .withStart(ZonedDateTime.of(2019, 2, 3, 0, 0, 0, 0, ZoneId.systemDefault())) + .withEnd(ZonedDateTime.of(2019, 2, 12, 0, 0, 0, 0, ZoneId.systemDefault())) + .build()); + allevents.add(new ClubEventBuilder().withAllDay(false).withCaption("caption") + .withOrganizerDisplayName("organizerDisplayName") + .withStart(ZonedDateTime.of(2019, 4, 3, 10, 0, 0, 0, ZoneId.systemDefault())) + .withEnd(ZonedDateTime.of(2019, 4, 3, 16, 30, 0, 0, ZoneId.systemDefault())) + .build()); + allevents.add(new ClubEventBuilder().withAllDay(true).withCaption("Ferien2") + .withOrganizerDisplayName(YearlyCalendarCreator.HOLIDAY_CALENDAR) + .withStart(ZonedDateTime.of(2019, 5, 3, 0, 0, 0, 0, ZoneId.systemDefault())) + .withEnd(ZonedDateTime.of(2019, 5, 12, 0, 0, 0, 0, ZoneId.systemDefault())) + .build()); + allevents.add(new ClubEventBuilder().withAllDay(false).withCaption("caption2") + .withOrganizerDisplayName("organizerDisplayName2") + .withStart(ZonedDateTime.of(2019, 7, 3, 10, 0, 0, 0, ZoneId.systemDefault())) + .withEnd(ZonedDateTime.of(2019, 7, 3, 17, 30, 0, 0, ZoneId.systemDefault())) + .build()); + List holidays = YearlyCalendarCreator.filterHolidays(allevents); + assertEquals(20, holidays.size()); // Jeder einzenle Tag enthalten + assertEquals(2, allevents.size()); // Urlaub-Events entfernt. + + } +}