package jmri.jmrit.operations.rollingstock.engines; import java.util.List; import org.junit.Assert; import org.junit.jupiter.api.Test; import jmri.InstanceManager; import jmri.jmrit.operations.OperationsTestCase; import jmri.jmrit.operations.locations.Location; import jmri.jmrit.operations.locations.Track; import jmri.jmrit.operations.routes.Route; import jmri.jmrit.operations.trains.Train; /** * Tests for the Operations RollingStock Engine class Last manually * cross-checked on 20090131 *

* Still to do: Engine: Destination Engine: Verify everything else EngineTypes: * get/set Names lists EngineModels: get/set Names lists EngineLengths: * Everything Consist: Everything Import: Everything EngineManager: Engine * register/deregister EngineManager: Consists * * @author Bob Coleman Copyright (C) 2008, 2009 */ public class EngineManagerTest extends OperationsTestCase { private Engine e1; private Engine e2; private Engine e3; private Engine e4; private Engine e5; private Engine e6; private Location l1; private Location l2; private Location l3; @Test public void testCTor() { EngineManager manager = InstanceManager.getDefault(EngineManager.class); Assert.assertNotNull("Manager Creation", manager); } @Test public void testAddEngines() { EngineManager manager = InstanceManager.getDefault(EngineManager.class); List engineList = manager.getByIdList(); Assert.assertEquals("Starting Number of Engines", 0, engineList.size()); e1 = manager.newRS("CP", "1"); e2 = manager.newRS("ACL", "3"); e3 = manager.newRS("CP", "3"); e4 = manager.newRS("CP", "3-1"); e5 = manager.newRS("PC", "2"); e6 = manager.newRS("AA", "1"); engineList = manager.getByIdList(); Assert.assertEquals("Finishing Number of Engines", 6, engineList.size()); manager.dispose(); engineList = manager.getByIdList(); Assert.assertEquals("After dispose Number of Engines", 0, engineList.size()); } @Test public void testListEnginesById() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // now get engines by id List engineList = manager.getByIdList(); Assert.assertEquals("Number of Engines by id", 6, engineList.size()); Assert.assertEquals("1st engine in list by id", e6, engineList.get(0)); Assert.assertEquals("2nd engine in list by id", e2, engineList.get(1)); Assert.assertEquals("3rd engine in list by id", e1, engineList.get(2)); Assert.assertEquals("4th engine in list by id", e3, engineList.get(3)); Assert.assertEquals("5th engine in list by id", e4, engineList.get(4)); Assert.assertEquals("6th engine in list by id", e5, engineList.get(5)); } @Test public void testListEnginesByBuildDate() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // setup the engines e1.setBuilt("2016"); e2.setBuilt("1212"); e3.setBuilt("100"); // this stays 100 e4.setBuilt("10"); // this becomes 1910 e5.setBuilt("07-55"); // this becomes 1955 e6.setBuilt("1956"); // now get engines by built List engineList = manager.getByBuiltList(); Assert.assertEquals("Number of Engines by built", 6, engineList.size()); Assert.assertEquals("1st engine in list by built", e3, engineList.get(0)); Assert.assertEquals("2nd engine in list by built", e2, engineList.get(1)); Assert.assertEquals("3rd engine in list by built", e4, engineList.get(2)); Assert.assertEquals("4th engine in list by built", e5, engineList.get(3)); Assert.assertEquals("5th engine in list by built", e6, engineList.get(4)); Assert.assertEquals("6th engine in list by built", e1, engineList.get(5)); } @Test public void testListEnginesByMoves() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // setup the engines e1.setMoves(2); e2.setMoves(44); e3.setMoves(99999); e4.setMoves(33); e5.setMoves(4); e6.setMoves(9999); // now get engines by moves List engineList = manager.getByMovesList(); Assert.assertEquals("Number of Engines by move", 6, engineList.size()); Assert.assertEquals("1st engine in list by move", e1, engineList.get(0)); Assert.assertEquals("2nd engine in list by move", e5, engineList.get(1)); Assert.assertEquals("3rd engine in list by move", e4, engineList.get(2)); Assert.assertEquals("4th engine in list by move", e2, engineList.get(3)); Assert.assertEquals("5th engine in list by move", e6, engineList.get(4)); Assert.assertEquals("6th engine in list by move", e3, engineList.get(5)); } @Test public void testListEnginesByOwner() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // setup the engines e1.setOwnerName("LAST"); e2.setOwnerName("FOOL"); e3.setOwnerName("AAA"); e4.setOwnerName("DAD"); e5.setOwnerName("DAB"); e6.setOwnerName("BOB"); // now get engines by owner List engineList = manager.getByOwnerList(); Assert.assertEquals("Number of Engines by owner", 6, engineList.size()); Assert.assertEquals("1st engine in list by owner", e3, engineList.get(0)); Assert.assertEquals("2nd engine in list by owner", e6, engineList.get(1)); Assert.assertEquals("3rd engine in list by owner", e5, engineList.get(2)); Assert.assertEquals("4th engine in list by owner", e4, engineList.get(3)); Assert.assertEquals("5th engine in list by owner", e2, engineList.get(4)); Assert.assertEquals("6th engine in list by owner", e1, engineList.get(5)); } @Test public void testListEnginesByRoadName() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // now get engines by road name List engineList = manager.getByRoadNameList(); Assert.assertEquals("Number of Engines by road name", 6, engineList.size()); Assert.assertEquals("1st engine in list by road name", e6, engineList.get(0)); Assert.assertEquals("2nd engine in list by road name", e2, engineList.get(1)); Assert.assertEquals("3rd engine in list by road name", e1, engineList.get(2)); Assert.assertEquals("4th engine in list by road name", e3, engineList.get(3)); Assert.assertEquals("5th engine in list by road name", e4, engineList.get(4)); Assert.assertEquals("6th engine in list by road name", e5, engineList.get(5)); } @Test public void testListEnginesByConsist() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // setup the engines e1.setConsist(new Consist("F")); e2.setConsist(new Consist("D")); e3.setConsist(new Consist("B")); e4.setConsist(new Consist("A")); e5.setConsist(new Consist("C")); e6.setConsist(new Consist("E")); // now get engines by consist List engineList = manager.getByConsistList(); Assert.assertEquals("Number of Engines by consist", 6, engineList.size()); Assert.assertEquals("1st engine in list by consist", e4, engineList.get(0)); Assert.assertEquals("2nd engine in list by consist", e3, engineList.get(1)); Assert.assertEquals("3rd engine in list by consist", e5, engineList.get(2)); Assert.assertEquals("4th engine in list by consist", e2, engineList.get(3)); Assert.assertEquals("5th engine in list by consist", e6, engineList.get(4)); Assert.assertEquals("6th engine in list by consist", e1, engineList.get(5)); } @Test public void testListEnginesByLocation() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // now get engines by location List engineList = manager.getByLocationList(); Assert.assertEquals("Number of Engines by location", 6, engineList.size()); Assert.assertEquals("1st engine in list by location", e6, engineList.get(0)); Assert.assertEquals("2nd engine in list by location", e5, engineList.get(1)); Assert.assertEquals("3rd engine in list by location", e1, engineList.get(2)); Assert.assertEquals("4th engine in list by location", e2, engineList.get(3)); Assert.assertEquals("5th engine in list by location", e4, engineList.get(4)); Assert.assertEquals("6th engine in list by location", e3, engineList.get(5)); } @Test public void testListEnginesByDestination() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // now get engines by destination List engineList = manager.getByDestinationList(); Assert.assertEquals("Number of Engines by destination", 6, engineList.size()); Assert.assertEquals("1st engine in list by destination", e2, engineList.get(0)); Assert.assertEquals("2nd engine in list by destination", e1, engineList.get(1)); Assert.assertEquals("3rd engine in list by destination", e5, engineList.get(2)); Assert.assertEquals("4th engine in list by destination", e6, engineList.get(3)); Assert.assertEquals("5th engine in list by destination", e3, engineList.get(4)); Assert.assertEquals("6th engine in list by destination", e4, engineList.get(5)); } @Test public void testListEnginesByTrain() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); Route r = new Route("id", "Test"); r.addLocation(l1); r.addLocation(l2); r.addLocation(l3); Train t1 = new Train("id1", "F"); t1.setRoute(r); Train t3 = new Train("id3", "E"); t3.setRoute(r); // setup the engines e1.setTrain(t1); e2.setTrain(t3); e3.setTrain(t3); e4.setTrain(new Train("id4", "B")); e5.setTrain(t3); e6.setTrain(new Train("id6", "A")); // now get engines by train List engineList = manager.getByTrainList(); Assert.assertEquals("Number of Engines by train", 6, engineList.size()); Assert.assertEquals("1st engine in list by train", e6, engineList.get(0)); Assert.assertEquals("2nd engine in list by train", e4, engineList.get(1)); Assert.assertEquals("3rd engine in list by train", e5, engineList.get(2)); Assert.assertEquals("4th engine in list by train", e2, engineList.get(3)); Assert.assertEquals("5th engine in list by train", e3, engineList.get(4)); Assert.assertEquals("6th engine in list by train", e1, engineList.get(5)); } @Test public void testListEnginesBySpecifiedTrain() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); Route r = new Route("id", "Test"); r.addLocation(l1); r.addLocation(l2); r.addLocation(l3); Train t1 = new Train("id1", "F"); t1.setRoute(r); Train t3 = new Train("id3", "E"); t3.setRoute(r); // setup the engines e1.setTrain(t1); e2.setTrain(t3); e3.setTrain(t3); e4.setTrain(new Train("id4", "B")); e5.setTrain(t3); e6.setTrain(new Train("id6", "A")); // now get engines by specific train List engineList = manager.getByTrainBlockingList(t1); Assert.assertEquals("Number of Engines in t1", 1, engineList.size()); Assert.assertEquals("1st engine in list by t1", e1, engineList.get(0)); engineList = manager.getByTrainBlockingList(t3); Assert.assertEquals("Number of Engines in t3", 3, engineList.size()); Assert.assertEquals("1st engine in list by t3", e5, engineList.get(0)); Assert.assertEquals("2nd engine in list by t3", e2, engineList.get(1)); Assert.assertEquals("3rd engine in list by t3", e3, engineList.get(2)); } @Test public void testListAvaialbleEngines() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); Route r = new Route("id", "Test"); r.addLocation(l1); r.addLocation(l2); r.addLocation(l3); Train t1 = new Train("id1", "F"); t1.setRoute(r); Train t3 = new Train("id3", "E"); t3.setRoute(r); // setup the engines e1.setTrain(t1); e2.setTrain(t3); e3.setTrain(t3); e4.setTrain(new Train("id4", "B")); e5.setTrain(t3); e6.setTrain(new Train("id6", "A")); // now get engines by specific train // how many engines available? List engineList = manager.getAvailableTrainList(t1); Assert.assertEquals("Number of Engines available for t1", 1, engineList.size()); Assert.assertEquals("1st engine in list available for t1", e1, engineList.get(0)); engineList = manager.getAvailableTrainList(t3); Assert.assertEquals("Number of Engines available for t3", 3, engineList.size()); Assert.assertEquals("1st engine in list available for t3", e5, engineList.get(0)); Assert.assertEquals("2nd engine in list available for t3", e2, engineList.get(1)); Assert.assertEquals("3rd engine in list available for t3", e3, engineList.get(2)); } @Test public void testAvailableAfterReleaseFromTrain() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); Route r = new Route("id", "Test"); r.addLocation(l1); r.addLocation(l2); r.addLocation(l3); Train t1 = new Train("id1", "F"); t1.setRoute(r); Train t3 = new Train("id3", "E"); t3.setRoute(r); // setup the engines e1.setTrain(t1); e2.setTrain(t3); e3.setTrain(t3); e4.setTrain(new Train("id4", "B")); e5.setTrain(t3); e6.setTrain(new Train("id6", "A")); // release engines from trains e2.setTrain(null); e4.setTrain(null); // e4 is located in the middle of the route, therefore not available e6.setTrain(null); // e6 is located at the end of the route, therefore not available // there should be more engines now List engineList = manager.getAvailableTrainList(t1); Assert.assertEquals("Number of Engines available t1 after release", 4, engineList.size()); // should be sorted by moves Assert.assertEquals("1st engine in list available for t1", e1, engineList.get(0)); Assert.assertEquals("2nd engine in list available for t1", e4, engineList.get(1)); engineList = manager.getAvailableTrainList(t3); Assert.assertEquals("Number of Engines available for t3 after release", 5, engineList.size()); Assert.assertEquals("1st engine in list available for t3", e5, engineList.get(0)); } @Test public void testListEnginesByNumber() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // now get engines by road number List engineList = manager.getByNumberList(); Assert.assertEquals("Number of Engines by number", 6, engineList.size()); Assert.assertEquals("1st engine in list by number", e6, engineList.get(0)); Assert.assertEquals("2nd engine in list by number", e1, engineList.get(1)); Assert.assertEquals("3rd engine in list by number", e5, engineList.get(2)); Assert.assertEquals("4th engine in list by number", e2, engineList.get(3)); Assert.assertEquals("5th engine in list by number", e3, engineList.get(4)); Assert.assertEquals("6th engine in list by number", e4, engineList.get(5)); } @Test public void testFindEnginesByRoadNameAndNumber() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // find engine by road and number Assert.assertEquals("find e1 by road and number", e1, manager.getByRoadAndNumber("CP", "1")); Assert.assertEquals("find e2 by road and number", e2, manager.getByRoadAndNumber("ACL", "3")); Assert.assertEquals("find e3 by road and number", e3, manager.getByRoadAndNumber("CP", "3")); Assert.assertEquals("find e4 by road and number", e4, manager.getByRoadAndNumber("CP", "3-1")); Assert.assertEquals("find e5 by road and number", e5, manager.getByRoadAndNumber("PC", "2")); Assert.assertEquals("find e6 by road and number", e6, manager.getByRoadAndNumber("AA", "1")); } @Test public void testListEnginesByRfid() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // make sure the ID tags exist before we // try to add it to an engine. jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("SQ1"); jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("1Ab"); jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("Ase"); jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("asd"); jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("93F"); jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("B12"); // setup the engines e1.setRfid("SQ1"); e2.setRfid("1Ab"); e3.setRfid("Ase"); e4.setRfid("asd"); e5.setRfid("93F"); e6.setRfid("B12"); // now get engines by RFID List engineList = manager.getByRfidList(); Assert.assertEquals("Number of Engines by rfid", 6, engineList.size()); Assert.assertEquals("1st engine in list by rfid", e2, engineList.get(0)); Assert.assertEquals("2nd engine in list by rfid", e5, engineList.get(1)); Assert.assertEquals("3rd engine in list by rfid", e4, engineList.get(2)); Assert.assertEquals("4th engine in list by rfid", e3, engineList.get(3)); Assert.assertEquals("5th engine in list by rfid", e6, engineList.get(4)); Assert.assertEquals("6th engine in list by rfid", e1, engineList.get(5)); } @Test public void testFindEnginesByRfid() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // make sure the ID tags exist before we // try to add it to an engine. jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("SQ1"); jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("1Ab"); jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("Ase"); jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("asd"); jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("93F"); jmri.InstanceManager.getDefault(jmri.IdTagManager.class).provideIdTag("B12"); // setup the engines e1.setRfid("SQ1"); e2.setRfid("1Ab"); e3.setRfid("Ase"); e4.setRfid("asd"); e5.setRfid("93F"); e6.setRfid("B12"); // find engine by RFID Assert.assertEquals("find e1 by rfid", e1, manager.getByRfid("IDSQ1")); Assert.assertEquals("find e2 by rfid", e2, manager.getByRfid("ID1Ab")); Assert.assertEquals("find e3 by rfid", e3, manager.getByRfid("IDAse")); Assert.assertEquals("find e4 by rfid", e4, manager.getByRfid("IDasd")); Assert.assertEquals("find e5 by rfid", e5, manager.getByRfid("ID93F")); Assert.assertEquals("find e6 by rfid", e6, manager.getByRfid("IDB12")); } @Test public void testListEnginesByType() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); // now get engines by model List engineList = manager.getByModelList(); Assert.assertEquals("Number of Engines by type", 6, engineList.size()); Assert.assertEquals("1st engine in list by type", e3, engineList.get(0)); Assert.assertEquals("2nd engine in list by type", e4, engineList.get(1)); Assert.assertEquals("3rd engine in list by type", e5, engineList.get(2)); Assert.assertEquals("4th engine in list by type", e2, engineList.get(3)); Assert.assertEquals("5th engine in list by type", e6, engineList.get(4)); Assert.assertEquals("6th engine in list by type", e1, engineList.get(5)); } @Test public void testListEnginesByLastMovedDate() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); java.util.Calendar cal = java.util.Calendar.getInstance(); java.util.Date start = cal.getTime(); // save to rest time, to avoid // test probelms if run near // midnight. java.util.Date time = cal.getTime(); e1.setLastDate(time); // right now cal.setTime(start); cal.add(java.util.Calendar.HOUR_OF_DAY, -1); time = cal.getTime(); e2.setLastDate(time); // one hour ago cal.setTime(start); cal.add(java.util.Calendar.HOUR_OF_DAY, 1); time = cal.getTime(); e3.setLastDate(time); // one hour from now cal.setTime(start); cal.set(java.util.Calendar.DAY_OF_MONTH, -1); time = cal.getTime(); e4.setLastDate(time); // one day ago. cal.setTime(start); cal.add(java.util.Calendar.DAY_OF_MONTH, 1); time = cal.getTime(); e5.setLastDate(time); // one day in the future now. cal.setTime(start); cal.add(java.util.Calendar.YEAR, -1); time = cal.getTime(); e6.setLastDate(time); // one year ago. // now get engines by last move date. List engineList = manager.getByLastDateList(); Assert.assertEquals("Number of Engines by last move date", 6, engineList.size()); Assert.assertEquals("1st engine in list by move date", e6, engineList.get(0)); Assert.assertEquals("2nd engine in list by move date", e4, engineList.get(1)); Assert.assertEquals("3rd engine in list by move date", e2, engineList.get(2)); Assert.assertEquals("4th engine in list by move date", e1, engineList.get(3)); Assert.assertEquals("5th engine in list by move date", e3, engineList.get(4)); Assert.assertEquals("6th engine in list by move date", e5, engineList.get(5)); } @Test public void testSortListedEnginesByLastMovedDate() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); java.util.Calendar cal = java.util.Calendar.getInstance(); java.util.Date start = cal.getTime(); // save to rest time, to avoid // test probelms if run near // midnight. java.util.Date time = cal.getTime(); e1.setLastDate(time); // right now cal.setTime(start); cal.add(java.util.Calendar.HOUR_OF_DAY, -1); time = cal.getTime(); e2.setLastDate(time); // one hour ago cal.setTime(start); cal.add(java.util.Calendar.HOUR_OF_DAY, 1); time = cal.getTime(); e3.setLastDate(time); // one hour from now cal.setTime(start); cal.set(java.util.Calendar.DAY_OF_MONTH, -1); time = cal.getTime(); e4.setLastDate(time); // one day ago. cal.setTime(start); cal.add(java.util.Calendar.DAY_OF_MONTH, 1); time = cal.getTime(); e5.setLastDate(time); // one day in the future now. cal.setTime(start); cal.add(java.util.Calendar.YEAR, -1); time = cal.getTime(); e6.setLastDate(time); // one year ago. // now get engines by last move date. List engineList = manager.getByLastDateList(); Assert.assertEquals("Number of Engines by last move date", 6, engineList.size()); Assert.assertEquals("1st engine in list by move date", e6, engineList.get(0)); Assert.assertEquals("2nd engine in list by move date", e4, engineList.get(1)); Assert.assertEquals("3rd engine in list by move date", e2, engineList.get(2)); Assert.assertEquals("4th engine in list by move date", e1, engineList.get(3)); Assert.assertEquals("5th engine in list by move date", e3, engineList.get(4)); Assert.assertEquals("6th engine in list by move date", e5, engineList.get(5)); } @Test public void testListEnginesAtLocation() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); List engineList = manager.getList(l1); Assert.assertEquals("Number of Engines at location", 2, engineList.size()); Assert.assertTrue("e1 in engine list at location", engineList.contains(e1)); Assert.assertTrue("e2 in engine list at location", engineList.contains(e2)); Assert.assertFalse("e3 not in engine list at location", engineList.contains(e3)); } @Test public void testListEnginesOnTrack() { resetEngineManager(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); Track l1t1 = l1.getTrackByName("A", Track.SPUR); List engineList = manager.getList(l1t1); Assert.assertEquals("Number of Engines on track", 1, engineList.size()); Assert.assertTrue("e1 in engine list on track", engineList.contains(e1)); Assert.assertFalse("e2 not in engine list on track", engineList.contains(e2)); Assert.assertFalse("e3 not in engine list on track", engineList.contains(e3)); } private void resetEngineManager() { InstanceManager.getDefault(EngineManager.class).dispose(); EngineManager manager = InstanceManager.getDefault(EngineManager.class); e1 = manager.newRS("CP", "1"); e2 = manager.newRS("ACL", "3"); e3 = manager.newRS("CP", "3"); e4 = manager.newRS("CP", "3-1"); e5 = manager.newRS("PC", "2"); e6 = manager.newRS("AA", "1"); e1.setModel("GP356"); e2.setModel("GP354"); e3.setModel("GP351"); e4.setModel("GP352"); e5.setModel("GP353"); e6.setModel("GP355"); e1.setTypeName("Diesel"); e2.setTypeName("Diesel"); e3.setTypeName("Diesel"); e4.setTypeName("Diesel"); e5.setTypeName("Diesel"); e6.setTypeName("Diesel"); e1.setLength("13"); e2.setLength("9"); e3.setLength("12"); e4.setLength("10"); e5.setLength("11"); e6.setLength("14"); l1 = new Location("id1", "B"); Track l1t1 = l1.addTrack("A", Track.SPUR); Track l1t2 = l1.addTrack("B", Track.SPUR); l2 = new Location("id2", "C"); Track l2t1 = l2.addTrack("B", Track.SPUR); Track l2t2 = l2.addTrack("A", Track.SPUR); l3 = new Location("id3", "A"); Track l3t1 = l3.addTrack("B", Track.SPUR); Track l3t2 = l3.addTrack("A", Track.SPUR); // add track lengths l1t1.setLength(100); l1t2.setLength(100); l2t1.setLength(100); l2t2.setLength(100); l3t1.setLength(100); l3t2.setLength(100); l1.addTypeName("Diesel"); l2.addTypeName("Diesel"); l3.addTypeName("Diesel"); l1t1.addTypeName("Diesel"); l1t2.addTypeName("Diesel"); l2t1.addTypeName("Diesel"); l2t2.addTypeName("Diesel"); l3t1.addTypeName("Diesel"); l3t2.addTypeName("Diesel"); EngineTypes et = InstanceManager.getDefault(EngineTypes.class); et.addName("Diesel"); // place engines on tracks e1.setLocation(l1, l1t1); e2.setLocation(l1, l1t2); e3.setLocation(l2, l2t1); e4.setLocation(l2, l2t2); e5.setLocation(l3, l3t1); e6.setLocation(l3, l3t2); // set engine destinations e1.setDestination(l3, l3t1); e2.setDestination(l3, l3t2); e3.setDestination(l2, l2t2); e4.setDestination(l2, l2t1); e5.setDestination(l1, l1t1); e6.setDestination(l1, l1t2); e1.setMoves(2); e2.setMoves(44); e3.setMoves(99999); e4.setMoves(33); e5.setMoves(4); e6.setMoves(9999); } }