Files
JIMRI/java/test/jmri/implementation/SE8cSignalHeadTest.java
T
2026-06-17 14:00:51 +02:00

166 lines
5.6 KiB
Java

package jmri.implementation;
import static org.junit.jupiter.api.Assertions.assertEquals;
import jmri.InstanceManager;
import jmri.NamedBeanHandle;
import jmri.SignalHead;
import jmri.Turnout;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
/**
* Tests for the SE8cSignalHead implementation
*
* @author Bob Jacobsen Copyright (C) 2009
* updated to JUnit4 2016
*/
public class SE8cSignalHeadTest extends AbstractSignalHeadTestBase {
@Test
public void testSE8cSignalHeadCtor1() {
Turnout it11 = InstanceManager.turnoutManagerInstance().provideTurnout("11");
Turnout it12 = InstanceManager.turnoutManagerInstance().provideTurnout("12");
assertEquals( Turnout.UNKNOWN, it11.getCommandedState(), "to low before");
assertEquals( Turnout.UNKNOWN, it12.getCommandedState(), "to high before");
SE8cSignalHead s = new SE8cSignalHead(
new NamedBeanHandle<>("11", it11),
new NamedBeanHandle<>("12", it12));
assertEquals( "IH:SE8c:\"11\";\"12\"", s.getSystemName(), "system name");
assertEquals( Turnout.UNKNOWN, it11.getCommandedState(), "to low");
assertEquals( Turnout.CLOSED, it12.getCommandedState(), "to high"); // dark
}
@Test
public void testSE8cSignalHeadCtor2() {
Turnout it11 = InstanceManager.turnoutManagerInstance().provideTurnout("11");
Turnout it12 = InstanceManager.turnoutManagerInstance().provideTurnout("12");
SE8cSignalHead s = new SE8cSignalHead(
new NamedBeanHandle<>("11", it11),
new NamedBeanHandle<>("12", it12),
"user name"
);
assertEquals( "IH:SE8c:\"11\";\"12\"", s.getSystemName(), "system name");
assertEquals( "user name", s.getUserName(), "user name");
assertEquals( Turnout.UNKNOWN, it11.getCommandedState(), "to low");
assertEquals( Turnout.CLOSED, it12.getCommandedState(), "to high"); // dark
}
@Test
public void testSE8cSignalHeadCtor3() {
// original ctor from number and user name
SE8cSignalHead s = new SE8cSignalHead(11, "user name");
assertEquals( "LH11", s.getSystemName(), "system name");
assertEquals( "user name", s.getUserName(), "user name");
}
@Test
public void testSE8cSignalHeadCtor4() {
// original ctor from number only
SE8cSignalHead s = new SE8cSignalHead(11);
assertEquals( "LH11", s.getSystemName(), "system name");
}
@Test
public void testRedState() {
Turnout it11 = InstanceManager.turnoutManagerInstance().provideTurnout("11");
Turnout it12 = InstanceManager.turnoutManagerInstance().provideTurnout("12");
SE8cSignalHead s = new SE8cSignalHead(
new NamedBeanHandle<>("11", it11),
new NamedBeanHandle<>("12", it12),
"user name"
);
s.setAppearance(SignalHead.RED);
assertEquals( Turnout.THROWN, it11.getCommandedState(), "to low after");
assertEquals( Turnout.CLOSED, it12.getCommandedState(), "to high after");
}
@Test
public void testYellowState() {
Turnout it11 = InstanceManager.turnoutManagerInstance().provideTurnout("11");
Turnout it12 = InstanceManager.turnoutManagerInstance().provideTurnout("12");
SE8cSignalHead s = new SE8cSignalHead(
new NamedBeanHandle<>("11", it11),
new NamedBeanHandle<>("12", it12),
"user name"
);
s.setAppearance(SignalHead.YELLOW);
assertEquals( Turnout.UNKNOWN, it11.getCommandedState(), "to low after");
assertEquals( Turnout.THROWN, it12.getCommandedState(), "to high after");
}
@Test
public void testGreenState() {
Turnout it11 = InstanceManager.turnoutManagerInstance().provideTurnout("11");
Turnout it12 = InstanceManager.turnoutManagerInstance().provideTurnout("12");
SE8cSignalHead s = new SE8cSignalHead(
new NamedBeanHandle<>("11", it11),
new NamedBeanHandle<>("12", it12),
"user name"
);
s.setAppearance(SignalHead.GREEN);
assertEquals( Turnout.CLOSED, it11.getCommandedState(), "to low after");
assertEquals( Turnout.CLOSED, it12.getCommandedState(), "to high after");
}
@Test
public void testDarkState() {
Turnout it11 = InstanceManager.turnoutManagerInstance().provideTurnout("11");
Turnout it12 = InstanceManager.turnoutManagerInstance().provideTurnout("12");
SE8cSignalHead s = new SE8cSignalHead(
new NamedBeanHandle<>("11", it11),
new NamedBeanHandle<>("12", it12),
"user name"
);
s.setAppearance(SignalHead.DARK);
assertEquals( Turnout.UNKNOWN, it11.getCommandedState(), "to low after");
assertEquals( Turnout.CLOSED, it12.getCommandedState(), "to high after");
}
// from here down is testing infrastructure
@Override
public SignalHead getHeadToTest() {
Turnout it11 = InstanceManager.turnoutManagerInstance().provideTurnout("11");
Turnout it12 = InstanceManager.turnoutManagerInstance().provideTurnout("12");
return new SE8cSignalHead(
new NamedBeanHandle<>("11", it11),
new NamedBeanHandle<>("12", it12),
"user name"
);
}
// The minimal setup for log4J/JUnit4
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
JUnitUtil.initInternalTurnoutManager();
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
}