Search in sources :

Example 26 with Schedule

use of jmri.jmrit.operations.locations.schedules.Schedule in project JMRI by JMRI.

the class LocationTest method testTypeNameSupport.

// test typename support
public void testTypeNameSupport() {
    // use LocationManager to allow replace car type to work properly
    Location l = LocationManager.instance().newLocation("Test Name");
    Assert.assertEquals("Location Name", "Test Name", l.getName());
    Assert.assertEquals("Location Accepts Type Name undefined", false, l.acceptsTypeName("TestTypeName"));
    // l.addTypeName("TestTypeName");
    // Assert.assertEquals("Location Accepts Type Name defined", false, l.acceptsTypeName("TestTypeName"));
    // now add to car types
    CarTypes ct = CarTypes.instance();
    ct.addName("TestTypeName");
    l.addTypeName("TestTypeName");
    Assert.assertEquals("Location Accepts Type Name defined", true, l.acceptsTypeName("TestTypeName"));
    l.deleteTypeName("TestTypeName");
    Assert.assertEquals("Location Accepts Type Name undefined2", false, l.acceptsTypeName("TestTypeName"));
    ct.addName("Baggage");
    ct.addName("BoxCar");
    ct.addName("Caboose");
    ct.addName("Coal");
    ct.addName("Engine");
    ct.addName("Hopper");
    ct.addName("MOW");
    ct.addName("Passenger");
    ct.addName("Reefer");
    ct.addName("Stock");
    ct.addName("Tank Oil");
    l.addTypeName("Baggage");
    l.addTypeName("BoxCar");
    l.addTypeName("Caboose");
    l.addTypeName("Coal");
    l.addTypeName("Engine");
    l.addTypeName("Hopper");
    l.addTypeName("MOW");
    l.addTypeName("Passenger");
    l.addTypeName("Reefer");
    l.addTypeName("Stock");
    l.addTypeName("Tank Oil");
    Track t = l.addTrack("new track", Track.SPUR);
    Assert.assertEquals("Location Accepts Type Name BoxCar", true, l.acceptsTypeName("BoxCar"));
    Assert.assertEquals("Location Accepts Type Name boxCar", false, l.acceptsTypeName("boxCar"));
    Assert.assertEquals("Location Accepts Type Name MOW", true, l.acceptsTypeName("MOW"));
    Assert.assertEquals("Location Accepts Type Name Caboose", true, l.acceptsTypeName("Caboose"));
    Assert.assertEquals("Location Accepts Type Name BoxCar", true, l.acceptsTypeName("BoxCar"));
    Assert.assertEquals("Location Accepts Type Name undefined3", false, l.acceptsTypeName("TestTypeName"));
    Assert.assertEquals("Track Accepts Type Name BoxCar", true, t.acceptsTypeName("BoxCar"));
    Assert.assertEquals("Track Accepts Type Name boxCar", false, t.acceptsTypeName("boxCar"));
    Assert.assertEquals("Track Accepts Type Name MOW", true, t.acceptsTypeName("MOW"));
    Assert.assertEquals("Track Accepts Type Name Caboose", true, t.acceptsTypeName("Caboose"));
    Assert.assertEquals("Track Accepts Type Name undefined3", false, t.acceptsTypeName("undefined"));
    t.addTypeName("Baggage");
    t.addTypeName("BoxCar");
    t.addTypeName("Caboose");
    t.addTypeName("Coal");
    t.addTypeName("Engine");
    t.addTypeName("Hopper");
    t.addTypeName("MOW");
    t.addTypeName("Passenger");
    t.addTypeName("Reefer");
    t.addTypeName("Stock");
    t.addTypeName("Tank Oil");
    Assert.assertEquals("Track Accepts Type Name BoxCar", true, t.acceptsTypeName("BoxCar"));
    Assert.assertEquals("Track Accepts Type Name boxCar", false, t.acceptsTypeName("boxCar"));
    Assert.assertEquals("Track Accepts Type Name MOW", true, t.acceptsTypeName("MOW"));
    Assert.assertEquals("Track Accepts Type Name Caboose", true, t.acceptsTypeName("Caboose"));
    Assert.assertEquals("Track Accepts Type Name BoxCar", true, t.acceptsTypeName("BoxCar"));
    Assert.assertEquals("Track Accepts Type Name undefined3", false, t.acceptsTypeName("undefined"));
    // test replace
    // also test replace type in schedules
    ScheduleManager sm = ScheduleManager.instance();
    Schedule s = sm.newSchedule("newest schedule");
    ScheduleItem i1 = s.addItem("BoxCar");
    ScheduleItem i2 = s.addItem("Caboose");
    Assert.assertEquals("ScheudleItem i1 Type BoxCar", "BoxCar", i1.getTypeName());
    Assert.assertEquals("ScheudleItem i2 Type Caboose", "Caboose", i2.getTypeName());
    ct.replaceName("BoxCar", "boxcar");
    Assert.assertFalse("Location Does Not Accepts Type Name BoxCar", l.acceptsTypeName("BoxCar"));
    Assert.assertTrue("Location Accepts Type Name boxcar", l.acceptsTypeName("boxcar"));
    Assert.assertFalse("Track Does Not Accepts Type Name BoxCar", l.acceptsTypeName("BoxCar"));
    Assert.assertTrue("Track Accepts Type Name boxcar", t.acceptsTypeName("boxcar"));
    Assert.assertEquals("ScheudleItem i1 Type boxcar", "boxcar", i1.getTypeName());
    Assert.assertEquals("Check ScheudleItem i2 Type Caboose", "Caboose", i2.getTypeName());
    // remove all schedules
    sm.dispose();
}
Also used : ScheduleManager(jmri.jmrit.operations.locations.schedules.ScheduleManager) ScheduleItem(jmri.jmrit.operations.locations.schedules.ScheduleItem) Schedule(jmri.jmrit.operations.locations.schedules.Schedule) CarTypes(jmri.jmrit.operations.rollingstock.cars.CarTypes)

Example 27 with Schedule

use of jmri.jmrit.operations.locations.schedules.Schedule in project JMRI by JMRI.

the class TrainBuilderTest method testScheduleLoads.

public void testScheduleLoads() {
    ct.addName("Gon");
    ct.addName("Coil Car");
    ct.addName("Flat Car");
    ct.addName("Boxcar");
    // create schedules
    Schedule sch1 = smanager.newSchedule("Schedule 1");
    ScheduleItem sch1Item1 = sch1.addItem("Boxcar");
    // request a UP Boxcar
    sch1Item1.setRoadName("UP");
    ScheduleItem sch1Item2 = sch1.addItem("Flat Car");
    // request an empty car and load it with Scrap
    sch1Item2.setReceiveLoadName("E");
    sch1Item2.setShipLoadName("Scrap");
    ScheduleItem sch1Item3 = sch1.addItem("Gon");
    // request a loaded car and load it with Tin
    sch1Item3.setReceiveLoadName("L");
    sch1Item3.setShipLoadName("Tin");
    // Allows c13 which is part of a kernel to get a new load
    CarLoads.instance().addName("Gon", "Tin");
    Schedule sch2 = smanager.newSchedule("Schedule 2");
    ScheduleItem sch2Item1 = sch2.addItem("Coil Car");
    sch2Item1.setCount(2);
    sch2.addItem("Boxcar");
    // Create locations used
    Location loc1;
    loc1 = lmanager.newLocation("New Westford");
    loc1.setTrainDirections(DIRECTION_ALL);
    //		loc1.addTypeName("Flat Car");
    Location loc2;
    loc2 = lmanager.newLocation("New Chelmsford");
    loc2.setTrainDirections(DIRECTION_ALL);
    Location loc3;
    loc3 = lmanager.newLocation("New Bedford");
    loc3.setTrainDirections(DIRECTION_ALL);
    Track loc1trk1;
    loc1trk1 = loc1.addTrack("Westford Yard 1", Track.YARD);
    loc1trk1.setTrainDirections(Track.WEST + Track.EAST);
    loc1trk1.setLength(900);
    //		loc1trk1.addTypeName("Flat Car");
    Track loc1trk2;
    loc1trk2 = loc1.addTrack("Westford Yard 2", Track.YARD);
    loc1trk2.setTrainDirections(Track.WEST + Track.EAST);
    loc1trk2.setLength(500);
    loc1trk2.deleteTypeName("Coil Car");
    Track loc1trk3;
    loc1trk3 = loc1.addTrack("Westford Express 3", Track.SPUR);
    loc1trk3.setTrainDirections(Track.WEST + Track.EAST);
    loc1trk3.setLength(300);
    loc1trk3.deleteTypeName("Gon");
    loc1trk3.deleteTypeName("Coil Car");
    Track loc1trk4;
    loc1trk4 = loc1.addTrack("Westford Express 4", Track.SPUR);
    loc1trk4.setTrainDirections(Track.WEST + Track.EAST);
    loc1trk4.setLength(300);
    loc1trk4.deleteTypeName("Gon");
    loc1trk4.deleteTypeName("Coil Car");
    Track loc2trk1;
    loc2trk1 = loc2.addTrack("Chelmsford Freight 1", Track.SPUR);
    loc2trk1.setTrainDirections(Track.WEST + Track.EAST);
    loc2trk1.setLength(900);
    loc2trk1.deleteTypeName("Coil Car");
    loc2trk1.setScheduleId(sch1.getId());
    loc2trk1.setScheduleMode(Track.SEQUENTIAL);
    // start the schedule with 2nd item Flat Car
    loc2trk1.setScheduleItemId(sch1.getItemsBySequenceList().get(1).getId());
    Track loc2trk2;
    loc2trk2 = loc2.addTrack("Chelmsford Freight 2", Track.SPUR);
    loc2trk2.setTrainDirections(Track.WEST + Track.EAST);
    loc2trk2.setLength(900);
    loc2trk2.deleteTypeName("Coil Car");
    loc2trk2.setScheduleId(sch1.getId());
    loc2trk2.setScheduleMode(Track.SEQUENTIAL);
    // start the schedule with 3rd item Gon
    loc2trk2.setScheduleItemId(sch1.getItemsBySequenceList().get(2).getId());
    Track loc2trk3;
    loc2trk3 = loc2.addTrack("Chelmsford Yard 3", Track.YARD);
    loc2trk3.setTrainDirections(Track.WEST + Track.EAST);
    loc2trk3.setLength(900);
    loc2trk3.deleteTypeName("Gon");
    loc2trk3.deleteTypeName("Coil Car");
    Track loc2trk4;
    loc2trk4 = loc2.addTrack("Chelmsford Freight 4", Track.SPUR);
    loc2trk4.setTrainDirections(Track.WEST + Track.EAST);
    loc2trk4.setLength(900);
    loc2trk4.setScheduleId(sch2.getId());
    loc2trk4.setScheduleMode(Track.SEQUENTIAL);
    Track loc3trk1;
    loc3trk1 = loc3.addTrack("Bedford Yard 1", Track.STAGING);
    loc3trk1.setTrainDirections(Track.WEST + Track.EAST);
    loc3trk1.setLength(900);
    loc3trk1.setRemoveCustomLoadsEnabled(true);
    // Create route with 2 location
    Route rte1;
    rte1 = rmanager.newRoute("Two Location Route");
    RouteLocation rl1 = rte1.addLocation(loc1);
    rl1.setTrainDirection(RouteLocation.EAST);
    rl1.setMaxCarMoves(12);
    // set the train icon coordinates
    rl1.setTrainIconX(25);
    rl1.setTrainIconY(75);
    RouteLocation rl2 = rte1.addLocation(loc2);
    rl2.setTrainDirection(RouteLocation.EAST);
    rl2.setMaxCarMoves(12);
    // set the train icon coordinates
    rl2.setTrainIconX(75);
    rl2.setTrainIconY(75);
    // Create train
    Train train1;
    train1 = tmanager.newTrain("TestScheduleLoads");
    train1.setRoute(rte1);
    // Set up 13 cars
    Car c1 = new Car("BM", "S1");
    c1.setTypeName("Gon");
    c1.setLength("90");
    c1.setMoves(13);
    c1.setLoadName("L");
    cmanager.register(c1);
    Car c2 = new Car("UP", "S2");
    c2.setTypeName("Boxcar");
    c2.setLength("80");
    c2.setMoves(12);
    cmanager.register(c2);
    Car c3 = new Car("XP", "S3");
    c3.setTypeName("Flat Car");
    c3.setLength("70");
    c3.setMoves(0);
    c3.setLoadName("L");
    // force this car to Chelmsford
    c3.setDestination(loc2, null);
    cmanager.register(c3);
    Car c4 = new Car("PU", "S4");
    c4.setTypeName("Boxcar");
    c4.setLength("60");
    c4.setMoves(10);
    cmanager.register(c4);
    // place two cars in a kernel
    Kernel k1 = cmanager.newKernel("TwoCars");
    Car c5 = new Car("UP", "S5");
    c5.setTypeName("Gon");
    c5.setLength("50");
    c5.setMoves(9);
    c5.setLoadName("L");
    c5.setKernel(k1);
    cmanager.register(c5);
    Car c6 = new Car("CP", "S6");
    c6.setTypeName("Boxcar");
    c6.setLength("40");
    c6.setMoves(8);
    c6.setLoadName("L");
    cmanager.register(c6);
    Car c7 = new Car("UP", "S7");
    c7.setTypeName("Boxcar");
    c7.setLength("50");
    c7.setMoves(7);
    cmanager.register(c7);
    Car c8 = new Car("XP", "S8");
    c8.setTypeName("Gon");
    c8.setLength("60");
    c8.setMoves(6);
    cmanager.register(c8);
    Car c9 = new Car("XP", "S9");
    c9.setTypeName("Flat Car");
    c9.setLength("90");
    c9.setMoves(5);
    c9.setLoadName("E");
    cmanager.register(c9);
    Car c10 = new Car("CP", "S10");
    c10.setTypeName("Coil Car");
    c10.setLength("40");
    c10.setMoves(2);
    c10.setLoadName("L");
    cmanager.register(c10);
    Car c11 = new Car("CP", "S11");
    c11.setTypeName("Coil Car");
    c11.setLength("40");
    c11.setMoves(3);
    c11.setLoadName("Coils");
    cmanager.register(c11);
    Car c12 = new Car("CP", "S12");
    c12.setTypeName("Coil Car");
    c12.setLength("40");
    c12.setMoves(4);
    cmanager.register(c12);
    // place car in kernel with c5
    Car c13 = new Car("UP", "S13");
    c13.setTypeName("Gon");
    c13.setLength("50");
    c13.setMoves(1);
    c13.setLoadName("L");
    c13.setKernel(k1);
    cmanager.register(c13);
    // place the cars in the yards
    Assert.assertEquals("Place c1", Track.OKAY, c1.setLocation(loc1, loc1trk1));
    Assert.assertEquals("Place c2", Track.OKAY, c2.setLocation(loc1, loc1trk1));
    Assert.assertEquals("Place c3", Track.OKAY, c3.setLocation(loc1, loc1trk1));
    Assert.assertEquals("Place c4", Track.OKAY, c4.setLocation(loc1, loc1trk1));
    Assert.assertEquals("Place c5", Track.OKAY, c5.setLocation(loc1, loc1trk2));
    Assert.assertEquals("Place c6", Track.OKAY, c6.setLocation(loc1, loc1trk2));
    Assert.assertEquals("Place c7", Track.OKAY, c7.setLocation(loc1, loc1trk2));
    Assert.assertEquals("Place c8", Track.OKAY, c8.setLocation(loc1, loc1trk2));
    Assert.assertEquals("Place c9", Track.OKAY, c9.setLocation(loc1, loc1trk2));
    Assert.assertEquals("Place c10", Track.OKAY, c10.setLocation(loc1, loc1trk1));
    Assert.assertEquals("Place c11", Track.OKAY, c11.setLocation(loc1, loc1trk1));
    Assert.assertEquals("Place c12", Track.OKAY, c12.setLocation(loc1, loc1trk1));
    Assert.assertEquals("Place c13", Track.OKAY, c13.setLocation(loc1, loc1trk2));
    train1.reset();
    new TrainBuilder().build(train1);
    // Schedule sch1 should cause c2 to be delivered to Chelmsford Freight 2
    Assert.assertEquals("c2 destination", "Chelmsford Freight 2", c2.getDestinationTrackName());
    Assert.assertEquals("c2 next load", "", c2.getNextLoadName());
    // Schedule sch1 and sch2 should reject c3, to be delivered to Chelmsford Yard 3
    Assert.assertEquals("c3 destination", "Chelmsford Yard 3", c3.getDestinationTrackName());
    Assert.assertEquals("c3 next load", "", c3.getNextLoadName());
    Assert.assertEquals("c4 destination", "Chelmsford Yard 3", c4.getDestinationTrackName());
    // Schedule sch1 should cause c5 & c13 to be delivered to Chelmsford Freight 2
    Assert.assertEquals("c5 destination", "Chelmsford Freight 2", c5.getDestinationTrackName());
    Assert.assertEquals("c5 next load", "Tin", c5.getNextLoadName());
    Assert.assertEquals("c6 destination", "Chelmsford Yard 3", c6.getDestinationTrackName());
    Assert.assertEquals("c7 destination", "Chelmsford Freight 4", c7.getDestinationTrackName());
    Assert.assertEquals("c9 destination", "Chelmsford Freight 1", c9.getDestinationTrackName());
    Assert.assertEquals("c9 next load", "Scrap", c9.getNextLoadName());
    Assert.assertEquals("c10 destination", "Chelmsford Freight 4", c10.getDestinationTrackName());
    Assert.assertEquals("c11 destination", "Chelmsford Freight 4", c11.getDestinationTrackName());
    // C13 is part of kernel, load will flip between E and L
    Assert.assertEquals("c13 destination", "Chelmsford Freight 2", c13.getDestinationTrackName());
    Assert.assertEquals("c13 next load", "Tin", c13.getNextLoadName());
    // move and terminate train
    train1.move();
    train1.move();
    train1.move();
    Assert.assertEquals("c1 track", "Chelmsford Freight 1", c1.getTrackName());
    Assert.assertEquals("c1 load", "Tin", c1.getLoadName());
    Assert.assertEquals("c2 track", "Chelmsford Freight 2", c2.getTrackName());
    Assert.assertEquals("c2 load", "L", c2.getLoadName());
    Assert.assertEquals("c3 track", "Chelmsford Yard 3", c3.getTrackName());
    Assert.assertEquals("c3 load", "L", c3.getLoadName());
    Assert.assertEquals("c4 track", "Chelmsford Yard 3", c4.getTrackName());
    Assert.assertEquals("c4 load", "E", c4.getLoadName());
    Assert.assertEquals("c5 track", "Chelmsford Freight 2", c5.getTrackName());
    Assert.assertEquals("c5 load", "Tin", c5.getLoadName());
    Assert.assertEquals("c6 track", "Chelmsford Yard 3", c6.getTrackName());
    Assert.assertEquals("c6 load", "L", c6.getLoadName());
    Assert.assertEquals("c7 track", "Chelmsford Freight 4", c7.getTrackName());
    Assert.assertEquals("c7 load", "L", c7.getLoadName());
    Assert.assertEquals("c8 track", "Westford Yard 2", c8.getTrackName());
    Assert.assertEquals("c8 load", "E", c8.getLoadName());
    Assert.assertEquals("c9 track", "Chelmsford Freight 1", c9.getTrackName());
    Assert.assertEquals("c9 load", "Scrap", c9.getLoadName());
    Assert.assertEquals("c10 track", "Chelmsford Freight 4", c10.getTrackName());
    Assert.assertEquals("c10 load", "E", c10.getLoadName());
    Assert.assertEquals("c11 track", "Chelmsford Freight 4", c11.getTrackName());
    Assert.assertEquals("c11 load", "E", c11.getLoadName());
    Assert.assertEquals("c12 track", "Westford Yard 1", c12.getTrackName());
    Assert.assertEquals("c12 load", "E", c12.getLoadName());
    Assert.assertEquals("c13 track", "Chelmsford Freight 2", c13.getTrackName());
    Assert.assertEquals("c13 load", "Tin", c13.getLoadName());
    // create a route to staging to test remove schedule load
    // Create route with 2 location
    Route rte2;
    rte2 = rmanager.newRoute("Chelmsford to Staging");
    RouteLocation r2rl1 = rte2.addLocation(loc2);
    r2rl1.setTrainDirection(RouteLocation.EAST);
    r2rl1.setMaxCarMoves(12);
    // set the train icon coordinates
    r2rl1.setTrainIconX(125);
    r2rl1.setTrainIconY(75);
    RouteLocation r2rl3 = rte2.addLocation(loc3);
    r2rl3.setTrainDirection(RouteLocation.EAST);
    r2rl3.setMaxCarMoves(12);
    // set the train icon coordinates
    r2rl3.setTrainIconX(175);
    r2rl3.setTrainIconY(75);
    train1.setRoute(rte2);
    train1.setName("Chelmsford to Bedford");
    train1.reset();
    new TrainBuilder().build(train1);
    // move and terminate train
    train1.move();
    train1.move();
    train1.move();
    Assert.assertEquals("c1 track to staging", "Bedford Yard 1", c1.getTrackName());
    Assert.assertEquals("c1 load to staging", "E", c1.getLoadName());
    Assert.assertEquals("c2 track to staging", "Bedford Yard 1", c2.getTrackName());
    Assert.assertEquals("c2 load to staging", "L", c2.getLoadName());
    Assert.assertEquals("c3 track to staging", "Bedford Yard 1", c3.getTrackName());
    Assert.assertEquals("c3 load to staging", "L", c3.getLoadName());
    Assert.assertEquals("c4 track to staging", "Bedford Yard 1", c4.getTrackName());
    Assert.assertEquals("c4 load to staging", "E", c4.getLoadName());
    Assert.assertEquals("c5 track to staging", "Bedford Yard 1", c5.getTrackName());
    Assert.assertEquals("c5 load to staging", "E", c5.getLoadName());
    Assert.assertEquals("c6 track to staging", "Bedford Yard 1", c6.getTrackName());
    Assert.assertEquals("c6 load to staging", "L", c6.getLoadName());
    Assert.assertEquals("c7 track to staging", "Bedford Yard 1", c7.getTrackName());
    Assert.assertEquals("c7 load to staging", "L", c7.getLoadName());
    Assert.assertEquals("c8 track to staging", "Westford Yard 2", c8.getTrackName());
    Assert.assertEquals("c8 load to staging", "E", c8.getLoadName());
    Assert.assertEquals("c9 track to staging", "Bedford Yard 1", c9.getTrackName());
    Assert.assertEquals("c9 load to staging", "E", c9.getLoadName());
    Assert.assertEquals("c10 track to staging", "Bedford Yard 1", c10.getTrackName());
    Assert.assertEquals("c10 load to staging", "E", c10.getLoadName());
    Assert.assertEquals("c11 track to staging", "Bedford Yard 1", c11.getTrackName());
    Assert.assertEquals("c11 load to staging", "E", c11.getLoadName());
    Assert.assertEquals("c12 track to staging", "Westford Yard 1", c12.getTrackName());
    Assert.assertEquals("c12 load to staging", "E", c12.getLoadName());
    Assert.assertEquals("c13 track to staging", "Bedford Yard 1", c13.getTrackName());
    Assert.assertEquals("c13 load to staging", "E", c13.getLoadName());
    // create a route from staging to test generate schedule load
    // Create route with 3 locations
    Route rte3;
    rte3 = rmanager.newRoute("Staging to Chelmsford");
    RouteLocation r3rl1 = rte3.addLocation(loc3);
    r3rl1.setTrainDirection(RouteLocation.EAST);
    // there are 11 cars departing staging
    r3rl1.setMaxCarMoves(11);
    // set the train icon coordinates
    r3rl1.setTrainIconX(25);
    r3rl1.setTrainIconY(100);
    RouteLocation r3rl2 = rte3.addLocation(loc2);
    r3rl2.setTrainDirection(RouteLocation.EAST);
    r3rl2.setMaxCarMoves(12);
    RouteLocation r3rl3 = rte3.addLocation(loc1);
    r3rl3.setTrainDirection(RouteLocation.EAST);
    r3rl3.setMaxCarMoves(12);
    // set the train icon coordinates
    r3rl3.setTrainIconX(75);
    r3rl3.setTrainIconY(100);
    loc3trk1.setRemoveCustomLoadsEnabled(false);
    // generate schedule loads
    loc3trk1.setAddCustomLoadsEnabled(true);
    // request these loads from staging
    sch1Item1.setReceiveLoadName("Metal 1");
    sch1Item2.setReceiveLoadName("Metal 2");
    sch1Item3.setReceiveLoadName("Metal 3");
    // Allows c13 which is part of a kernel to get a new load
    CarLoads.instance().addName("Gon", "Metal 3");
    train1.setRoute(rte3);
    train1.setName("BCW");
    train1.reset();
    new TrainBuilder().build(train1);
    Assert.assertEquals("Train Bedford Chelmsford Westford build status", true, train1.isBuilt());
    Assert.assertEquals("c1 load from staging", "E", c1.getLoadName());
    Assert.assertEquals("c2 load from staging", "L", c2.getLoadName());
    Assert.assertEquals("c3 load from staging", "L", c3.getLoadName());
    Assert.assertEquals("c4 load from staging", "E", c4.getLoadName());
    Assert.assertEquals("c5 load from staging", "Metal 3", c5.getLoadName());
    Assert.assertEquals("c6 load from staging", "L", c6.getLoadName());
    Assert.assertEquals("c7 load from staging", "L", c7.getLoadName());
    Assert.assertEquals("c8 load from staging", "E", c8.getLoadName());
    Assert.assertEquals("c9 load from staging", "Metal 2", c9.getLoadName());
    Assert.assertEquals("c9 next load from staging", "Scrap", c9.getNextLoadName());
    Assert.assertEquals("c10 load from staging", "E", c10.getLoadName());
    Assert.assertEquals("c11 load from staging", "E", c11.getLoadName());
    Assert.assertEquals("c13 load from staging", "Metal 3", c13.getLoadName());
    // move and terminate train
    train1.move();
    train1.move();
    train1.move();
    train1.move();
    Assert.assertEquals("c1 track from staging terminated", "Westford Yard 1", c1.getTrackName());
    Assert.assertEquals("c1 load from staging terminated", "E", c1.getLoadName());
    Assert.assertEquals("c2 track from staging terminated", "Westford Yard 2", c2.getTrackName());
    Assert.assertEquals("c2 load from staging terminated", "L", c2.getLoadName());
    Assert.assertEquals("c3 track from staging terminated", "Westford Yard 1", c3.getTrackName());
    Assert.assertEquals("c3 load from staging terminated", "L", c3.getLoadName());
    Assert.assertEquals("c4 track from staging terminated", "Westford Express 4", c4.getTrackName());
    Assert.assertEquals("c4 load from staging terminated", "L", c4.getLoadName());
    Assert.assertEquals("c5 track from staging terminated", "Chelmsford Freight 2", c5.getTrackName());
    Assert.assertEquals("c5 load from staging terminated", "Tin", c5.getLoadName());
    Assert.assertEquals("c6 track from staging terminated", "Westford Express 3", c6.getTrackName());
    Assert.assertEquals("c6 load from staging terminated", "E", c6.getLoadName());
    Assert.assertEquals("c7 track from staging terminated", "Westford Yard 2", c7.getTrackName());
    Assert.assertEquals("c7 load from staging terminated", "L", c7.getLoadName());
    Assert.assertEquals("c8 track from staging terminated", "Westford Yard 2", c8.getTrackName());
    Assert.assertEquals("c8 load from staging terminated", "E", c8.getLoadName());
    Assert.assertEquals("c9 track from staging terminated", "Chelmsford Freight 2", c9.getTrackName());
    Assert.assertEquals("c9 load from staging terminated", "Scrap", c9.getLoadName());
    Assert.assertEquals("c10 track from staging terminated", "Chelmsford Freight 4", c10.getTrackName());
    Assert.assertEquals("c10 load from staging terminated", "L", c10.getLoadName());
    Assert.assertEquals("c11 track from staging terminated", "Westford Yard 1", c11.getTrackName());
    Assert.assertEquals("c11 load from staging terminated", "E", c11.getLoadName());
    Assert.assertEquals("c12 track from staging terminated", "Westford Yard 1", c12.getTrackName());
    Assert.assertEquals("c12 load from staging terminated", "E", c12.getLoadName());
    Assert.assertEquals("c13 track from staging terminated", "Chelmsford Freight 2", c13.getTrackName());
    Assert.assertEquals("c13 load from staging terminated", "Tin", c13.getLoadName());
}
Also used : ScheduleItem(jmri.jmrit.operations.locations.schedules.ScheduleItem) Car(jmri.jmrit.operations.rollingstock.cars.Car) Schedule(jmri.jmrit.operations.locations.schedules.Schedule) RouteLocation(jmri.jmrit.operations.routes.RouteLocation) Kernel(jmri.jmrit.operations.rollingstock.cars.Kernel) Track(jmri.jmrit.operations.locations.Track) Route(jmri.jmrit.operations.routes.Route) RouteLocation(jmri.jmrit.operations.routes.RouteLocation) Location(jmri.jmrit.operations.locations.Location)

Aggregations

Schedule (jmri.jmrit.operations.locations.schedules.Schedule)27 ScheduleItem (jmri.jmrit.operations.locations.schedules.ScheduleItem)17 Location (jmri.jmrit.operations.locations.Location)11 Track (jmri.jmrit.operations.locations.Track)11 ScheduleManager (jmri.jmrit.operations.locations.schedules.ScheduleManager)10 RouteLocation (jmri.jmrit.operations.routes.RouteLocation)9 LocationManager (jmri.jmrit.operations.locations.LocationManager)7 Car (jmri.jmrit.operations.rollingstock.cars.Car)7 CarManager (jmri.jmrit.operations.rollingstock.cars.CarManager)6 Train (jmri.jmrit.operations.trains.Train)5 TrainManager (jmri.jmrit.operations.trains.TrainManager)5 TrainSchedule (jmri.jmrit.operations.trains.timetable.TrainSchedule)5 CarTypes (jmri.jmrit.operations.rollingstock.cars.CarTypes)3 Route (jmri.jmrit.operations.routes.Route)3 Kernel (jmri.jmrit.operations.rollingstock.cars.Kernel)2 ScheduleEditFrame (jmri.jmrit.operations.locations.schedules.ScheduleEditFrame)1 CarRoads (jmri.jmrit.operations.rollingstock.cars.CarRoads)1 RouteManager (jmri.jmrit.operations.routes.RouteManager)1