Files
JIMRI/java/test/jmri/jmrit/withrottle/TurnoutControllerTest.java
T
2026-06-17 14:00:51 +02:00

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();
}
}