112 lines
3.3 KiB
Java
112 lines
3.3 KiB
Java
package jmri.jmrix.lenz.hornbyelite;
|
|
|
|
import jmri.Turnout;
|
|
import jmri.jmrix.lenz.XNetInterfaceScaffold;
|
|
import jmri.jmrix.lenz.XNetReply;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
|
/**
|
|
* Tests for the jmri.jmrix.lenz.hornbyelite.EliteXNetTurnoutManager class.
|
|
*
|
|
* @author Bob Jacobsen Copyright 2004
|
|
*/
|
|
public class EliteXNetTurnoutManagerTest extends jmri.managers.AbstractTurnoutMgrTestBase {
|
|
|
|
@Override
|
|
public String getSystemName(int i) {
|
|
return "XT" + i;
|
|
}
|
|
|
|
XNetInterfaceScaffold lnis;
|
|
|
|
@Test
|
|
@Override
|
|
public void testMisses() {
|
|
// try to get nonexistant turnouts
|
|
assertThat(l.getByUserName("foo")).isNull();
|
|
assertThat(l.getBySystemName("bar")).isNull();
|
|
}
|
|
|
|
@Test
|
|
public void testEliteXNetMessages() {
|
|
// send messages for 20, 21
|
|
// notify that somebody else changed it...
|
|
XNetReply m1 = new XNetReply();
|
|
m1.setElement(0, 0x42);
|
|
m1.setElement(1, 0x05);
|
|
m1.setElement(2, 0x02);
|
|
m1.setElement(3, 0x45);
|
|
lnis.sendTestMessage(m1);
|
|
|
|
// notify that somebody else changed it...
|
|
XNetReply m2 = new XNetReply();
|
|
m2.setElement(0, 0x42);
|
|
m2.setElement(1, 0x05);
|
|
m2.setElement(2, 0x04);
|
|
m2.setElement(3, 0x43);
|
|
lnis.sendTestMessage(m2);
|
|
|
|
// try to get turnouts to see if they exist
|
|
EliteXNetTurnout xt20 = (EliteXNetTurnout) l.getBySystemName("XT20");
|
|
EliteXNetTurnout xt21 = (EliteXNetTurnout) l.getBySystemName("XT21");
|
|
assertThat(xt20).isNotNull();
|
|
assertThat(xt21).isNotNull();
|
|
|
|
assertThat(l.getNamedBeanSet()).contains(xt20,xt21);
|
|
}
|
|
|
|
@Test
|
|
public void testAsAbstractFactory() {
|
|
// ask for a Turnout, and check type
|
|
Turnout newTurnout = l.newTurnout("XT21", "my name");
|
|
log.debug("received turnout value {}", newTurnout);
|
|
|
|
assertThat(newTurnout).isNotNull();
|
|
|
|
// make sure loaded into tables
|
|
log.debug("by system name: {}", l.getBySystemName("XT21"));
|
|
log.debug("by user name: {}", l.getByUserName("my name"));
|
|
|
|
assertThat(l.getBySystemName("XT21")).isEqualTo(newTurnout);
|
|
assertThat(l.getByUserName("my name")).isEqualTo(newTurnout);
|
|
}
|
|
|
|
@Test
|
|
@Override
|
|
public void testThrownText(){
|
|
assertThat(l.getThrownText()).isEqualTo(Bundle.getMessage("TurnoutStateThrown"));
|
|
}
|
|
|
|
@Test
|
|
@Override
|
|
public void testClosedText(){
|
|
assertThat(l.getClosedText()).isEqualTo(Bundle.getMessage("TurnoutStateClosed"));
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
lnis.getSystemConnectionMemo().getXNetTrafficController().terminateThreads();
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
@Override
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
// prepare an interface, register
|
|
lnis = new XNetInterfaceScaffold(new HornbyEliteCommandStation());
|
|
// create and register the manager object
|
|
l = new EliteXNetTurnoutManager(lnis.getSystemConnectionMemo());
|
|
jmri.InstanceManager.setTurnoutManager(l);
|
|
}
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(EliteXNetTurnoutManagerTest.class);
|
|
|
|
}
|