/** Testet das Auswählen, Anhören und Löschen eines Klingeltons. */ @Test public final void testSoundSelection() { controller.setDialogStage(mockedDialogStage); // Alarm vorgeben final Alarm alarm = new Alarm(DateTimeUtil.getLocalDateTimeForString("01.01.1970 00:00:00"), "Bla"); controller.setAlarm(alarm); FXTestUtils.awaitEvents(); // Sound setzen controller.setRingtone("Sound"); FXTestUtils.awaitEvents(); assertFalse(alarmNoSoundButton.isDisabled()); assertFalse(alarmPlaySoundButton.isDisabled()); // Sound-Abspielen-Schaltfläche betätigen final AudioPlayer player = mock(AudioPlayer.class); controller.getGuiHelper().setAudioPlayer(player); click(alarmPlaySoundButton); waitForThreads(); verify(player) .playInThread( isA(ThreadHelper.class), eq("Sound"), isA(Thread.UncaughtExceptionHandler.class)); // Sound-Löschen-Schaltfläche betätigen click(alarmNoSoundButton); waitForThreads(); // sicherstellen, dass nicht Dialog geschlossen worden wäre verify(mockedDialogStage, never()).close(); assertEquals("kein Klingelton gewählt", alarmSelectSoundButton.getText()); }
/** Testet das Verwerfen der Änderungen. */ @Test public final void testCancel() { controller.setDialogStage(mockedDialogStage); // Alarm vorgeben final LocalDateTime now = LocalDateTime.now(); final Alarm alarm = new Alarm(now, "bla"); controller.setAlarm(alarm); FXTestUtils.awaitEvents(); // deaktivieren click(alarmEnabledCheckbox); waitForThreads(); Platform.runLater( new Runnable() { public void run() { // Datum setzen alarmDatePicker.setValue(DateTimeUtil.getLocalDateForString("24.12.2014")); // Zeit setzen alarmTimePicker.setValue(DateTimeUtil.getLocalTimeForString("12:00:00")); // Beschreibung setzen alarmDescriptionTextField.setText("Test"); } }); FXTestUtils.awaitEvents(); // Sound setzen controller.setRingtone("Sound"); FXTestUtils.awaitEvents(); // Abbrechen-Schaltfläche betätigen final Button alarmCancelButton = (Button) scene.lookup("#alarmCancelButton"); click(alarmCancelButton); waitForThreads(); // sicherstellen, dass Dialog geschlossen worden wäre verify(mockedDialogStage, timeout(WAIT_FOR_EVENT)).close(); // sicherstellen, dass Alarm ursprüngliche Werte hat assertTrue(alarm.isEnabled()); assertEquals(now, alarm.getDateTime()); assertEquals("bla", alarm.getDescription()); assertEquals(null, alarm.getSound()); }
/** Testet das Speichern der Änderungen. */ @Test public final void testApplyChanges() { controller.setDialogStage(mockedDialogStage); // Alarm vorgeben final Alarm alarm = new Alarm(DateTimeUtil.getLocalDateTimeForString("01.01.1970 00:00:00"), "Bla"); controller.setAlarm(alarm); FXTestUtils.awaitEvents(); // deaktivieren click(alarmEnabledCheckbox); waitForThreads(); Platform.runLater( new Runnable() { public void run() { // Datum setzen alarmDatePicker.setValue(DateTimeUtil.getLocalDateForString("24.12.2014")); // Zeit setzen alarmTimePicker.setValue(DateTimeUtil.getLocalTimeForString("12:00:00")); // Beschreibung setzen alarmDescriptionTextField.setText("Test"); } }); FXTestUtils.awaitEvents(); // Sound setzen controller.setRingtone("Sound"); FXTestUtils.awaitEvents(); // Speichern-Schaltfläche betätigen click(alarmSaveButton); waitForThreads(); // sicherstellen, dass Dialog geschlossen worden wäre verify(mockedDialogStage, timeout(WAIT_FOR_EVENT)).close(); // sicherstellen, dass Alarm neue Werte hat assertFalse(alarm.isEnabled()); assertEquals( DateTimeUtil.getLocalDateTimeForString("24.12.2014 12:00:00"), alarm.getDateTime()); assertEquals("Test", alarm.getDescription()); assertEquals("Sound", alarm.getSound()); }