146 lines
5.7 KiB
Java
146 lines
5.7 KiB
Java
package jmri.implementation;
|
|
|
|
import jmri.*;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
import org.junit.Assert;
|
|
|
|
/**
|
|
*
|
|
* @author Paul Bender Copyright (C) 2017
|
|
*/
|
|
public class TurnoutSignalMastTest {
|
|
|
|
@Test
|
|
public void testCTor() {
|
|
TurnoutSignalMast t = new TurnoutSignalMast("IF$tsm:basic:one-searchlight($1)");
|
|
Assert.assertNotNull("exists",t);
|
|
}
|
|
|
|
@Test
|
|
public void testSetAspect() {
|
|
Turnout it1 = InstanceManager.turnoutManagerInstance().provideTurnout("IT1");
|
|
Turnout it2 = InstanceManager.turnoutManagerInstance().provideTurnout("IT2");
|
|
TurnoutSignalMast t = new TurnoutSignalMast("IF$tsm:basic:one-searchlight($1)");
|
|
t.resetPreviousStates(false);
|
|
|
|
t.setTurnout("Stop", "IT1", Turnout.THROWN);
|
|
t.setTurnout("Clear", "IT2", Turnout.CLOSED);
|
|
|
|
t.setAspect("Clear");
|
|
Assert.assertEquals("Clear", t.getAspect());
|
|
Assert.assertEquals(Turnout.UNKNOWN, it1.getCommandedState()); // not thrown
|
|
Assert.assertEquals(Turnout.CLOSED, it2.getCommandedState());
|
|
|
|
t.setAspect("Stop");
|
|
Assert.assertEquals("Stop", t.getAspect());
|
|
Assert.assertEquals(Turnout.THROWN, it1.getCommandedState());
|
|
Assert.assertEquals(Turnout.CLOSED, it2.getCommandedState()); // unchanged
|
|
|
|
// try an unconfigured one
|
|
t.setAspect("Approach");
|
|
jmri.util.JUnitAppender.assertErrorMessage("Trying to set \"Approach\" on signal mast \"IF$tsm:basic:one-searchlight($1)\" which has not been configured");
|
|
|
|
try {
|
|
t.setAspect("Marblesnarb");
|
|
} catch (IllegalArgumentException ex) {
|
|
jmri.util.JUnitAppender.assertWarnMessage("attempting to set invalid aspect: Marblesnarb on mast: IF$tsm:basic:one-searchlight($1)");
|
|
return;
|
|
}
|
|
|
|
Assert.fail("should have thrown");
|
|
}
|
|
|
|
@Test
|
|
public void testSetAspectResetOthers() {
|
|
Turnout it1 = InstanceManager.turnoutManagerInstance().provideTurnout("IT1");
|
|
Turnout it2 = InstanceManager.turnoutManagerInstance().provideTurnout("IT2");
|
|
TurnoutSignalMast t = new TurnoutSignalMast("IF$tsm:basic:one-searchlight($1)");
|
|
t.resetPreviousStates(true);
|
|
|
|
t.setTurnout("Stop", "IT1", Turnout.THROWN);
|
|
t.setTurnout("Clear", "IT2", Turnout.CLOSED);
|
|
|
|
t.setAspect("Clear");
|
|
Assert.assertEquals("Clear", t.getAspect());
|
|
Assert.assertEquals(Turnout.CLOSED, it1.getCommandedState()); // reset
|
|
Assert.assertEquals(Turnout.CLOSED, it2.getCommandedState());
|
|
|
|
t.setAspect("Stop");
|
|
Assert.assertEquals("Stop", t.getAspect());
|
|
Assert.assertEquals(Turnout.THROWN, it1.getCommandedState());
|
|
Assert.assertEquals(Turnout.THROWN, it2.getCommandedState()); // reset
|
|
|
|
// try an unconfigured but valid one
|
|
t.setAspect("Approach");
|
|
jmri.util.JUnitAppender.assertErrorMessage("Trying to set \"Approach\" on signal mast \"IF$tsm:basic:one-searchlight($1)\" which has not been configured");
|
|
|
|
try {
|
|
t.setAspect("Marblesnarb");
|
|
} catch (IllegalArgumentException ex) {
|
|
jmri.util.JUnitAppender.assertWarnMessage("attempting to set invalid aspect: Marblesnarb on mast: IF$tsm:basic:one-searchlight($1)");
|
|
return;
|
|
}
|
|
|
|
Assert.fail("should have thrown");
|
|
}
|
|
|
|
@Test
|
|
public void testUnLitNoTurnout() {
|
|
Turnout it1 = InstanceManager.turnoutManagerInstance().provideTurnout("IT1");
|
|
Turnout it2 = InstanceManager.turnoutManagerInstance().provideTurnout("IT2");
|
|
TurnoutSignalMast t = new TurnoutSignalMast("IF$tsm:basic:one-searchlight($1)");
|
|
t.setTurnout("Stop", "IT1", Turnout.THROWN);
|
|
t.setTurnout("Clear", "IT2", Turnout.THROWN);
|
|
|
|
t.setAspect("Clear");
|
|
Assert.assertEquals(true, t.getLit());
|
|
|
|
t.setLit(false);
|
|
Assert.assertEquals(false, t.getLit());
|
|
Assert.assertEquals("Clear", t.getAspect());
|
|
Assert.assertEquals(Turnout.CLOSED, it1.getCommandedState());
|
|
Assert.assertEquals(Turnout.CLOSED, it2.getCommandedState());
|
|
}
|
|
|
|
@Test
|
|
public void testUnLitWithTurnout() {
|
|
Turnout it1 = InstanceManager.turnoutManagerInstance().provideTurnout("IT1");
|
|
Turnout it2 = InstanceManager.turnoutManagerInstance().provideTurnout("IT2");
|
|
Turnout it3 = InstanceManager.turnoutManagerInstance().provideTurnout("IT3");
|
|
TurnoutSignalMast t = new TurnoutSignalMast("IF$tsm:basic:one-searchlight($1)");
|
|
t.setTurnout("Stop", "IT1", Turnout.THROWN);
|
|
t.setTurnout("Clear", "IT2", Turnout.THROWN);
|
|
t.setTurnout("Unlit", "IT3", Turnout.THROWN);
|
|
t.setUnLitTurnout("IT3",Turnout.THROWN );
|
|
|
|
t.setAspect("Clear");
|
|
Assert.assertEquals(true, t.getLit());
|
|
Assert.assertEquals(Turnout.UNKNOWN, it1.getCommandedState());
|
|
Assert.assertEquals(Turnout.THROWN, it2.getCommandedState());
|
|
|
|
t.setLit(false);
|
|
Assert.assertEquals(false, t.getLit());
|
|
Assert.assertEquals("Clear", t.getAspect());
|
|
Assert.assertEquals(Turnout.UNKNOWN, it1.getCommandedState()); // Unchanged
|
|
Assert.assertEquals(Turnout.THROWN, it2.getCommandedState()); // Unchanged
|
|
Assert.assertEquals(Turnout.THROWN, it3.getCommandedState());
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
JUnitUtil.resetInstanceManager();
|
|
JUnitUtil.initInternalTurnoutManager();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
//private static final Logger log = LoggerFactory.getLogger(TurnoutSignalMastTest.class);
|
|
|
|
}
|