Files
JIMRI/java/test/jmri/jmrix/can/cbus/swing/CbusSendEventPaneTest.java
T
2026-06-17 14:00:51 +02:00

100 lines
3.1 KiB
Java

package jmri.jmrix.can.cbus.swing;
import javax.swing.JFrame;
import jmri.jmrix.can.CanSystemConnectionMemo;
import jmri.jmrix.can.TrafficControllerScaffold;
import jmri.jmrix.can.cbus.swing.console.CbusConsolePane;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
import org.netbeans.jemmy.operators.JButtonOperator;
import org.netbeans.jemmy.operators.JFrameOperator;
import org.netbeans.jemmy.operators.JRadioButtonOperator;
import org.netbeans.jemmy.operators.JTextFieldOperator;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
/**
* Test simple functioning of CbusSendEventPane
*
* @author Paul Bender Copyright (C) 2016
* @author Steve Young Copyright (C) 2020
*/
@jmri.util.junit.annotations.DisabledIfHeadless
public class CbusSendEventPaneTest {
@Test
public void testCbusSendEventPaneCtor() {
CbusSendEventPane t = new CbusSendEventPane(mainConsolePane);
assertNotNull(t);
}
@Test
public void testSendEvents() {
CbusSendEventPane t = new CbusSendEventPane(mainConsolePane);
JFrame f = new JFrame();
f.add(t);
f.setTitle("Test CBUS Send Event");
jmri.util.ThreadingUtil.runOnGUI( () -> {
f.pack();
f.setVisible(true);
});
JFrameOperator jfo = new JFrameOperator( "Test CBUS Send Event" );
new JTextFieldOperator(jfo,1).setText("1");
new JRadioButtonOperator(jfo,Bundle.getMessage("InitialStateOff")).setSelected(true);
new JButtonOperator(jfo,Bundle.getMessage("ButtonSend")).doClick();
assertNotNull(tc);
assertEquals( 1, tc.outbound.size());
assertEquals("[5f8] 99 00 00 00 01",tc.outbound.get(0).toString());
new JRadioButtonOperator(jfo,Bundle.getMessage("InitialStateOn")).setSelected(true);
new JButtonOperator(jfo,Bundle.getMessage("ButtonSend")).doClick();
assertEquals( 2, tc.outbound.size());
assertEquals("[5f8] 98 00 00 00 01",tc.outbound.get(1).toString());
new JRadioButtonOperator(jfo,Bundle.getMessage("CbusEventRequest")).setSelected(true);
new JButtonOperator(jfo,Bundle.getMessage("ButtonSend")).doClick();
assertEquals( 3, tc.outbound.size());
assertEquals("[5f8] 9A 00 00 00 01",tc.outbound.get(2).toString());
JUnitUtil.dispose(jfo.getWindow());
jfo.waitClosed();
}
private CanSystemConnectionMemo memo = null;
private TrafficControllerScaffold tc = null;
private CbusConsolePane mainConsolePane = null;
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
memo = new CanSystemConnectionMemo();
tc = new TrafficControllerScaffold();
memo.setTrafficController(tc);
mainConsolePane = new CbusConsolePane();
mainConsolePane.initComponents(memo,false);
}
@AfterEach
public void tearDown() {
assertNotNull(mainConsolePane);
mainConsolePane.dispose();
assertNotNull(tc);
tc.terminateThreads();
assertNotNull(memo);
memo.dispose();
tc = null;
memo = null;
JUnitUtil.tearDown();
}
}