106 lines
3.1 KiB
Java
106 lines
3.1 KiB
Java
package jmri.jmrix.marklin;
|
|
|
|
import jmri.Turnout;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
* Tests for MarklinTurnout.
|
|
* @author Paul Bender Copyright (C) 2017
|
|
* @author Steve Young Copyright (C) 2024
|
|
*/
|
|
public class MarklinTurnoutTest extends jmri.implementation.AbstractTurnoutTestBase {
|
|
|
|
private MarklinSystemConnectionMemo memo;
|
|
private MarklinTrafficControlScaffold tc;
|
|
|
|
@Override
|
|
public int numListeners() {
|
|
return 0; // no background Marklin listeners at present
|
|
}
|
|
|
|
@Override
|
|
public void checkThrownMsgSent() {
|
|
Assertions.assertNotNull(tc);
|
|
MarklinMessage m = tc.getLastMessageSent();
|
|
Assertions.assertNotNull(m);
|
|
Assertions.assertEquals("00 16 47 11 06 00 00 30 00 00 01 00 00", m.toString());
|
|
}
|
|
|
|
@Override
|
|
public void checkClosedMsgSent() throws InterruptedException {
|
|
Assertions.assertNotNull(tc);
|
|
MarklinMessage m = tc.getLastMessageSent();
|
|
Assertions.assertNotNull(m);
|
|
Assertions.assertEquals("00 16 47 11 06 00 00 30 00 01 01 00 00", m.toString());
|
|
}
|
|
|
|
@Test
|
|
public void testMm2Reply() {
|
|
|
|
((MarklinTurnout)t).message(MarklinMessage.setLocoSpeedSteps(1, 28)); // nothing happens
|
|
|
|
t.setCommandedState(Turnout.CLOSED);
|
|
MarklinReply r = new MarklinReply();
|
|
r.setCommand(MarklinConstants.ACCCOMMANDSTART);
|
|
((MarklinTurnout)t).reply(r); // nothing happens, unknown address
|
|
|
|
r.setAddress( 1 + MarklinConstants.MM1ACCSTART - 1); // toNum + Constant -1
|
|
r.setElement(9, 0); // thrown
|
|
((MarklinTurnout)t).reply(r);
|
|
Assertions.assertEquals(Turnout.THROWN, t.getCommandedState());
|
|
|
|
r.setElement(9, 0x01); // closed
|
|
((MarklinTurnout)t).reply(r);
|
|
Assertions.assertEquals(Turnout.CLOSED, t.getCommandedState());
|
|
|
|
t.dispose();
|
|
}
|
|
|
|
@Test
|
|
public void testDccReply() {
|
|
|
|
t.setCommandedState(Turnout.CLOSED);
|
|
MarklinReply r = new MarklinReply();
|
|
r.setCommand(MarklinConstants.ACCCOMMANDSTART);
|
|
((MarklinTurnout)t).reply(r); // nothing happens, unknown address
|
|
|
|
r.setAddress( 1 + MarklinConstants.DCCACCSTART - 1); // toNum + Constant -1
|
|
r.setElement(9, 0); // thrown
|
|
((MarklinTurnout)t).reply(r);
|
|
Assertions.assertEquals(Turnout.THROWN, t.getCommandedState());
|
|
|
|
r.setElement(9, 0x01); // closed
|
|
((MarklinTurnout)t).reply(r);
|
|
Assertions.assertEquals(Turnout.CLOSED, t.getCommandedState());
|
|
|
|
t.dispose();
|
|
}
|
|
|
|
@BeforeEach
|
|
@Override
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
tc = new MarklinTrafficControlScaffold();
|
|
memo = new MarklinSystemConnectionMemo(tc);
|
|
t = new MarklinTurnout(1,"MC", tc);
|
|
}
|
|
|
|
@AfterEach
|
|
@Override
|
|
public void tearDown() {
|
|
Assertions.assertNotNull(memo);
|
|
Assertions.assertNotNull(tc);
|
|
memo.dispose();
|
|
tc.dispose();
|
|
tc = null;
|
|
memo = null;
|
|
t = null;
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
// private static final Logger log = LoggerFactory.getLogger(MarklinTurnoutTest.class);
|
|
|
|
}
|