package org.peerbox.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import javafx.collections.ObservableList; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; import javafx.scene.image.Image; import javafx.stage.Stage; import org.junit.Rule; import org.junit.Test; import org.peerbox.helper.JavaFXThreadingRule; public class DialogUtilsTest { @Rule public JavaFXThreadingRule jfxRule = new JavaFXThreadingRule(); @Test public void testCreateAlert() { Alert dlg = DialogUtils.createAlert(AlertType.WARNING); assertNotNull(dlg); assertEquals(AlertType.WARNING, dlg.getAlertType()); assertTrue(alertHasIcons(dlg)); Alert dlg_info = DialogUtils.createAlert(AlertType.INFORMATION); assertNotNull(dlg_info); assertEquals(AlertType.INFORMATION, dlg_info.getAlertType()); assertTrue(alertHasIcons(dlg)); } @Test public void testDecorateDialogWithIcon() { Alert dlg = new Alert(AlertType.ERROR); assertFalse(alertHasIcons(dlg)); DialogUtils.decorateDialogWithIcon(dlg); assertTrue(alertHasIcons(dlg)); } private boolean alertHasIcons(Alert dlg) { ObservableList<Image> icons = alertIcons(dlg); return !icons.isEmpty(); } private ObservableList<Image> alertIcons(Alert dlg) { Stage stage = (Stage) dlg.getDialogPane().getScene().getWindow(); ObservableList<Image> icons = stage.getIcons(); return icons; } }