152 lines
6.9 KiB
Java
152 lines
6.9 KiB
Java
package jmri.jmrit.operations.automation;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import jmri.InstanceManager;
|
|
import jmri.jmrit.operations.OperationsTestCase;
|
|
import jmri.jmrit.operations.automation.actions.*;
|
|
import jmri.jmrit.operations.locations.Location;
|
|
import jmri.jmrit.operations.routes.RouteLocation;
|
|
import jmri.jmrit.operations.trains.Train;
|
|
import jmri.jmrit.operations.trains.schedules.TrainSchedule;
|
|
import jmri.jmrit.operations.trains.schedules.TrainScheduleManager;
|
|
|
|
public class AutomationItemTest extends OperationsTestCase {
|
|
|
|
@Test
|
|
public void testDefaults() {
|
|
AutomationItem automationItem = new AutomationItem("TestId");
|
|
Assert.assertNotNull("test creation", automationItem);
|
|
Assert.assertEquals("test id", "TestId", automationItem.getId());
|
|
Assert.assertEquals("test id", "TestId", automationItem.toString());
|
|
Assert.assertEquals(ActionCodes.NO_ACTION, automationItem.getActionCode());
|
|
Assert.assertEquals("Do Nothing", automationItem.getAction().getName());
|
|
Assert.assertEquals("Do Nothing", automationItem.getActionName());
|
|
Assert.assertEquals("", automationItem.getMessage());
|
|
Assert.assertEquals("", automationItem.getMessageFail());
|
|
Assert.assertEquals(0, automationItem.getSequenceId());
|
|
Assert.assertEquals("", automationItem.getStatus());
|
|
Assert.assertEquals("", automationItem.getTrainScheduleId());
|
|
|
|
Assert.assertEquals(null, automationItem.getAutomationToRun());
|
|
Assert.assertEquals(null, automationItem.getGotoAutomationItem());
|
|
Assert.assertEquals(null, automationItem.getRouteLocation());
|
|
Assert.assertEquals(null, automationItem.getTrain());
|
|
Assert.assertEquals(null, automationItem.getTrainSchedule());
|
|
|
|
// static tests
|
|
Assert.assertEquals("Do Nothing", AutomationItem.getActionByCode(0x0000).getName()); // there isn't a code 0x0000 action
|
|
Assert.assertEquals("Number of actions", 36, AutomationItem.getActionComboBox().getItemCount());
|
|
Assert.assertEquals("Number of actions", 36, AutomationItem.getActionList().size());
|
|
}
|
|
|
|
@Test
|
|
public void testMessages() {
|
|
AutomationItem automationItem = new AutomationItem("TestId");
|
|
Assert.assertNotNull("test creation", automationItem);
|
|
Assert.assertEquals("test id", "TestId", automationItem.getId());
|
|
|
|
automationItem.setMessage("Test OK message");
|
|
Assert.assertEquals("Test OK message", automationItem.getMessage());
|
|
Assert.assertEquals("", automationItem.getMessageFail());
|
|
|
|
automationItem.setMessageFail("Test Fail message");
|
|
Assert.assertEquals("Test OK message", automationItem.getMessage());
|
|
Assert.assertEquals("Test Fail message", automationItem.getMessageFail());
|
|
}
|
|
|
|
@Test
|
|
public void testAutomationToRun() {
|
|
AutomationItem automationItem = new AutomationItem("TestId");
|
|
Assert.assertNotNull("test creation", automationItem);
|
|
Assert.assertEquals("test id", "TestId", automationItem.getId());
|
|
|
|
Automation automation = new Automation("101", "testAutomationName");
|
|
automationItem.setAutomationToRun(automation);
|
|
Assert.assertEquals("Do nothing action can't have an automation assignment", null, automationItem.getAutomationToRun());
|
|
|
|
automationItem.setAction(new RunAutomationAction());
|
|
Assert.assertEquals("Automation hasn't been registered with manager", null, automationItem.getAutomationToRun());
|
|
|
|
AutomationManager manager = InstanceManager.getDefault(AutomationManager.class);
|
|
manager.register(automation);
|
|
|
|
Assert.assertEquals("Run automation action now registered", automation, automationItem.getAutomationToRun());
|
|
|
|
automationItem.setAutomationToRun(null);
|
|
Assert.assertEquals(null, automationItem.getAutomationToRun());
|
|
|
|
automationItem.setOther(automation);
|
|
Assert.assertEquals(automation, automationItem.getAutomationToRun());
|
|
}
|
|
|
|
@Test
|
|
public void testGotoAutomationItem() {
|
|
AutomationManager manager = InstanceManager.getDefault(AutomationManager.class);
|
|
Automation automation = manager.newAutomation("testAutomationGoto");
|
|
AutomationItem item1 = automation.addItem();
|
|
AutomationItem item2 = automation.addItem();
|
|
|
|
item1.setGotoAutomationItem(item2);
|
|
Assert.assertEquals("Do nothing action can't have a goto item", null, item1.getGotoAutomationItem());
|
|
|
|
item1.setAction(new GotoAction());
|
|
Assert.assertEquals(item2, item1.getGotoAutomationItem());
|
|
|
|
item1.setGotoAutomationItem(null);
|
|
Assert.assertEquals(null, item1.getGotoAutomationItem());
|
|
|
|
item1.setOther(item2);
|
|
Assert.assertEquals(item2, item1.getGotoAutomationItem());
|
|
}
|
|
|
|
@Test
|
|
public void testRouteLocation() {
|
|
AutomationItem automationItem = new AutomationItem("TestId");
|
|
Assert.assertNotNull("test creation", automationItem);
|
|
Assert.assertEquals("test id", "TestId", automationItem.getId());
|
|
|
|
RouteLocation rl = new RouteLocation("testId", new Location("testId", "testLocationName"));
|
|
automationItem.setRouteLocation(rl);
|
|
Assert.assertEquals("Do nothing action can't have a routeLocation", null, automationItem.getRouteLocation());
|
|
|
|
automationItem.setAction(new WaitTrainAction());
|
|
Assert.assertEquals(rl, automationItem.getRouteLocation());
|
|
}
|
|
|
|
@Test
|
|
public void testTrain() {
|
|
AutomationItem automationItem = new AutomationItem("TestId");
|
|
Assert.assertNotNull("test creation", automationItem);
|
|
Assert.assertEquals("test id", "TestId", automationItem.getId());
|
|
|
|
Train train = new Train("TestTrainId", "TestTrainName");
|
|
automationItem.setTrain(train);
|
|
Assert.assertEquals("Do nothing action can't have a train assignment", null, automationItem.getTrain());
|
|
|
|
automationItem.setAction(new BuildTrainAction());
|
|
Assert.assertEquals("Build train action", train, automationItem.getTrain());
|
|
}
|
|
|
|
@Test
|
|
public void testTrainSchedule() {
|
|
AutomationItem automationItem = new AutomationItem("TestId");
|
|
Assert.assertNotNull("test creation", automationItem);
|
|
Assert.assertEquals("test id", "TestId", automationItem.getId());
|
|
|
|
TrainSchedule trainSchedule = InstanceManager.getDefault(TrainScheduleManager.class).newSchedule("TestScheduleName");
|
|
automationItem.setTrainSchedule(trainSchedule);
|
|
|
|
Assert.assertEquals("Do nothing action can't have a train schedule assignment", null, automationItem.getTrainSchedule());
|
|
automationItem.setAction(new ActivateTrainScheduleAction());
|
|
Assert.assertEquals(trainSchedule, automationItem.getTrainSchedule());
|
|
|
|
automationItem.setTrainSchedule(null);
|
|
Assert.assertEquals(null, automationItem.getTrainSchedule());
|
|
|
|
automationItem.setOther(trainSchedule);
|
|
Assert.assertEquals(trainSchedule, automationItem.getTrainSchedule());
|
|
}
|
|
}
|