this.events.processEvent(new VehicleDepartsAtFacilityEvent(time, Id.create(atts.getValue(VehicleArrivesAtFacilityEvent.ATTRIBUTE_VEHICLE), Vehicle.class), Id.create(atts.getValue(VehicleArrivesAtFacilityEvent.ATTRIBUTE_FACILITY), TransitStopFacility.class), delay == null ? 0.0 : Double.parseDouble(delay))); } else if (TransitDriverStartsEvent.EVENT_TYPE.equals(eventType)) { this.events.processEvent(new TransitDriverStartsEvent(time, Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_DRIVER_ID), Person.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_VEHICLE_ID), Vehicle.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_TRANSIT_LINE_ID), TransitLine.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_TRANSIT_ROUTE_ID), TransitRoute.class), Id.create(atts.getValue(TransitDriverStartsEvent.ATTRIBUTE_DEPARTURE_ID), Departure.class))); } else if (BoardingDeniedEvent.EVENT_TYPE.equals(eventType)){ Id<Person> personId = Id.create(atts.getValue(BoardingDeniedEvent.ATTRIBUTE_PERSON_ID), Person.class);
final void sendTransitDriverStartsEvent(final double now) { // A test initializes this Agent without internalInterface. // Actually, I am not sure if agents should send Events (or just be reactive, so they can be // tested / exercised as a unit, without a QSim. michaz if (internalInterface != null) { // check if "Wenden" if(getTransitLine() == null){ eventsManager.processEvent(new TransitDriverStartsEvent(now, this.dummyPerson.getId(), this.vehicle.getId(), Id.create("Wenden", TransitLine.class), Id.create("Wenden", TransitRoute.class), Id.create("Wenden", Departure.class))); } else { eventsManager.processEvent(new TransitDriverStartsEvent(now, this.dummyPerson.getId(), this.vehicle.getId(), getTransitLine().getId(), getTransitRoute().getId(), getDeparture().getId())); } } }
@Test public void testProcessEventIntegration() { EventsManager em = EventsUtils.createEventsManager(); TransitDriverStartsEvent e1 = new TransitDriverStartsEvent(12345, Id.create("driver", Person.class), Id.create("veh", Vehicle.class), Id.create("line", TransitLine.class), Id.create("route", TransitRoute.class), Id.create("dep", Departure.class)); TransitDriverStartsTestEventHandler eh = new TransitDriverStartsTestEventHandler(); em.addHandler(eh); Assert.assertEquals(0, eh.events.size()); em.processEvent(e1); Assert.assertEquals(1, eh.events.size()); Assert.assertEquals(e1, eh.events.get(0)); }
@Test public void testWriteReadXml() { final TransitDriverStartsEvent event1 = new TransitDriverStartsEvent(36095.2, Id.create("ptDrvr-1", Person.class), Id.create("vehicle-bus5", Vehicle.class), Id.create("line L-1", TransitLine.class), Id.create("route-R1", TransitRoute.class), Id.create("departure-D-1", Departure.class)); final TransitDriverStartsEvent event2 = XmlEventsTester.testWriteReadXml(this.utils.getOutputDirectory() + "events.xml", event1); Assert.assertEquals(event1.getTime(), event2.getTime(), 1.0e-9); Assert.assertEquals(event1.getDriverId(), event2.getDriverId()); Assert.assertEquals(event1.getVehicleId(), event2.getVehicleId()); Assert.assertEquals(event1.getTransitRouteId(), event2.getTransitRouteId()); Assert.assertEquals(event1.getTransitLineId(), event2.getTransitLineId()); Assert.assertEquals(event1.getDepartureId(), event2.getDepartureId()); } }
tl.handleEvent(new TransitDriverStartsEvent(7.0*3600-20, Id.create("ptDriver1", Person.class), vehicleIdDep1, line1.getId(), route1.getId(), dep1.getId())); tl.handleEvent(new PersonEntersVehicleEvent(7.0*3600-20, Id.create("ptDriver1", Person.class), vehicleIdDep1));
return new TransitDriverStartsEvent(pe.getTransitDriverStarts().getTime(), Id.createPersonId(pe.getTransitDriverStarts().getDriverId().getId()), Id.createVehicleId(pe.getTransitDriverStarts().getVehId().getId()), Id.create(pe.getTransitDriverStarts().getTransitLineId().getId(), TransitLine.class), Id.create(pe.getTransitDriverStarts().getTransitRouteId().getId(), TransitRoute.class),