131 lines
4.0 KiB
Java
131 lines
4.0 KiB
Java
package jmri.jmrit.withrottle;
|
|
|
|
import jmri.*;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
/**
|
|
* Test simple functioning of TurnoutController
|
|
*
|
|
* @author Paul Bender Copyright (C) 2016
|
|
* @author Steve Young Copyright (C) 2024
|
|
*/
|
|
public class TurnoutControllerTest {
|
|
|
|
@Test
|
|
public void testTurnoutControllerCtor() {
|
|
TurnoutController t = new TurnoutController();
|
|
assertNotNull( t, "exists" );
|
|
assertTrue(t.verifyCreation());
|
|
}
|
|
|
|
@Test
|
|
public void testSendTitles(){
|
|
TurnoutController t = new TurnoutController();
|
|
ControllerInterfaceScaffold scaf = new ControllerInterfaceScaffold();
|
|
t.addControllerListener(scaf);
|
|
t.sendList();
|
|
|
|
t.sendTitles();
|
|
|
|
String last = scaf.getLastPacket();
|
|
assertNotNull(last);
|
|
assertEquals(
|
|
"PTT]\\[Turnouts}|{Turnout]\\[Closed}|{2]\\[Thrown}|{4]\\[Unknown}|{1]\\[Inconsistent}|{8",
|
|
last);
|
|
t.deregister();
|
|
}
|
|
|
|
@Test
|
|
public void testSendList(){
|
|
|
|
InstanceManager.getDefault(TurnoutManager.class).provideTurnout("1").setUserName("MyName1");
|
|
InstanceManager.getDefault(TurnoutManager.class).provideTurnout("2").setUserName("MyName2");
|
|
|
|
TurnoutController t = new TurnoutController();
|
|
ControllerInterfaceScaffold scaf = new ControllerInterfaceScaffold();
|
|
t.addControllerListener(scaf);
|
|
t.sendList();
|
|
|
|
String last = scaf.getLastPacket();
|
|
assertNotNull(last);
|
|
assertEquals("PTL]\\[IT1}|{MyName1}|{1]\\[IT2}|{MyName2}|{1", last);
|
|
t.deregister();
|
|
}
|
|
|
|
@Test
|
|
public void testTurnoutStateSent(){
|
|
|
|
InstanceManager.getDefault(TurnoutManager.class).provideTurnout("1").setUserName("MyName1");
|
|
InstanceManager.getDefault(TurnoutManager.class).provideTurnout("2").setUserName("MyName2");
|
|
Turnout turnout = InstanceManager.getDefault(TurnoutManager.class).provideTurnout("1");
|
|
|
|
TurnoutController t = new TurnoutController();
|
|
ControllerInterfaceScaffold scaf = new ControllerInterfaceScaffold();
|
|
t.addControllerListener(scaf);
|
|
t.sendList();
|
|
|
|
turnout.setCommandedState(Turnout.CLOSED);
|
|
|
|
String last = scaf.getLastPacket();
|
|
assertNotNull(last);
|
|
assertEquals("PTA2IT1", last);
|
|
|
|
turnout.setCommandedState(Turnout.THROWN);
|
|
last = scaf.getLastPacket();
|
|
assertNotNull(last);
|
|
assertEquals("PTA4IT1", last);
|
|
|
|
turnout.setCommandedState(Turnout.INCONSISTENT);
|
|
last = scaf.getLastPacket();
|
|
assertNotNull(last);
|
|
assertEquals("PTA8IT1", last);
|
|
|
|
turnout.setCommandedState(Turnout.UNKNOWN);
|
|
last = scaf.getLastPacket();
|
|
assertNotNull(last);
|
|
assertEquals("PTA1IT1", last);
|
|
|
|
t.deregister();
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testTurnoutStateReceived(){
|
|
|
|
InstanceManager.getDefault(TurnoutManager.class).provideTurnout("1").setUserName("MyName1");
|
|
InstanceManager.getDefault(TurnoutManager.class).provideTurnout("2").setUserName("MyName2");
|
|
Turnout turnout = InstanceManager.getDefault(TurnoutManager.class).provideTurnout("1");
|
|
turnout.setCommandedState(Turnout.THROWN);
|
|
|
|
TurnoutController t = new TurnoutController();
|
|
ControllerInterfaceScaffold scaf = new ControllerInterfaceScaffold();
|
|
t.addControllerListener(scaf);
|
|
t.sendList();
|
|
|
|
// PT stripped by DeviceServer
|
|
t.handleMessage("ACIT1", null);
|
|
JUnitUtil.waitFor( () -> turnout.getCommandedState()==Turnout.CLOSED, "turnout went closed");
|
|
|
|
t.handleMessage("ATIT1", null);
|
|
JUnitUtil.waitFor( () -> turnout.getCommandedState()==Turnout.THROWN, "turnout went thrown");
|
|
|
|
t.deregister();
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
JUnitUtil.initInternalTurnoutManager();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
}
|