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

134 lines
4.7 KiB
Java

package jmri.implementation;
import jmri.InstanceManager;
import jmri.SignalHead;
import jmri.Turnout;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
import org.junit.Assert;
/**
* Tests for the SingleTurnoutSignalHead implementation
*
* @author Bob Jacobsen Copyright (C) 2010
*/
public class SingleTurnoutSignalHeadTest extends AbstractSignalHeadTestBase {
@Test
public void testNoDarkValidTypes() {
Turnout t = InstanceManager.turnoutManagerInstance().provideTurnout("IT1");
SingleTurnoutSignalHead h
= new SingleTurnoutSignalHead("IH1",
new jmri.NamedBeanHandle<Turnout>("IT1", t),
SignalHead.GREEN, SignalHead.RED);
int[] states = h.getValidStates();
Assert.assertEquals(2, states.length);
Assert.assertEquals(SignalHead.GREEN, states[0]);
Assert.assertEquals(SignalHead.RED, states[1]);
String[] names = h.getValidStateNames();
Assert.assertEquals(2, names.length);
Assert.assertEquals("Green", names[0]);
Assert.assertEquals("Red", names[1]);
h.setAppearance(SignalHead.GREEN);
Assert.assertEquals(SignalHead.GREEN, h.getAppearance());
Assert.assertEquals("Green", h.getAppearanceName());
h.setAppearance(SignalHead.RED);
Assert.assertEquals(SignalHead.RED, h.getAppearance());
Assert.assertEquals("Red", h.getAppearanceName());
}
@Test
public void testDarkValidTypes1() {
Turnout t = InstanceManager.turnoutManagerInstance().provideTurnout("IT1");
SingleTurnoutSignalHead h
= new SingleTurnoutSignalHead("IH1",
new jmri.NamedBeanHandle<Turnout>("IT1", t),
SignalHead.DARK, SignalHead.RED);
int[] states = h.getValidStates();
Assert.assertEquals(3, states.length);
Assert.assertEquals(SignalHead.DARK, states[0]);
Assert.assertEquals(SignalHead.RED, states[1]);
Assert.assertEquals(SignalHead.FLASHRED, states[2]);
String[] names = h.getValidStateNames();
Assert.assertEquals(3, names.length);
Assert.assertEquals("Dark", names[0]);
Assert.assertEquals("Red", names[1]);
Assert.assertEquals("Flashing Red", names[2]);
h.setAppearance(SignalHead.DARK);
Assert.assertEquals(SignalHead.DARK, h.getAppearance());
Assert.assertEquals("Dark", h.getAppearanceName());
h.setAppearance(SignalHead.FLASHRED);
Assert.assertEquals(SignalHead.FLASHRED, h.getAppearance());
Assert.assertEquals("Flashing Red", h.getAppearanceName());
h.setAppearance(SignalHead.RED); // stops flash timer
Assert.assertEquals(SignalHead.RED, h.getAppearance());
Assert.assertEquals("Red", h.getAppearanceName());
}
@Test
public void testDarkValidTypes2() {
Turnout t = InstanceManager.turnoutManagerInstance().provideTurnout("IT1");
SingleTurnoutSignalHead h
= new SingleTurnoutSignalHead("IH1",
new jmri.NamedBeanHandle<Turnout>("IT1", t),
SignalHead.GREEN, SignalHead.DARK);
int[] states = h.getValidStates();
Assert.assertEquals(3, states.length);
Assert.assertEquals(SignalHead.GREEN, states[0]);
Assert.assertEquals(SignalHead.FLASHGREEN, states[1]);
Assert.assertEquals(SignalHead.DARK, states[2]);
String[] names = h.getValidStateNames();
Assert.assertEquals(3, names.length);
Assert.assertEquals("Green", names[0]);
Assert.assertEquals("Flashing Green", names[1]);
Assert.assertEquals("Dark", names[2]);
h.setAppearance(SignalHead.DARK);
Assert.assertEquals(SignalHead.DARK, h.getAppearance());
Assert.assertEquals("Dark", h.getAppearanceName());
h.setAppearance(SignalHead.FLASHGREEN);
Assert.assertEquals(SignalHead.FLASHGREEN, h.getAppearance());
Assert.assertEquals("Flashing Green", h.getAppearanceName());
h.setAppearance(SignalHead.GREEN); // stops flash timer
Assert.assertEquals(SignalHead.GREEN, h.getAppearance());
Assert.assertEquals("Green", h.getAppearanceName());
}
@Override
public SignalHead getHeadToTest() {
Turnout t = InstanceManager.turnoutManagerInstance().provideTurnout("IT1");
return new SingleTurnoutSignalHead("IH1",
new jmri.NamedBeanHandle<Turnout>("IT1", t),
SignalHead.GREEN, SignalHead.DARK);
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
}
@AfterEach
public void tearDown() {
JUnitUtil.tearDown();
}
}