package jfxtras.scene.control.agenda.icalendar.agenda;
import static org.junit.Assert.assertEquals;
import java.time.LocalDateTime;
import java.time.temporal.Temporal;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.Test;
import javafx.scene.control.ComboBox;
import javafx.scene.input.KeyCode;
import javafx.scene.input.MouseButton;
import jfxtras.icalendarfx.components.VEvent;
import jfxtras.scene.control.agenda.icalendar.ICalendarStaticComponents;
import jfxtras.scene.control.agenda.icalendar.editors.ChangeDialogOption;
import jfxtras.test.TestUtil;
public class DeleteVEventTest extends AgendaTestAbstract
{
@Test
public void canDeleteOne()
{
// Add VComponents, listener in ICalendarAgenda makes Appointments
TestUtil.runThenWaitForPaintPulse( () -> {
agenda.getVCalendar().addChild(ICalendarStaticComponents.getDaily1());
agenda.refresh();
});
moveTo("#hourLine11");
press(MouseButton.PRIMARY);
release(MouseButton.PRIMARY);
clickOn("#OneAppointmentSelectedDeleteButton");
ComboBox<ChangeDialogOption> comboBox = find("#changeDialogComboBox");
TestUtil.runThenWaitForPaintPulse( () -> {
comboBox.getSelectionModel().select(ChangeDialogOption.ONE);
});
clickOn("#changeDialogOkButton");
assertEquals(5, agenda.appointments().size());
List<Temporal> expectedStarts = Arrays.asList(
LocalDateTime.of(2015, 11, 9, 10, 0),
LocalDateTime.of(2015, 11, 10, 10, 0),
LocalDateTime.of(2015, 11, 12, 10, 0),
LocalDateTime.of(2015, 11, 13, 10, 0),
LocalDateTime.of(2015, 11, 14, 10, 0)
);
List<Temporal> starts = agenda.appointments().stream()
.map(a -> a.getStartTemporal())
.collect(Collectors.toList());
assertEquals(expectedStarts, starts);
assertEquals(1, agenda.getVCalendar().getVEvents().size());
VEvent expectedVEvent = ICalendarStaticComponents.getDaily1()
.withExceptionDates("20151111T100000")
.withSequence(1);
VEvent editedVEvent = agenda.getVCalendar().getVEvents().get(0);
assertEquals(expectedVEvent, editedVEvent);
}
@Test
public void canDeleteOneWithDeleteKey()
{
// Add VComponents, listener in ICalendarAgenda makes Appointments
TestUtil.runThenWaitForPaintPulse( () -> {
agenda.getVCalendar().addChild(ICalendarStaticComponents.getDaily1());
agenda.refresh();
});
moveTo("#hourLine11");
press(MouseButton.PRIMARY);
release(MouseButton.PRIMARY);
clickOn("Cancel");
press(KeyCode.DELETE);
release(KeyCode.DELETE);
assertEquals(5, agenda.appointments().size());
List<Temporal> expectedStarts = Arrays.asList(
LocalDateTime.of(2015, 11, 9, 10, 0),
LocalDateTime.of(2015, 11, 10, 10, 0),
LocalDateTime.of(2015, 11, 12, 10, 0),
LocalDateTime.of(2015, 11, 13, 10, 0),
LocalDateTime.of(2015, 11, 14, 10, 0)
);
List<Temporal> starts = agenda.appointments().stream()
.map(a -> a.getStartTemporal())
.collect(Collectors.toList());
assertEquals(expectedStarts, starts);
assertEquals(1, agenda.getVCalendar().getVEvents().size());
VEvent expectedVEvent = ICalendarStaticComponents.getDaily1()
.withExceptionDates("20151111T100000")
.withSequence(1);
VEvent editedVEvent = agenda.getVCalendar().getVEvents().get(0);
assertEquals(expectedVEvent, editedVEvent);
}
@Test
public void canDeleteAll()
{
// Add VComponents, listener in ICalendarAgenda makes Appointments
TestUtil.runThenWaitForPaintPulse( () -> {
agenda.getVCalendar().addChild(ICalendarStaticComponents.getDaily1());
agenda.refresh();
});
moveTo("#hourLine11");
press(MouseButton.PRIMARY);
release(MouseButton.PRIMARY);
clickOn("#OneAppointmentSelectedDeleteButton");
ComboBox<ChangeDialogOption> comboBox = find("#changeDialogComboBox");
TestUtil.runThenWaitForPaintPulse( () -> {
comboBox.getSelectionModel().select(ChangeDialogOption.ALL);
});
clickOn("#changeDialogOkButton");
assertEquals(0, agenda.appointments().size());
assertEquals(0, agenda.getVCalendar().getVEvents().size());
}
}