Files
2026-06-17 14:00:51 +02:00

149 lines
4.5 KiB
Java

package jmri.jmrit.ussctc;
import static org.junit.jupiter.api.Assertions.assertEquals;
import jmri.InstanceManager;
import jmri.JmriException;
import jmri.Sensor;
import jmri.Turnout;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
/**
* Tests for classes in the jmri.jmrit.ussctc.OsIndicator class
*
* @author Bob Jacobsen Copyright 2003, 2007, 2015
*/
public class OsIndicatorTest {
@Test
public void testCreate() {
Assertions.assertNotNull( new OsIndicator("IT12", "IS34", "IS56"));
}
@Test
public void testAccess() {
OsIndicator os = new OsIndicator("IT12", "IS34", "IS56");
assertEquals("IT12", os.getOutputName(), "output");
assertEquals("IS34", os.getOsSensorName(), "input");
assertEquals("IS56", os.getLockName(), "lock");
}
@Test
public void testIntantiateNoLock() throws JmriException {
OsIndicator os = new OsIndicator("IT12", "IS34", "");
Turnout t1 = InstanceManager.turnoutManagerInstance()
.provideTurnout("IT12");
t1.setCommandedState(Turnout.CLOSED);
Sensor s1 = InstanceManager.sensorManagerInstance()
.provideSensor("IS34");
s1.setKnownState(Sensor.INACTIVE);
assertEquals(Sensor.INACTIVE, s1.getKnownState(),
"sensor before");
assertEquals(Turnout.CLOSED, t1.getCommandedState(),
"output before");
os.instantiate();
assertEquals(Sensor.INACTIVE, s1.getKnownState(),
"sensor after instantiate");
assertEquals(Turnout.CLOSED, t1.getCommandedState(),
"output after instantiate");
}
@Test
public void testIntantiateLocked() throws JmriException {
OsIndicator os = new OsIndicator("IT12", "IS34", "IS56");
Turnout t1 = InstanceManager.turnoutManagerInstance()
.provideTurnout("IT12");
t1.setCommandedState(Turnout.CLOSED);
Sensor s1 = InstanceManager.sensorManagerInstance()
.provideSensor("IS34");
s1.setKnownState(Sensor.INACTIVE);
Sensor s2 = InstanceManager.sensorManagerInstance()
.provideSensor("IS56");
s2.setKnownState(Sensor.INACTIVE);
assertEquals(Sensor.INACTIVE, s1.getKnownState(),
"sensor before");
assertEquals(Sensor.INACTIVE, s2.getKnownState(),
"lock before");
assertEquals(Turnout.CLOSED, t1.getCommandedState(),
"output before");
os.instantiate();
assertEquals(Sensor.INACTIVE, s1.getKnownState(),
"sensor after instantiate");
assertEquals(Sensor.INACTIVE, s2.getKnownState(),
"lock after instantiate");
assertEquals(Turnout.CLOSED, t1.getCommandedState(),
"output after instantiate");
}
@Test
public void testInvokeNoLock() throws JmriException {
OsIndicator os = new OsIndicator("IT12", "IS34", "");
Turnout t1 = InstanceManager.turnoutManagerInstance()
.provideTurnout("IT12");
t1.setCommandedState(Turnout.CLOSED);
Sensor s1 = InstanceManager.sensorManagerInstance()
.provideSensor("IS34");
s1.setKnownState(Sensor.INACTIVE);
assertEquals(Sensor.INACTIVE, s1.getKnownState(),
"sensor before");
assertEquals(Turnout.CLOSED, t1.getCommandedState(),
"output before");
os.instantiate();
assertEquals(Sensor.INACTIVE, s1.getKnownState(),
"sensor after instantiate");
assertEquals(Turnout.CLOSED, t1.getCommandedState(),
"output after instantiate");
// and change
s1.setKnownState(Sensor.ACTIVE);
assertEquals(Sensor.ACTIVE, s1.getKnownState(),
"sensor after activate");
assertEquals(Turnout.THROWN, t1.getCommandedState(),
"output after activate");
s1.setKnownState(Sensor.INACTIVE);
assertEquals(Sensor.INACTIVE, s1.getKnownState(),
"sensor after inactivate");
assertEquals(Turnout.CLOSED, t1.getCommandedState(),
"output after inactivate");
}
@BeforeEach
public void setUp() {
JUnitUtil.setUp();
JUnitUtil.resetInstanceManager();
JUnitUtil.initInternalTurnoutManager();
JUnitUtil.initInternalSensorManager();
}
@AfterEach
public void tearDown() {
JUnitUtil.deregisterBlockManagerShutdownTask();
JUnitUtil.tearDown();
}
}