1
1
package org .opentripplanner .transit .service ;
2
2
3
3
import static org .junit .jupiter .api .Assertions .assertEquals ;
4
+ import static org .opentripplanner .model .plan .PlanTestConstants .T11_30 ;
4
5
import static org .opentripplanner .transit .model .basic .TransitMode .BUS ;
5
6
import static org .opentripplanner .transit .model .basic .TransitMode .FERRY ;
6
7
import static org .opentripplanner .transit .model .basic .TransitMode .RAIL ;
12
13
import java .util .Set ;
13
14
import org .junit .jupiter .api .BeforeAll ;
14
15
import org .junit .jupiter .api .Test ;
16
+ import org .opentripplanner .framework .i18n .I18NString ;
17
+ import org .opentripplanner .graph_builder .issue .api .DataImportIssueStore ;
15
18
import org .opentripplanner .model .TimetableSnapshot ;
19
+ import org .opentripplanner .model .calendar .CalendarServiceData ;
16
20
import org .opentripplanner .transit .model ._data .TransitModelForTest ;
17
21
import org .opentripplanner .transit .model .framework .Deduplicator ;
22
+ import org .opentripplanner .transit .model .framework .FeedScopedId ;
18
23
import org .opentripplanner .transit .model .network .StopPattern ;
19
24
import org .opentripplanner .transit .model .network .TripPattern ;
20
25
import org .opentripplanner .transit .model .site .RegularStop ;
21
26
import org .opentripplanner .transit .model .site .Station ;
22
27
import org .opentripplanner .transit .model .site .StopLocation ;
28
+ import org .opentripplanner .transit .model .timetable .DatedTrip ;
23
29
import org .opentripplanner .transit .model .timetable .RealTimeTripTimes ;
24
30
import org .opentripplanner .transit .model .timetable .ScheduledTripTimes ;
31
+ import org .opentripplanner .transit .model .timetable .Trip ;
32
+ import org .opentripplanner .transit .model .timetable .TripTimesFactory ;
25
33
26
34
class DefaultTransitServiceTest {
27
35
@@ -46,6 +54,13 @@ class DefaultTransitServiceTest {
46
54
.withCreatedByRealtimeUpdater (true )
47
55
.build ();
48
56
57
+ static FeedScopedId CALENDAR_ID = TransitModelForTest .id ("CAL_1" );
58
+ static Trip TRIP = TransitModelForTest
59
+ .trip ("123" )
60
+ .withHeadsign (I18NString .of ("Trip Headsign" ))
61
+ .withServiceId (CALENDAR_ID )
62
+ .build ();
63
+
49
64
@ BeforeAll
50
65
static void setup () {
51
66
var stopModel = TEST_MODEL
@@ -55,8 +70,23 @@ static void setup() {
55
70
.withStation (STATION )
56
71
.build ();
57
72
58
- var transitModel = new TransitModel (stopModel , new Deduplicator ());
73
+ var deduplicator = new Deduplicator ();
74
+ var transitModel = new TransitModel (stopModel , deduplicator );
75
+ var canceledStopTimes = TEST_MODEL .stopTimesEvery5Minutes (3 , TRIP , T11_30 );
76
+ var canceledTripTimes = TripTimesFactory .tripTimes (TRIP , canceledStopTimes , deduplicator );
77
+ RAIL_PATTERN .add (canceledTripTimes );
78
+ canceledTripTimes .cancelTrip ();
59
79
transitModel .addTripPattern (RAIL_PATTERN .getId (), RAIL_PATTERN );
80
+
81
+ // Crate a calendar (needed for testing cancelled trips)
82
+ CalendarServiceData calendarServiceData = new CalendarServiceData ();
83
+ calendarServiceData .putServiceDatesForServiceId (
84
+ CALENDAR_ID ,
85
+ List .of (LocalDate .of (2024 , 8 , 8 ), LocalDate .of (2024 , 8 , 9 ))
86
+ );
87
+ transitModel .getServiceCodes ().put (CALENDAR_ID , 0 );
88
+ transitModel .updateCalendarServiceData (true , calendarServiceData , DataImportIssueStore .NOOP );
89
+
60
90
transitModel .index ();
61
91
62
92
transitModel .initTimetableSnapshotProvider (() -> {
@@ -69,6 +99,7 @@ static void setup() {
69
99
.build ()
70
100
);
71
101
timetableSnapshot .update (REAL_TIME_PATTERN , tripTimes , LocalDate .now ());
102
+ timetableSnapshot .update (RAIL_PATTERN , canceledTripTimes , LocalDate .now ());
72
103
73
104
return timetableSnapshot .commit ();
74
105
});
@@ -115,4 +146,13 @@ void getPatternForStopsWithRealTime() {
115
146
Collection <TripPattern > patternsForStop = service .getPatternsForStop (STOP_B , true );
116
147
assertEquals (Set .of (FERRY_PATTERN , RAIL_PATTERN , REAL_TIME_PATTERN ), patternsForStop );
117
148
}
149
+
150
+ @ Test
151
+ void getCanceledTrips () {
152
+ Collection <DatedTrip > canceledTrips = service .getCanceledTrips (null );
153
+ assertEquals (
154
+ "[DatedTrip[trip=Trip{F:123 RR123}, serviceDate=2024-08-08], DatedTrip[trip=Trip{F:123 RR123}, serviceDate=2024-08-09]]" ,
155
+ canceledTrips .toString ()
156
+ );
157
+ }
118
158
}
0 commit comments