package jfxtras.icalendarfx.component; import static org.junit.Assert.assertEquals; import java.time.LocalDateTime; import java.time.temporal.Temporal; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import org.junit.Test; import jfxtras.icalendarfx.components.VJournal; import jfxtras.icalendarfx.properties.component.recurrence.rrule.RecurrenceRuleValue; public class VJournalTest { @Test public void canBuildVJournal() { VJournal builtComponent = new VJournal() .withDescriptions("DESCRIPTION:description 1") .withDescriptions("description 2", "DESCRIPTION:description 3"); String componentName = builtComponent.name(); String content = "BEGIN:" + componentName + System.lineSeparator() + "DESCRIPTION:description 1" + System.lineSeparator() + "DESCRIPTION:description 2" + System.lineSeparator() + "DESCRIPTION:description 3" + System.lineSeparator() + "END:" + componentName; VJournal madeComponent = VJournal.parse(content); assertEquals(madeComponent, builtComponent); assertEquals(content, builtComponent.toString()); } @Test public void canStreamWithRange() { VJournal e = new VJournal() .withDateTimeStart(LocalDateTime.of(2015, 11, 9, 20, 0)) .withRecurrenceRule(new RecurrenceRuleValue() .withFrequency("DAILY") .withInterval(3)); List<LocalDateTime> expectedDates = new ArrayList<LocalDateTime>(Arrays.asList( LocalDateTime.of(2015, 11, 15, 20, 0) , LocalDateTime.of(2015, 11, 18, 20, 0) , LocalDateTime.of(2015, 11, 21, 20, 0) )); List<Temporal> madeDates = e.streamRecurrences(LocalDateTime.of(2015, 11, 12, 22, 0), LocalDateTime.of(2015, 11, 24, 20, 0)) .collect(Collectors.toList()); assertEquals(expectedDates, madeDates); } }