Files
2026-06-17 14:00:51 +02:00

78 lines
2.3 KiB
Java

package jmri.jmrix.qsi.qsimon;
import jmri.ProgrammingMode;
import jmri.jmrix.qsi.QsiMessage;
import jmri.jmrix.qsi.QsiReply;
import jmri.jmrix.qsi.QsiTrafficControlScaffold;
import jmri.util.JUnitUtil;
import jmri.util.JmriJFrameTestBase;
import org.junit.jupiter.api.*;
import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
/**
* JUnit tests for the QsiProgrammer class
*
* @author Bob Jacobsen
*/
@DisabledIfSystemProperty(named = "java.awt.headless", matches = "true")
public class QsiMonFrameTest extends JmriJFrameTestBase {
@Test
public void testCreate() {
Assertions.assertNotNull(frame, "exists");
}
@Test
public void testMsg() {
QsiMessage m = QsiMessage.getReadCV(25, ProgrammingMode.PAGEMODE);
((QsiMonFrame)frame).message(m);
JUnitUtil.waitFor(() -> (!((QsiMonFrame)frame).getTextArea().getText().isEmpty()), "Text Area populated");
Assertions.assertTrue( ((QsiMonFrame)frame).getTextArea().getText().contains("M: OP_REQ_READ_CV with CV=25"));
}
@Test
public void testReply() {
QsiReply m = new QsiReply();
m.setOpCode('C');
m.setElement(1, 'o');
m.setElement(2, ':');
((QsiMonFrame)frame).reply(m);
JUnitUtil.waitFor(() -> (!((QsiMonFrame)frame).getTextArea().getText().isEmpty()), "Text Area populated");
Assertions.assertTrue( ((QsiMonFrame)frame).getTextArea().getText().contains("U: Untranslated reply: <67><111><58>"));
}
private jmri.jmrix.qsi.QsiSystemConnectionMemo memo = null;
private QsiTrafficControlScaffold tc = null;
@BeforeEach
@Override
public void setUp() {
JUnitUtil.setUp();
tc = new QsiTrafficControlScaffold();
memo = new jmri.jmrix.qsi.QsiSystemConnectionMemo(tc);
frame = new QsiMonFrame(memo);
}
@AfterEach
@Override
public void tearDown() {
if(frame!=null) {
JUnitUtil.dispose(frame); // close frame before memo
}
frame = null;
Assertions.assertNotNull(memo);
Assertions.assertNotNull(tc);
memo.dispose();
memo = null;
tc = null;
super.tearDown();
}
// private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(QsiMonFrameTest.class);
}