937 lines
56 KiB
Java
937 lines
56 KiB
Java
package jmri.implementation;
|
|
|
|
import static jmri.Conditional.*;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
import jmri.*;
|
|
import jmri.jmrit.logix.OBlockManager;
|
|
import jmri.jmrit.logix.Warrant;
|
|
import jmri.jmrit.logix.WarrantManager;
|
|
import jmri.util.JUnitUtil;
|
|
import jmri.util.JUnitAppender;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
* Test the DefaultConditionalAction implementation class
|
|
*
|
|
* @author Bob Jacobsen Copyright (C) 2015
|
|
*/
|
|
public class DefaultConditionalActionTest {
|
|
|
|
@Test
|
|
public void testCtor() {
|
|
DefaultConditionalAction t = new DefaultConditionalAction();
|
|
Assertions.assertNotNull(t);
|
|
}
|
|
|
|
@Test
|
|
public void testBasicBeanOperations() {
|
|
final String deviceName = "3";
|
|
final String otherDeviceName = "8";
|
|
final String actionStr = "5";
|
|
|
|
ConditionalAction ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, deviceName, Turnout.THROWN, actionStr);
|
|
ConditionalAction ix2 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, deviceName, Turnout.THROWN, actionStr);
|
|
|
|
ConditionalAction ix3 = new DefaultConditionalAction(0, Conditional.Action.SET_TURNOUT, deviceName, Turnout.THROWN, actionStr);
|
|
ConditionalAction ix4 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.NONE, deviceName, Turnout.THROWN, actionStr);
|
|
ConditionalAction ix5 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, "0", Turnout.THROWN, actionStr);
|
|
ConditionalAction ix6 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, deviceName, 0, actionStr);
|
|
ConditionalAction ix7 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, deviceName, Turnout.THROWN, "0");
|
|
ConditionalAction ix8 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, otherDeviceName, Turnout.THROWN, "0");
|
|
ConditionalAction ix9 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, deviceName, Turnout.THROWN, "1");
|
|
|
|
ConditionalAction ix10 = new DefaultConditionalAction(0, Conditional.Action.NONE, null, Turnout.THROWN, actionStr);
|
|
|
|
assertNotNull(ix1);
|
|
|
|
assertTrue(ix1.equals(ix1));
|
|
assertTrue(ix1.equals(ix2));
|
|
|
|
assertTrue(!ix1.equals(ix3));
|
|
assertTrue(!ix1.equals(ix4));
|
|
assertTrue(!ix1.equals(ix5));
|
|
assertTrue(!ix1.equals(ix6));
|
|
assertTrue(!ix1.equals(ix7));
|
|
assertTrue(!ix1.equals(ix8));
|
|
assertTrue(!ix1.equals(ix9));
|
|
|
|
// Test equal with different class
|
|
assertTrue(!ix1.equals(new Object()));
|
|
|
|
// Test deviceName == null
|
|
assertTrue(!ix1.equals(ix10));
|
|
assertTrue(!ix10.equals(ix1));
|
|
|
|
assertTrue(ix1.hashCode() == ix2.hashCode());
|
|
}
|
|
|
|
@Test
|
|
public void testSetType() {
|
|
final String deviceName = "3";
|
|
final String actionStr = "5";
|
|
|
|
ConditionalAction ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, deviceName, Turnout.THROWN, actionStr);
|
|
|
|
ix1.setType("None");
|
|
assertTrue( ix1.getType() == Conditional.Action.NONE, "setType() sets correct value");
|
|
JUnitAppender.assertWarnMessage("Unexpected parameter to stringToActionType(None)");
|
|
|
|
ix1.setType("Set Turnout");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_TURNOUT, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Signal Head Appearance");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_SIGNAL_APPEARANCE, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Signal Head Held");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_SIGNAL_HELD, "setType() sets correct value");
|
|
|
|
ix1.setType("Clear Signal Head Held");
|
|
assertTrue( ix1.getType() == Conditional.Action.CLEAR_SIGNAL_HELD, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Signal Head Dark");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_SIGNAL_DARK, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Signal Head Lit");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_SIGNAL_LIT, "setType() sets correct value");
|
|
|
|
ix1.setType("Trigger Route");
|
|
assertTrue( ix1.getType() == Conditional.Action.TRIGGER_ROUTE, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Sensor");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_SENSOR, "setType() sets correct value");
|
|
|
|
ix1.setType("Delayed Set Sensor");
|
|
assertTrue( ix1.getType() == Conditional.Action.DELAYED_SENSOR, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Light");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_LIGHT, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Memory");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_MEMORY, "setType() sets correct value");
|
|
|
|
ix1.setType("Enable Logix");
|
|
assertTrue( ix1.getType() == Conditional.Action.ENABLE_LOGIX, "setType() sets correct value");
|
|
|
|
ix1.setType("Disable Logix");
|
|
assertTrue( ix1.getType() == Conditional.Action.DISABLE_LOGIX, "setType() sets correct value");
|
|
|
|
ix1.setType("Play Sound File");
|
|
assertTrue( ix1.getType() == Conditional.Action.PLAY_SOUND, "setType() sets correct value");
|
|
|
|
ix1.setType("Run Script");
|
|
assertTrue( ix1.getType() == Conditional.Action.RUN_SCRIPT, "setType() sets correct value");
|
|
|
|
ix1.setType("Delayed Set Turnout");
|
|
assertTrue( ix1.getType() == Conditional.Action.DELAYED_TURNOUT, "setType() sets correct value");
|
|
|
|
ix1.setType("Turnout Lock");
|
|
assertTrue( ix1.getType() == Conditional.Action.LOCK_TURNOUT, "setType() sets correct value");
|
|
|
|
ix1.setType("Reset Delayed Set Sensor");
|
|
assertTrue( ix1.getType() == Conditional.Action.RESET_DELAYED_SENSOR, "setType() sets correct value");
|
|
|
|
ix1.setType("Cancel Timers for Sensor");
|
|
assertTrue( ix1.getType() == Conditional.Action.CANCEL_SENSOR_TIMERS, "setType() sets correct value");
|
|
|
|
ix1.setType("Reset Delayed Set Turnout");
|
|
assertTrue( ix1.getType() == Conditional.Action.RESET_DELAYED_TURNOUT, "setType() sets correct value");
|
|
|
|
ix1.setType("Cancel Timers for Turnout");
|
|
assertTrue( ix1.getType() == Conditional.Action.CANCEL_TURNOUT_TIMERS, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Fast Clock Time");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_FAST_CLOCK_TIME, "setType() sets correct value");
|
|
|
|
ix1.setType("Start Fast Clock");
|
|
assertTrue( ix1.getType() == Conditional.Action.START_FAST_CLOCK, "setType() sets correct value");
|
|
|
|
ix1.setType("Stop Fast Clock");
|
|
assertTrue( ix1.getType() == Conditional.Action.STOP_FAST_CLOCK, "setType() sets correct value");
|
|
|
|
ix1.setType("Copy Memory To Memory");
|
|
assertTrue( ix1.getType() == Conditional.Action.COPY_MEMORY, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Light Intensity");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_LIGHT_INTENSITY, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Light Transition Time");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_LIGHT_TRANSITION_TIME, "setType() sets correct value");
|
|
|
|
ix1.setType("Control Audio object");
|
|
assertTrue( ix1.getType() == Conditional.Action.CONTROL_AUDIO, "setType() sets correct value");
|
|
|
|
ix1.setType("Execute Jython Command");
|
|
assertTrue( ix1.getType() == Conditional.Action.JYTHON_COMMAND, "setType() sets correct value");
|
|
|
|
ix1.setType("Allocate Warrant Route");
|
|
assertTrue( ix1.getType() == Conditional.Action.ALLOCATE_WARRANT_ROUTE, "setType() sets correct value");
|
|
|
|
ix1.setType("Deallocate Warrant");
|
|
assertTrue( ix1.getType() == Conditional.Action.DEALLOCATE_WARRANT_ROUTE, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Route Turnouts");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_ROUTE_TURNOUTS, "setType() sets correct value");
|
|
|
|
ix1.setType("Auto Run Train");
|
|
assertTrue( ix1.getType() == Conditional.Action.AUTO_RUN_WARRANT, "setType() sets correct value");
|
|
|
|
ix1.setType("Manually Run Train");
|
|
assertTrue( ix1.getType() == Conditional.Action.MANUAL_RUN_WARRANT, "setType() sets correct value");
|
|
|
|
ix1.setType("Control Auto Train");
|
|
assertTrue( ix1.getType() == Conditional.Action.CONTROL_TRAIN, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Train ID");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_TRAIN_ID, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Train Name");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_TRAIN_NAME, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Signal Mast Aspect");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_SIGNALMAST_ASPECT, "setType() sets correct value");
|
|
|
|
ix1.setType("Put Location of Warrant");
|
|
assertTrue( ix1.getType() == Conditional.Action.GET_TRAIN_LOCATION, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Signal Mast Held");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_SIGNALMAST_HELD, "setType() sets correct value");
|
|
|
|
ix1.setType("Clear Signal Mast Held");
|
|
assertTrue( ix1.getType() == Conditional.Action.CLEAR_SIGNALMAST_HELD, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Signal Mast Dark");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_SIGNALMAST_DARK, "setType() sets correct value");
|
|
|
|
ix1.setType("Clear Signal Mast Dark");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_SIGNALMAST_LIT, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Block Value");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_BLOCK_VALUE, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Block Error");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_BLOCK_ERROR, "setType() sets correct value");
|
|
|
|
ix1.setType("Clear Block Error");
|
|
assertTrue( ix1.getType() == Conditional.Action.CLEAR_BLOCK_ERROR, "setType() sets correct value");
|
|
|
|
ix1.setType("Deallocate Block");
|
|
assertTrue( ix1.getType() == Conditional.Action.DEALLOCATE_BLOCK, "setType() sets correct value");
|
|
|
|
ix1.setType("Set Block OutOfService");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_BLOCK_OUT_OF_SERVICE, "setType() sets correct value");
|
|
|
|
ix1.setType("Clear Block OutOfService");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_BLOCK_IN_SERVICE, "setType() sets correct value");
|
|
|
|
ix1.setType("Set NX Pair Enabled");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_NXPAIR_ENABLED, "setType() sets correct value");
|
|
|
|
ix1.setType("Set NX Pair Disabled");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_NXPAIR_DISABLED, "setType() sets correct value");
|
|
|
|
ix1.setType("Set NX Pair Segment Active / Inactive");
|
|
assertTrue( ix1.getType() == Conditional.Action.SET_NXPAIR_SEGMENT, "setType() sets correct value");
|
|
|
|
ix1.setType("This is a bad string");
|
|
JUnitAppender.assertWarnMessage("Unexpected parameter to stringToActionType(This is a bad string)");
|
|
|
|
ix1.setType("Put Warrant occupying Block");
|
|
assertTrue( ix1.getType() == Conditional.Action.GET_BLOCK_WARRANT, "setType() sets correct value");
|
|
|
|
ix1.setType("Put Train Name occupying Block");
|
|
assertTrue( ix1.getType() == Conditional.Action.GET_BLOCK_TRAIN_NAME, "setType() sets correct value");
|
|
}
|
|
|
|
@Test
|
|
public void testStringToActionData() {
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Closed") == Turnout.CLOSED,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Thrown") == Turnout.THROWN,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Active") == Sensor.ACTIVE,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Inactive") == Sensor.INACTIVE,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("On") == Light.ON,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Off") == Light.OFF,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Unlock") == Turnout.UNLOCKED,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Lock") == Turnout.LOCKED,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Red") == SignalHead.RED,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Yellow") == SignalHead.YELLOW,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Green") == SignalHead.GREEN,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Dark") == SignalHead.DARK,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Flashing Red") == SignalHead.FLASHRED,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Flashing Yellow") == SignalHead.FLASHYELLOW,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Flashing Green") == SignalHead.FLASHGREEN,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Lunar") == SignalHead.LUNAR,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Flashing Lunar") == SignalHead.FLASHLUNAR,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Play") == Audio.CMD_PLAY,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Stop") == Audio.CMD_STOP,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Toggle Play") == Audio.CMD_PLAY_TOGGLE,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Pause") == Audio.CMD_PAUSE,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Resume") == Audio.CMD_RESUME,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Toggle Pause") == Audio.CMD_PAUSE_TOGGLE,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Rewind") == Audio.CMD_REWIND,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Fade-in") == Audio.CMD_FADE_IN,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Fade-out") == Audio.CMD_FADE_OUT,
|
|
"stringToActionData() returns correct value");
|
|
|
|
assertTrue( DefaultConditionalAction.stringToActionData("Reset Position") == Audio.CMD_RESET_POSITION,
|
|
"stringToActionData() returns correct value");
|
|
|
|
DefaultConditionalAction.stringToActionData("This is a bad string");
|
|
JUnitAppender.assertWarnMessage("Unexpected parameter to stringToActionData(This is a bad string)");
|
|
}
|
|
|
|
@Test
|
|
public void testGetActionDataString() {
|
|
assertEquals( "",DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.NONE, 0),"getActionDataString() returns correct value");
|
|
assertEquals( "Closed", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_TURNOUT, Turnout.CLOSED),"getActionDataString() returns correct value");
|
|
assertEquals( "Thrown", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_TURNOUT, Turnout.THROWN), "getActionDataString() returns correct value");
|
|
assertEquals( "Toggle", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_TURNOUT, Route.TOGGLE), "getActionDataString() returns correct value");
|
|
assertEquals( "Closed", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.DELAYED_TURNOUT, Turnout.CLOSED), "getActionDataString() returns correct value");
|
|
assertEquals( "Thrown", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.DELAYED_TURNOUT, Turnout.THROWN), "getActionDataString() returns correct value");
|
|
assertEquals( "Toggle", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.DELAYED_TURNOUT, Route.TOGGLE), "getActionDataString() returns correct value");
|
|
assertEquals( "Closed", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.RESET_DELAYED_TURNOUT, Turnout.CLOSED), "getActionDataString() returns correct value");
|
|
assertEquals( "Thrown", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.RESET_DELAYED_TURNOUT, Turnout.THROWN), "getActionDataString() returns correct value");
|
|
assertEquals( "Toggle", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.RESET_DELAYED_TURNOUT, Route.TOGGLE), "getActionDataString() returns correct value");
|
|
// Test invalid data
|
|
assertEquals( "", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_TURNOUT, 0), "getActionDataString() returns correct value");
|
|
|
|
assertEquals( "Red", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SIGNAL_APPEARANCE, SignalHead.RED), "getActionDataString() returns correct value");
|
|
assertEquals( "Yellow", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SIGNAL_APPEARANCE, SignalHead.YELLOW), "getActionDataString() returns correct value");
|
|
assertEquals( "Green", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SIGNAL_APPEARANCE, SignalHead.GREEN), "getActionDataString() returns correct value");
|
|
assertEquals( "Dark", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SIGNAL_APPEARANCE, SignalHead.DARK), "getActionDataString() returns correct value");
|
|
assertEquals( "Flashing Red", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SIGNAL_APPEARANCE, SignalHead.FLASHRED), "getActionDataString() returns correct value");
|
|
assertEquals( "Flashing Yellow", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SIGNAL_APPEARANCE, SignalHead.FLASHYELLOW), "getActionDataString() returns correct value");
|
|
assertEquals( "Flashing Green", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SIGNAL_APPEARANCE, SignalHead.FLASHGREEN), "getActionDataString() returns correct value");
|
|
assertEquals( "Lunar", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SIGNAL_APPEARANCE, SignalHead.LUNAR), "getActionDataString() returns correct value");
|
|
assertEquals( "Flashing Lunar", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SIGNAL_APPEARANCE, SignalHead.FLASHLUNAR), "getActionDataString() returns correct value");
|
|
// Test invalid data
|
|
assertEquals( "", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SIGNAL_APPEARANCE, -1), "getActionDataString() returns correct value");
|
|
|
|
assertEquals( "Active", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SENSOR, Sensor.ACTIVE), "getActionDataString() returns correct value");
|
|
assertEquals( "Inactive", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SENSOR, Sensor.INACTIVE), "getActionDataString() returns correct value");
|
|
assertEquals( "Toggle", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SENSOR, Route.TOGGLE), "getActionDataString() returns correct value");
|
|
assertEquals( "Active", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.DELAYED_SENSOR, Sensor.ACTIVE), "getActionDataString() returns correct value");
|
|
assertEquals( "Inactive", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.DELAYED_SENSOR, Sensor.INACTIVE), "getActionDataString() returns correct value");
|
|
assertEquals( "Toggle", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.DELAYED_SENSOR, Route.TOGGLE), "getActionDataString() returns correct value");
|
|
assertEquals( "Active", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.RESET_DELAYED_SENSOR, Sensor.ACTIVE), "getActionDataString() returns correct value");
|
|
assertEquals( "Inactive", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.RESET_DELAYED_SENSOR, Sensor.INACTIVE), "getActionDataString() returns correct value");
|
|
assertEquals( "Toggle", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.RESET_DELAYED_SENSOR, Route.TOGGLE), "getActionDataString() returns correct value");
|
|
// Test invalid data
|
|
assertEquals( "", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_SENSOR, 0), "getActionDataString() returns correct value");
|
|
|
|
assertEquals( "On", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_LIGHT, Light.ON), "getActionDataString() returns correct value");
|
|
assertEquals( "Off", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_LIGHT, Light.OFF), "getActionDataString() returns correct value");
|
|
assertEquals( "Toggle", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_LIGHT, Route.TOGGLE), "getActionDataString() returns correct value");
|
|
// Test invalid data
|
|
assertEquals( "", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.SET_LIGHT, 0), "getActionDataString() returns correct value");
|
|
|
|
assertEquals( "Unlock", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.LOCK_TURNOUT, Turnout.UNLOCKED), "getActionDataString() returns correct value");
|
|
assertEquals( "Lock", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.LOCK_TURNOUT, Turnout.LOCKED), "getActionDataString() returns correct value");
|
|
assertEquals( "Toggle", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.LOCK_TURNOUT, Route.TOGGLE), "getActionDataString() returns correct value");
|
|
// Test invalid data
|
|
assertEquals( "", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.LOCK_TURNOUT, -1), "getActionDataString() returns correct value");
|
|
|
|
assertEquals( "Play", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, Audio.CMD_PLAY), "getActionDataString() returns correct value");
|
|
assertEquals( "Stop", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, Audio.CMD_STOP), "getActionDataString() returns correct value");
|
|
assertEquals( "Toggle Play", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, Audio.CMD_PLAY_TOGGLE), "getActionDataString() returns correct value");
|
|
assertEquals( "Pause", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, Audio.CMD_PAUSE), "getActionDataString() returns correct value");
|
|
assertEquals( "Resume", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, Audio.CMD_RESUME), "getActionDataString() returns correct value");
|
|
assertEquals( "Toggle Pause", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, Audio.CMD_PAUSE_TOGGLE), "getActionDataString() returns correct value");
|
|
assertEquals( "Rewind", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, Audio.CMD_REWIND), "getActionDataString() returns correct value");
|
|
assertEquals( "Fade-in", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, Audio.CMD_FADE_IN), "getActionDataString() returns correct value");
|
|
assertEquals( "Fade-out", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, Audio.CMD_FADE_OUT), "getActionDataString() returns correct value");
|
|
assertEquals( "Reset Position", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, Audio.CMD_RESET_POSITION), "getActionDataString() returns correct value");
|
|
// Test invalid data
|
|
assertEquals( "", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_AUDIO, 0), "getActionDataString() returns correct value");
|
|
JUnitAppender.assertErrorMessage("Unhandled Audio operation command: 0");
|
|
|
|
assertEquals( "Slow to Halt", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_TRAIN, Warrant.HALT), "getActionDataString() returns correct value");
|
|
assertEquals( "Resume", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_TRAIN, Warrant.RESUME), "getActionDataString() returns correct value");
|
|
assertEquals( "Move into next block", DefaultConditionalAction.getActionDataString(
|
|
Conditional.Action.CONTROL_TRAIN, Warrant.RETRY_FWD), "getActionDataString() returns correct value");
|
|
// Assert.assertTrue("getActionDataString() returns correct value",
|
|
// "Abort".equals(DefaultConditionalAction.getActionDataString(Conditional.Action.CONTROL_TRAIN, -1)));
|
|
|
|
// Test invalid type
|
|
// Assert.assertTrue("getActionDataString() returns correct value",
|
|
// "".equals(DefaultConditionalAction.getActionDataString(-1, -1)));
|
|
}
|
|
|
|
@Test
|
|
public void testSetActionData() {
|
|
final String deviceName = "3";
|
|
final String actionStr = "5";
|
|
|
|
ConditionalAction ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, deviceName, Turnout.THROWN, actionStr);
|
|
assertTrue( ix1.getActionData() == Turnout.THROWN, "getActionData() gets correct value");
|
|
ix1.setActionData(Turnout.CLOSED);
|
|
assertTrue( ix1.getActionData() == Turnout.CLOSED, "getActionData() gets correct value");
|
|
ix1.setActionData("Thrown");
|
|
assertTrue( ix1.getActionData() == Turnout.THROWN, "getActionData() gets correct value");
|
|
}
|
|
|
|
@Test
|
|
public void testGetActionBean() {
|
|
ConditionalAction ix1;
|
|
NamedBean bean;
|
|
String deviceName = "3";
|
|
|
|
// Start with testing the exception handling in getActionBean()
|
|
JUnitUtil.resetInstanceManager();
|
|
JUnitUtil.initInternalTurnoutManagerThrowException();
|
|
JUnitUtil.initLightManagerThrowException();
|
|
JUnitUtil.initMemoryManagerThrowException();
|
|
JUnitUtil.initInternalSensorManagerThrowException();
|
|
JUnitUtil.initSignalHeadManagerThrowException();
|
|
JUnitUtil.initSignalMastManagerThrowException();
|
|
JUnitUtil.initWarrantManagerThrowException();
|
|
JUnitUtil.initOBlockManagerThrowException();
|
|
JUnitUtil.initRouteManagerThrowException();
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_SENSOR, deviceName, 4, "5");
|
|
JUnitAppender.assertErrorMessage("invalid sensor name= \"3\" in conditional action");
|
|
// getBean() tries to set the bean if bean == null. This generates a new error message.
|
|
assertNull( ix1.getBean(), "getActionBean() returns null");
|
|
JUnitAppender.assertErrorMessage("invalid sensor name= \"3\" in conditional action");
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, deviceName, 4, "5");
|
|
JUnitAppender.assertErrorMessage("invalid turnout name= \"3\" in conditional action");
|
|
// getBean() tries to set the bean if bean == null. This generates a new error message.
|
|
assertNull( ix1.getBean(), "getActionBean() returns null");
|
|
JUnitAppender.assertErrorMessage("invalid turnout name= \"3\" in conditional action");
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_MEMORY, deviceName, 4, "5");
|
|
JUnitAppender.assertErrorMessage("invalid memory name= \"3\" in conditional action");
|
|
// getBean() tries to set the bean if bean == null. This generates a new error message.
|
|
assertNull( ix1.getBean(), "getActionBean() returns null");
|
|
JUnitAppender.assertErrorMessage("invalid memory name= \"3\" in conditional action");
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_LIGHT, deviceName, 4, "5");
|
|
JUnitAppender.assertErrorMessage("invalid light name= \"3\" in conditional action");
|
|
// getBean() tries to set the bean if bean == null. This generates a new error message.
|
|
assertNull( ix1.getBean(), "getActionBean() returns null");
|
|
JUnitAppender.assertErrorMessage("invalid light name= \"3\" in conditional action");
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_SIGNAL_APPEARANCE, "IH1", 4, "5");
|
|
JUnitAppender.assertErrorMessage("invalid signal head name= \"IH1\" in conditional action");
|
|
// getBean() tries to set the bean if bean == null. This generates a new error message.
|
|
assertNull( ix1.getBean(), "getActionBean() returns null");
|
|
JUnitAppender.assertErrorMessage("invalid signal head name= \"IH1\" in conditional action");
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_SIGNALMAST_HELD, "IF$shsm:AAR-1946:CPL(IH1)", 4, "5");
|
|
JUnitAppender.assertErrorMessage("invalid signal mast name= \"IF$shsm:AAR-1946:CPL(IH1)\" in conditional action");
|
|
// getBean() tries to set the bean if bean == null. This generates a new error message.
|
|
assertNull( ix1.getBean(), "getActionBean() returns null");
|
|
JUnitAppender.assertErrorMessage("invalid signal mast name= \"IF$shsm:AAR-1946:CPL(IH1)\" in conditional action");
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.MANUAL_RUN_WARRANT, "IW3", 4, "5");
|
|
JUnitAppender.assertErrorMessage("invalid Warrant name= \"IW3\" in conditional action");
|
|
// getBean() tries to set the bean if bean == null. This generates a new error message.
|
|
assertNull( ix1.getBean(), "getActionBean() returns null");
|
|
JUnitAppender.assertErrorMessage("invalid Warrant name= \"IW3\" in conditional action");
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_BLOCK_VALUE, "OB3", 4, "5");
|
|
JUnitAppender.assertErrorMessage("invalid OBlock name= \"OB3\" in conditional action");
|
|
// getBean() tries to set the bean if bean == null. This generates a new error message.
|
|
assertNull( ix1.getBean(), "getActionBean() returns null");
|
|
JUnitAppender.assertErrorMessage("invalid OBlock name= \"OB3\" in conditional action");
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.TRIGGER_ROUTE, deviceName, 4, "5");
|
|
JUnitAppender.assertErrorMessage("invalid Route name= \"3\" in conditional action");
|
|
// getBean() tries to set the bean if bean == null. This generates a new error message.
|
|
assertNull( ix1.getBean(), "getActionBean() returns null");
|
|
JUnitAppender.assertErrorMessage("invalid Route name= \"3\" in conditional action");
|
|
|
|
|
|
JUnitUtil.resetInstanceManager();
|
|
JUnitUtil.initInternalTurnoutManager();
|
|
JUnitUtil.initInternalLightManager();
|
|
JUnitUtil.initInternalSensorManager();
|
|
JUnitUtil.initDefaultSignalMastManager();
|
|
JUnitUtil.initSignalMastLogicManager();
|
|
JUnitUtil.initWarrantManager();
|
|
JUnitUtil.initOBlockManager();
|
|
JUnitUtil.initRouteManager();
|
|
JUnitUtil.initIdTagManager();
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_SENSOR, deviceName, 4, "5");
|
|
bean = InstanceManager.getDefault(SensorManager.class).provideSensor(deviceName);
|
|
assertEquals( bean, ix1.getBean(), "getActionBean() returns correct bean");
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, deviceName, 4, "5");
|
|
bean = InstanceManager.getDefault(TurnoutManager.class).provideTurnout(deviceName);
|
|
assertEquals( bean, ix1.getBean(), "getActionBean() returns correct bean");
|
|
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_MEMORY, deviceName, 4, "5");
|
|
bean = InstanceManager.getDefault(MemoryManager.class).provideMemory(deviceName);
|
|
assertEquals( bean, ix1.getBean(), "getActionBean() returns correct bean");
|
|
|
|
bean = InstanceManager.getDefault(LightManager.class).provideLight(deviceName);
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_LIGHT, bean.getSystemName(), 4, "5");
|
|
assertEquals( bean, ix1.getBean(), "getActionBean() returns correct bean");
|
|
|
|
// Note that the signal head IH1 created here are also used to test the signal mast.
|
|
SignalHead signalHead = new VirtualSignalHead("IH1");
|
|
InstanceManager.getDefault(SignalHeadManager.class).register(signalHead);
|
|
bean = InstanceManager.getDefault(SignalHeadManager.class).getSignalHead("IH1");
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_SIGNAL_APPEARANCE, "IH1", 4, "5");
|
|
assertEquals( bean, ix1.getBean(), "getActionBean() returns correct bean");
|
|
|
|
// The signal head IH1 created above is also used here in signal mast IF$shsm:AAR-1946:CPL(IH1)
|
|
bean = InstanceManager.getDefault(SignalMastManager.class).provideSignalMast("IF$shsm:AAR-1946:CPL(IH1)");
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_SIGNALMAST_HELD, "IF$shsm:AAR-1946:CPL(IH1)", 4, "5");
|
|
assertEquals( bean, ix1.getBean(), "getActionBean() returns correct bean");
|
|
|
|
bean = InstanceManager.getDefault(WarrantManager.class).provideWarrant("IW3");
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.MANUAL_RUN_WARRANT, "IW3", 4, "5");
|
|
assertEquals( bean, ix1.getBean(), "getActionBean() returns correct bean");
|
|
|
|
bean = InstanceManager.getDefault(OBlockManager.class).provideOBlock("OB3");
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_BLOCK_VALUE, "OB3", 4, "5");
|
|
assertEquals( bean, ix1.getBean(), "getActionBean() returns correct bean");
|
|
|
|
bean = InstanceManager.getDefault(RouteManager.class).newRoute(deviceName);
|
|
ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.TRIGGER_ROUTE, deviceName, 4, "5");
|
|
assertEquals( bean, ix1.getBean(), "getActionBean() returns correct bean");
|
|
}
|
|
|
|
@Test
|
|
public void testDescription() {
|
|
final String deviceName = "3";
|
|
final String actionStr = "5";
|
|
|
|
ConditionalAction ix1 = new DefaultConditionalAction(ACTION_OPTION_ON_CHANGE_TO_TRUE, Conditional.Action.SET_TURNOUT, deviceName, Turnout.THROWN, actionStr);
|
|
|
|
ix1.setType(Conditional.Action.CANCEL_TURNOUT_TIMERS);
|
|
ix1.setActionData(Turnout.INDIRECT);
|
|
assertEquals( "When Triggered True, Cancel Timers for Turnout, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Cancel Timers for Turnout, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_SIGNAL_HELD);
|
|
ix1.setActionData(SignalHead.YELLOW);
|
|
assertEquals( "When Triggered True, Set Signal Head Held, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Signal Head Held, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.CLEAR_SIGNAL_HELD);
|
|
ix1.setActionData(SignalHead.YELLOW);
|
|
assertEquals( "When Triggered True, Clear Signal Head Held, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Clear Signal Head Held, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_SIGNAL_DARK);
|
|
ix1.setActionData(SignalHead.YELLOW);
|
|
assertEquals( "When Triggered True, Set Signal Head Dark, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Signal Head Dark, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_SIGNAL_LIT);
|
|
ix1.setActionData(SignalHead.YELLOW);
|
|
assertEquals( "When Triggered True, Set Signal Head Lit, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Signal Head Lit, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.TRIGGER_ROUTE);
|
|
ix1.setActionData(Route.ONTHROWN);
|
|
assertEquals( "When Triggered True, Trigger Route, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Trigger Route, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.CANCEL_SENSOR_TIMERS);
|
|
ix1.setActionData(Sensor.INACTIVE);
|
|
assertEquals( "When Triggered True, Cancel Timers for Sensor, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Cancel Timers for Sensor, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_MEMORY);
|
|
ix1.setActionData(Memory.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Set Memory, \"3\". to 5.",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Memory, \"3\". to 5.",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.ENABLE_LOGIX);
|
|
ix1.setActionData(Logix.LISTENER_TYPE_CONDITIONAL);
|
|
assertEquals( "When Triggered True, Enable Logix, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Enable Logix, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.DISABLE_LOGIX);
|
|
ix1.setActionData(Logix.LISTENER_TYPE_CONDITIONAL);
|
|
assertEquals( "When Triggered True, Disable Logix, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Disable Logix, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.COPY_MEMORY);
|
|
ix1.setActionData(Memory.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Copy Memory To Memory, \"3\". to 5.",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Copy Memory To Memory, \"3\". to 5.",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_LIGHT_INTENSITY);
|
|
ix1.setActionData(Light.TIMED_ON_CONTROL);
|
|
assertEquals( "When Triggered True, Set Light Intensity, \"3\". to 5. to 4.",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Light Intensity, \"3\". to 5. to 4.",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_LIGHT_TRANSITION_TIME);
|
|
ix1.setActionData(Light.TIMED_ON_CONTROL);
|
|
assertEquals( "When Triggered True, Set Light Transition Time, \"3\". to 5. to 4.",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Light Transition Time, \"3\". to 5. to 4.",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.ALLOCATE_WARRANT_ROUTE);
|
|
ix1.setActionData(Warrant.RETRY_FWD);
|
|
assertEquals( "When Triggered True, Allocate Warrant Route, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Allocate Warrant Route, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.DEALLOCATE_WARRANT_ROUTE);
|
|
ix1.setActionData(Warrant.RETRY_FWD);
|
|
assertEquals( "When Triggered True, Deallocate Warrant, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Deallocate Warrant, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_SIGNALMAST_HELD);
|
|
ix1.setActionData(SignalMast.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Set Signal Mast Held, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Signal Mast Held, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.CLEAR_SIGNALMAST_HELD);
|
|
ix1.setActionData(SignalMast.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Clear Signal Mast Held, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Clear Signal Mast Held, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_SIGNALMAST_DARK);
|
|
ix1.setActionData(SignalMast.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Set Signal Mast Dark, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Signal Mast Dark, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_SIGNALMAST_LIT);
|
|
ix1.setActionData(SignalMast.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Clear Signal Mast Dark, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Clear Signal Mast Dark, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_BLOCK_ERROR);
|
|
ix1.setActionData(Block.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Set Block Error, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Block Error, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.CLEAR_BLOCK_ERROR);
|
|
ix1.setActionData(Block.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Clear Block Error, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Clear Block Error, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.DEALLOCATE_BLOCK);
|
|
ix1.setActionData(Block.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Deallocate Block, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Deallocate Block, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_BLOCK_OUT_OF_SERVICE);
|
|
ix1.setActionData(Block.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Set Block OutOfService, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Block OutOfService, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_BLOCK_IN_SERVICE);
|
|
ix1.setActionData(Block.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Clear Block OutOfService, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Clear Block OutOfService, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_NXPAIR_ENABLED);
|
|
assertEquals( "When Triggered True, Set NX Pair Enabled, \"null\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set NX Pair Enabled, \"null\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_NXPAIR_DISABLED);
|
|
assertEquals( "When Triggered True, Set NX Pair Disabled, \"null\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set NX Pair Disabled, \"null\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_NXPAIR_SEGMENT);
|
|
assertEquals( "When Triggered True, Set NX Pair Segment Active / Inactive, \"null\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set NX Pair Segment Active / Inactive, \"null\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_ROUTE_TURNOUTS);
|
|
ix1.setActionData(Route.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Set Route Turnouts of Warrant, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Route Turnouts of Warrant, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.AUTO_RUN_WARRANT);
|
|
ix1.setActionData(Warrant.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Auto Run Train of Warrant, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Auto Run Train of Warrant, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.MANUAL_RUN_WARRANT);
|
|
ix1.setActionData(Warrant.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Manually Run Train of Warrant, \"3\".",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Manually Run Train of Warrant, \"3\".",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_SENSOR);
|
|
ix1.setActionData(Sensor.INACTIVE);
|
|
assertEquals( "When Triggered True, Set Sensor, \"3\" to Inactive",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Sensor, \"3\" to Inactive",
|
|
ix1.description(true));
|
|
|
|
ix1.setType(Conditional.Action.SET_TURNOUT);
|
|
ix1.setActionData(Turnout.THROWN);
|
|
assertEquals( "When Triggered True, Set Turnout, \"3\" to Thrown",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Turnout, \"3\" to Thrown",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_LIGHT);
|
|
ix1.setActionData(Light.OFF);
|
|
assertEquals( "When Triggered True, Set Light, \"3\" to Off",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Light, \"3\" to Off",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.LOCK_TURNOUT);
|
|
ix1.setActionData(Turnout.LOCKED);
|
|
assertEquals( "When Triggered True, Turnout Lock, \"3\" to Lock",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Turnout Lock, \"3\" to Lock",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.RESET_DELAYED_SENSOR);
|
|
ix1.setActionData(Sensor.INACTIVE);
|
|
assertEquals( "When Triggered True, Reset Delayed Set Sensor, \"3\" to Inactive, after 5 seconds.",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Reset Delayed Set Sensor, \"3\" to Inactive, after 5 seconds.",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_SIGNAL_APPEARANCE);
|
|
ix1.setActionData(SignalHead.YELLOW);
|
|
assertEquals( "When Triggered True, Set Signal Head Appearance, \"3\" to Yellow",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Signal Head Appearance, \"3\" to Yellow",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.RESET_DELAYED_TURNOUT);
|
|
ix1.setActionData(Turnout.THROWN);
|
|
assertEquals( "When Triggered True, Reset Delayed Set Turnout, \"3\" to Thrown, after 5 seconds.",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Reset Delayed Set Turnout, \"3\" to Thrown, after 5 seconds.",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.DELAYED_TURNOUT);
|
|
ix1.setActionData(Turnout.THROWN);
|
|
assertEquals( "When Triggered True, Delayed Set Turnout, \"3\" to Thrown, after 5 seconds.",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Delayed Set Turnout, \"3\" to Thrown, after 5 seconds.",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.DELAYED_SENSOR);
|
|
ix1.setActionData(Sensor.INACTIVE);
|
|
assertEquals( "When Triggered True, Delayed Set Sensor, \"3\" to Inactive, after 5 seconds.",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Delayed Set Sensor, \"3\" to Inactive, after 5 seconds.",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.CONTROL_AUDIO);
|
|
ix1.setActionData(Audio.CMD_PLAY);
|
|
assertEquals( "When Triggered True, Control Audio object, \"3\" to Play",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Control Audio object, \"3\" to Play",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.SET_SIGNALMAST_ASPECT);
|
|
ix1.setActionData(SignalMast.INCONSISTENT);
|
|
assertEquals( "When Triggered True, Set Signal Mast Aspect, \"3\" to 5",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Set Signal Mast Aspect, \"3\" to 5",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
ix1.setType(Conditional.Action.CONTROL_TRAIN);
|
|
ix1.setActionData(Warrant.ABORT);
|
|
assertEquals( "When Triggered True, Control Auto Train of Warrant \"3\" to Abort",
|
|
ix1.description(false), "description() returns correct value");
|
|
assertEquals( "On Change To True, Control Auto Train of Warrant \"3\" to Abort",
|
|
ix1.description(true), "description() returns correct value");
|
|
|
|
// ix1.setType(-1);
|
|
// ix1.setActionData(NamedBean.INCONSISTENT);
|
|
// Assert.assertTrue("description() returns correct value",
|
|
// "When Triggered True, ".equals(ix1.description(false)));
|
|
// JUnitAppender.assertWarnMessage("Unexpected parameter to getActionTypeString(-1)");
|
|
// Assert.assertTrue("description() returns correct value",
|
|
// "On Change To True, ".equals(ix1.description(true)));
|
|
// JUnitAppender.assertWarnMessage("Unexpected parameter to getActionTypeString(-1)");
|
|
}
|
|
|
|
|
|
// from here down is testing infrastructure
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
JUnitUtil.resetInstanceManager();
|
|
JUnitUtil.initInternalTurnoutManager();
|
|
JUnitUtil.initInternalLightManager();
|
|
JUnitUtil.initInternalSensorManager();
|
|
JUnitUtil.initDefaultSignalMastManager();
|
|
JUnitUtil.initSignalMastLogicManager();
|
|
JUnitUtil.initWarrantManager();
|
|
JUnitUtil.initOBlockManager();
|
|
JUnitUtil.initRouteManager();
|
|
JUnitUtil.initIdTagManager();
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
}
|