new Test for YearlyCalendarCreator

master
Markus Kreth 7 years ago
parent 80d9fc8263
commit 1c5fd0b37f
  1. 8
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/jasper/CalendarCreator.java
  2. 93
      src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/jasper/YearlyCalendarCreatorTest.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<CharSequence>(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);
}

@ -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<LocalDate, CharSequence> values;
private YearlyCalendarCreator creator;
@BeforeEach
void setUp() throws Exception {
values = new HashMap<LocalDate, CharSequence>();
}
@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<String, Object> parameters = new HashMap<String, Object>();
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<ClubEvent> allevents = new ArrayList<ClubEvent>();
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<LocalDate> holidays = YearlyCalendarCreator.filterHolidays(allevents);
assertEquals(20, holidays.size()); // Jeder einzenle Tag enthalten
assertEquals(2, allevents.size()); // Urlaub-Events entfernt.
}
}
Loading…
Cancel
Save