195 lines
11 KiB
Java
195 lines
11 KiB
Java
package jmri.jmrit.operations.locations;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.mockito.Mockito;
|
|
|
|
import jmri.InstanceManager;
|
|
import jmri.Reporter;
|
|
import jmri.implementation.decorators.TimeoutReporter;
|
|
import jmri.jmrit.operations.OperationsTestCase;
|
|
import jmri.jmrit.operations.locations.divisions.Division;
|
|
import jmri.jmrit.operations.rollingstock.cars.CarLoad;
|
|
import jmri.jmrit.operations.trains.Train;
|
|
import jmri.jmrit.operations.trains.TrainManager;
|
|
import jmri.util.JUnitOperationsUtil;
|
|
|
|
/**
|
|
*
|
|
* @author Paul Bender Copyright (C) 2017
|
|
*/
|
|
public class LocationManagerTest extends OperationsTestCase {
|
|
|
|
@Test
|
|
public void testCTor() {
|
|
LocationManager t = new LocationManager();
|
|
Assert.assertNotNull("exists", t);
|
|
}
|
|
|
|
@Test
|
|
public void testHasWork() {
|
|
JUnitOperationsUtil.initOperationsData();
|
|
LocationManager lm = InstanceManager.getDefault(LocationManager.class);
|
|
Assert.assertNotNull("exists", lm);
|
|
Assert.assertFalse(lm.hasWork());
|
|
Train train1 = InstanceManager.getDefault(TrainManager.class).getTrainByName("STF");
|
|
Assert.assertNotNull("train exists", train1);
|
|
Assert.assertTrue(train1.build());
|
|
Assert.assertTrue(lm.hasWork());
|
|
|
|
JUnitOperationsUtil.checkOperationsShutDownTask();
|
|
}
|
|
|
|
@Test
|
|
public void testReplaceShipLoadNames() {
|
|
JUnitOperationsUtil.createTwoStagingLocations();
|
|
LocationManager lm = InstanceManager.getDefault(LocationManager.class);
|
|
Assert.assertNotNull("exists", lm);
|
|
Location northEndStaging = lm.getLocationByName("North End Staging");
|
|
Assert.assertNotNull("exists", northEndStaging);
|
|
Track staging = northEndStaging.getTrackByName("North End 1", null);
|
|
Assert.assertNotNull("exists", staging);
|
|
staging.addShipLoadName("Boxes");
|
|
staging.addShipLoadName("Boxcar" + CarLoad.SPLIT_CHAR + "Paper");
|
|
staging.addShipLoadName("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts");
|
|
staging.setShipLoadOption(Track.INCLUDE_LOADS);
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxes"));
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("boxes"));
|
|
|
|
lm.replaceLoad("Boxcar", "Boxes", "boxes");
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("boxes"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("Boxes"));
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts"));
|
|
|
|
lm.replaceLoad("Boxcar", "Paper", "tissue");
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("boxes"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("Boxes"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "tissue"));
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts"));
|
|
|
|
lm.replaceLoad("Boxcar", "boxes", null);
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("boxes"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("Boxes"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "tissue"));
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts"));
|
|
|
|
lm.replaceLoad("boxcar", "Nuts", null);
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("boxes"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("Boxes"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "tissue"));
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts"));
|
|
|
|
lm.replaceLoad("Boxcar", "Nuts", null);
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("boxes"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("Boxes"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertTrue("load is accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "tissue"));
|
|
Assert.assertFalse("load is not accepted", staging.isLoadNameShipped("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts"));
|
|
}
|
|
|
|
@Test
|
|
public void testReplaceLoadNames() {
|
|
JUnitOperationsUtil.createSevenNormalLocations();
|
|
LocationManager lm = InstanceManager.getDefault(LocationManager.class);
|
|
Assert.assertNotNull("exists", lm);
|
|
Location boston = lm.getLocationByName("Boston");
|
|
Assert.assertNotNull("exists", boston);
|
|
Track spur = boston.getTrackByName("Boston Spur 1", null);
|
|
Assert.assertNotNull("exists", spur);
|
|
spur.addLoadName("Boxes");
|
|
spur.addLoadName("Boxcar" + CarLoad.SPLIT_CHAR + "Paper");
|
|
spur.addLoadName("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts");
|
|
spur.setLoadOption(Track.INCLUDE_LOADS);
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxes"));
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("boxes"));
|
|
|
|
lm.replaceLoad("Boxcar", "Boxes", "boxes");
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("boxes"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("Boxes"));
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts"));
|
|
|
|
lm.replaceLoad("Boxcar", "Paper", "tissue");
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("boxes"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("Boxes"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "tissue"));
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts"));
|
|
|
|
lm.replaceLoad("Boxcar", "boxes", null);
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("boxes"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("Boxes"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "tissue"));
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts"));
|
|
|
|
lm.replaceLoad("boxcar", "Nuts", null);
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("boxes"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("Boxes"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "tissue"));
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts"));
|
|
|
|
lm.replaceLoad("Boxcar", "Nuts", null);
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("boxes"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("Boxes"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Paper"));
|
|
Assert.assertTrue("load is accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "tissue"));
|
|
Assert.assertFalse("load is not accepted", spur.isLoadNameAccepted("Boxcar" + CarLoad.SPLIT_CHAR + "Nuts"));
|
|
}
|
|
|
|
@Test
|
|
public void testHasReporters() {
|
|
JUnitOperationsUtil.initOperationsData();
|
|
LocationManager lm = InstanceManager.getDefault(LocationManager.class);
|
|
Assert.assertNotNull("exists", lm);
|
|
Assert.assertFalse(lm.hasReporters());
|
|
}
|
|
|
|
@Test
|
|
public void testHasDivisions() {
|
|
JUnitOperationsUtil.createSevenNormalLocations();
|
|
LocationManager lm = InstanceManager.getDefault(LocationManager.class);
|
|
Assert.assertNotNull("exists", lm);
|
|
Location boston = lm.getLocationByName("Boston");
|
|
Assert.assertNotNull("exists", boston);
|
|
Assert.assertFalse(lm.hasDivisions());
|
|
boston.setDivision(new Division("testId", "testName"));
|
|
Assert.assertTrue(lm.hasDivisions());
|
|
}
|
|
|
|
@Test
|
|
void getTrackByReporter() {
|
|
JUnitOperationsUtil.initOperationsData();
|
|
LocationManager lm = InstanceManager.getDefault(LocationManager.class);
|
|
Reporter baseReporter= Mockito.mock(Reporter.class);
|
|
Mockito.when(baseReporter.getSystemName()).thenReturn("foo");
|
|
TimeoutReporter timeoutReporter = new TimeoutReporter(baseReporter);
|
|
Location expectedLocation = lm.getLocationByName("North Industries");
|
|
Track expected = expectedLocation.getTracksList().get(0);
|
|
expected.setReporter(timeoutReporter);
|
|
Assert.assertEquals(expected,lm.getTrackByReporter(timeoutReporter));
|
|
Assert.assertEquals(expected,lm.getTrackByReporter(baseReporter));
|
|
}
|
|
|
|
@Test
|
|
void getLocationByReporter() {
|
|
JUnitOperationsUtil.initOperationsData();
|
|
LocationManager lm = InstanceManager.getDefault(LocationManager.class);
|
|
Reporter baseReporter= Mockito.mock(Reporter.class);
|
|
Mockito.when(baseReporter.getSystemName()).thenReturn("foo");
|
|
Location expected = lm.getLocationByName("North Industries");
|
|
TimeoutReporter timeoutReporter = new TimeoutReporter(baseReporter);
|
|
expected.setReporter(timeoutReporter);
|
|
Assert.assertEquals(expected,lm.getLocationByReporter(timeoutReporter));
|
|
Assert.assertEquals(expected,lm.getLocationByReporter(baseReporter));
|
|
}
|
|
|
|
}
|