package jfxtras.icalendarfx.component; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.time.Duration; import java.time.Period; import org.junit.Test; import jfxtras.icalendarfx.components.VAlarm; import jfxtras.icalendarfx.properties.component.alarm.Action; import jfxtras.icalendarfx.properties.component.alarm.RepeatCount; import jfxtras.icalendarfx.properties.component.alarm.Action.ActionType; import jfxtras.icalendarfx.properties.component.relationship.Attendee; public class VAlarmTest { @Test public void canBuildVAlarm() { VAlarm builtComponent = new VAlarm() .withAction(new Action(ActionType.DISPLAY)) .withAttendees(Attendee.parse("mailto:jsmith@example.com")) .withDuration(Period.ofDays(-2)) .withTrigger(Duration.ofMinutes(-15)) .withRepeatCount(new RepeatCount(2)); String componentName = builtComponent.name(); String content = "BEGIN:" + componentName + System.lineSeparator() + "ACTION:DISPLAY" + System.lineSeparator() + "ATTENDEE:mailto:jsmith@example.com" + System.lineSeparator() + "DURATION:-P2D" + System.lineSeparator() + "TRIGGER:-PT15M" + System.lineSeparator() + "REPEAT:2" + System.lineSeparator() + "END:" + componentName; VAlarm madeComponent = VAlarm.parse(content); assertEquals(madeComponent, builtComponent); assertEquals(content, builtComponent.toString()); assertTrue(builtComponent.isValid()); } @Test public void canTestVAlarmIsValid() { VAlarm builtComponent = new VAlarm(); assertFalse(builtComponent.isValid()); builtComponent.setAction(Action.parse("DISPLAY")); builtComponent.setTrigger(Duration.ofMinutes(-15)); assertTrue(builtComponent.isValid()); builtComponent.setDuration(Period.ofDays(-2)); assertFalse(builtComponent.isValid()); builtComponent.setRepeatCount(new RepeatCount(2)); assertTrue(builtComponent.isValid()); } }