132 lines
5.1 KiB
Java
132 lines
5.1 KiB
Java
package jmri.jmrit.etcs.dmi.swing;
|
|
|
|
import java.beans.PropertyChangeEvent;
|
|
|
|
import jmri.jmrit.etcs.TrackCondition;
|
|
import jmri.util.JUnitUtil;
|
|
import jmri.util.swing.JemmyUtil;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
|
|
import org.netbeans.jemmy.operators.*;
|
|
|
|
/**
|
|
* Tests for DmiPanelB.
|
|
* @author Steve Young Copyright (C) 2024
|
|
*/
|
|
@jmri.util.junit.annotations.DisabledIfHeadless
|
|
public class DmiPanelBTest {
|
|
|
|
@Test
|
|
public void testAnnouncementsUnderDial() {
|
|
|
|
DmiFrame df = new DmiFrame("testAnnouncementsUnderDial");
|
|
DmiPanel p = df.getDmiPanel();
|
|
Assertions.assertNotNull(p);
|
|
df.setVisible(true);
|
|
JFrameOperator jfo = new JFrameOperator(df.getTitle());
|
|
|
|
p.addAnnouncement(TrackCondition.airConClose(0, true));
|
|
p.addAnnouncement(TrackCondition.levelCrossing(0));
|
|
p.addAnnouncement(TrackCondition.soundHorn(0));
|
|
|
|
verifyAck(jfo, p, TrackCondition.airConClose(0, true));
|
|
verifyAck(jfo, p, TrackCondition.soundHorn(0));
|
|
|
|
|
|
p.addAnnouncement(TrackCondition.pantographIsLowered()); // no ack reqd
|
|
p.addAnnouncement(TrackCondition.neutralSection(0, true));
|
|
p.addAnnouncement(TrackCondition.tractionChange25000(0, true));
|
|
p.removeAnnouncement(TrackCondition.airConClose(0, true));
|
|
p.removeAnnouncement(TrackCondition.soundHorn(0));
|
|
p.removeAnnouncement(TrackCondition.levelCrossing(0));
|
|
|
|
verifyAck(jfo, p, TrackCondition.neutralSection(0, true));
|
|
verifyAck(jfo, p, TrackCondition.tractionChange25000(0, true));
|
|
|
|
|
|
p.addAnnouncement(TrackCondition.tractionChange0(0, true));
|
|
p.addAnnouncement(TrackCondition.radioHole(0)); // no ack reqd
|
|
p.addAnnouncement(TrackCondition.airConOpen(0, true));
|
|
p.removeAnnouncement(TrackCondition.pantographIsLowered());
|
|
p.removeAnnouncement(TrackCondition.neutralSection(0, true));
|
|
p.removeAnnouncement(TrackCondition.tractionChange25000(0, true));
|
|
|
|
verifyAck(jfo, p, TrackCondition.tractionChange0(0, true));
|
|
verifyAck(jfo, p, TrackCondition.airConOpen(0, true));
|
|
|
|
|
|
p.addAnnouncement(TrackCondition.inhibitEddyCurrentBrake(0, true));
|
|
p.addAnnouncement(TrackCondition.inhibitMagShoeBrake(0, true));
|
|
p.addAnnouncement(TrackCondition.inhibitRegenerativeBrake(0, true));
|
|
p.removeAnnouncement(TrackCondition.tractionChange0(0, true));
|
|
p.removeAnnouncement(TrackCondition.radioHole(0));
|
|
p.removeAnnouncement(TrackCondition.airConOpen(0, true));
|
|
|
|
verifyAck(jfo, p, TrackCondition.inhibitEddyCurrentBrake(0, true));
|
|
verifyAck(jfo, p, TrackCondition.inhibitMagShoeBrake(0, true));
|
|
verifyAck(jfo, p, TrackCondition.inhibitRegenerativeBrake(0, true));
|
|
|
|
|
|
p.removeAnnouncement(TrackCondition.inhibitEddyCurrentBrake(0, true));
|
|
p.removeAnnouncement(TrackCondition.inhibitMagShoeBrake(0, true));
|
|
p.removeAnnouncement(TrackCondition.inhibitRegenerativeBrake(0, true));
|
|
p.addAnnouncement(TrackCondition.neutralSectionEnd(0, true));
|
|
p.addAnnouncement(TrackCondition.nonStoppingArea(0, true));
|
|
p.addAnnouncement(TrackCondition.pantographLower(0, true));
|
|
|
|
verifyAck(jfo, p, TrackCondition.neutralSectionEnd(0, true));
|
|
verifyAck(jfo, p, TrackCondition.nonStoppingArea(0, true));
|
|
verifyAck(jfo, p, TrackCondition.pantographLower(0, true));
|
|
|
|
|
|
p.removeAnnouncement(TrackCondition.neutralSectionEnd(0, true));
|
|
p.addAnnouncement(TrackCondition.tractionChange1500(0, true));
|
|
p.removeAnnouncement(TrackCondition.pantographLower(0, true));
|
|
p.addAnnouncement(TrackCondition.tractionChange750(0, true));
|
|
p.addAnnouncement(TrackCondition.tractionChange3000(0, true));
|
|
p.removeAnnouncement(TrackCondition.nonStoppingArea(0, true));
|
|
|
|
verifyAck(jfo, p, TrackCondition.tractionChange1500(0, true));
|
|
verifyAck(jfo, p, TrackCondition.tractionChange750(0, true));
|
|
verifyAck(jfo, p, TrackCondition.tractionChange3000(0, true));
|
|
|
|
|
|
p.addAnnouncement(TrackCondition.tractionChange15000(0, true));
|
|
p.removeAnnouncement(TrackCondition.tractionChange1500(0, true));
|
|
p.removeAnnouncement(TrackCondition.tractionChange750(0, true));
|
|
p.removeAnnouncement(TrackCondition.tractionChange3000(0, true));
|
|
|
|
verifyAck(jfo, p, TrackCondition.tractionChange15000(0, true));
|
|
|
|
JUnitUtil.dispose(jfo.getWindow());
|
|
jfo.waitClosed();
|
|
}
|
|
|
|
private boolean triggered = false;
|
|
|
|
private void verifyAck(JFrameOperator jfo, DmiPanel p, TrackCondition tc) {
|
|
triggered = false;
|
|
p.addPropertyChangeListener(tc.getAckString(), (PropertyChangeEvent evt) -> {
|
|
triggered = true;
|
|
Assertions.assertEquals(tc.getAckString(), evt.getPropertyName());
|
|
});
|
|
|
|
JButtonOperator jbo = JemmyUtil.getButtonOperatorByActionComnmand(jfo,tc.getAckString());
|
|
jbo.doClick();
|
|
// JUnitUtil.waitFor(2000);
|
|
JUnitUtil.waitFor(() -> triggered, tc.getDescription() + " button triggered");
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
}
|