Skip to content

Commit bb99fec

Browse files
committed
Add testClearWithAllCollections to TimetableSnapshotTest.
1 parent a9bf855 commit bb99fec

2 files changed

Lines changed: 66 additions & 2 deletions

File tree

application/src/main/java/org/opentripplanner/transit/model/timetable/TimetableSnapshot.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public TimetableSnapshot() {
175175
);
176176
}
177177

178-
private TimetableSnapshot(
178+
TimetableSnapshot(
179179
Map<FeedScopedId, SortedSet<Timetable>> timetables,
180180
Map<TripIdAndServiceDate, TripPattern> realTimeNewTripPatternsForModifiedTrips,
181181
Map<FeedScopedId, Route> realtimeAddedRoutes,
@@ -637,7 +637,7 @@ private boolean clearEntriesForRealtimeAddedTrips(String feedId) {
637637
realTimeAddedPatternForTrip.keySet().removeIf(trip -> feedId.equals(trip.getId().getFeedId()));
638638
realTimeAddedTripOnServiceDateForTripAndDay
639639
.keySet()
640-
.removeIf(tripOnServiceDate -> feedId.equals(tripOnServiceDate.tripId().getFeedId()));
640+
.removeIf(tripIdAndServiceDate -> feedId.equals(tripIdAndServiceDate.tripId().getFeedId()));
641641
realTimeAddedTripOnServiceDateById.keySet().removeIf(id -> feedId.equals(id.getFeedId()));
642642
realTimeAddedPatternsForRoute
643643
.keySet()

application/src/test/java/org/opentripplanner/transit/model/timetable/TimetableSnapshotTest.java

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77
import static org.junit.jupiter.api.Assertions.assertThrows;
88
import static org.junit.jupiter.api.Assertions.assertTrue;
99

10+
import com.google.common.collect.ArrayListMultimap;
11+
import com.google.common.collect.HashMultimap;
12+
import com.google.common.collect.ImmutableSortedSet;
13+
import com.google.common.collect.ListMultimap;
14+
import com.google.common.collect.Multimap;
15+
import com.google.common.collect.SetMultimap;
1016
import java.time.LocalDate;
1117
import java.time.ZoneId;
1218
import java.util.Collection;
@@ -24,8 +30,13 @@
2430
import org.opentripplanner._support.time.ZoneIds;
2531
import org.opentripplanner.core.model.id.FeedScopedId;
2632
import org.opentripplanner.model.StopTime;
33+
import org.opentripplanner.transit.model._data.TimetableRepositoryForTest;
2734
import org.opentripplanner.transit.model.framework.Deduplicator;
35+
import org.opentripplanner.transit.model.network.Route;
2836
import org.opentripplanner.transit.model.network.TripPattern;
37+
import org.opentripplanner.transit.model.site.RegularStop;
38+
import org.opentripplanner.transit.model.site.StopLocation;
39+
import org.opentripplanner.transit.model.site.TestStopLocation;
2940
import org.opentripplanner.transit.service.TimetableRepository;
3041

3142
public class TimetableSnapshotTest {
@@ -169,6 +180,59 @@ void testClear() {
169180
assertNotNull(snapshot.getRealtimeAddedRoute(pattern.getRoute().getId()));
170181
}
171182

183+
@Test
184+
void testClearWithAllCollections() {
185+
TimetableRepositoryForTest TEST_MODEL = TimetableRepositoryForTest.of();
186+
RegularStop STOP_A = TEST_MODEL.stop("A").build();
187+
RegularStop STOP_B = TEST_MODEL.stop("B").build();
188+
189+
FeedScopedId id = new FeedScopedId(feedId, "1.2");
190+
TripIdAndServiceDate tripIdAndServiceDate = new TripIdAndServiceDate(id, SERVICE_DATE);
191+
TripOnServiceDate tripOnServiceDate = TripOnServiceDate.of(
192+
new FeedScopedId(feedId, "triponservicedateid")
193+
).build();
194+
TestStopLocation testStopLocation = new TestStopLocation(
195+
new FeedScopedId(feedId, "stoplocationid")
196+
);
197+
Route route = TimetableRepositoryForTest.route(new FeedScopedId(feedId, "routeId")).build();
198+
Trip trip = TimetableRepositoryForTest.trip(feedId, "tripId").build();
199+
TripPattern tripPattern = TripPattern.of(new FeedScopedId(feedId, "tripPatternId"))
200+
.withRoute(route)
201+
.withStopPattern(TimetableRepositoryForTest.stopPattern(STOP_A, STOP_B))
202+
.withScheduledTimeTableBuilder(builder ->
203+
builder.addTripTimes(
204+
ScheduledTripTimes.of().withTrip(trip).withDepartureTimes(new int[] { 0, 1 }).build()
205+
)
206+
)
207+
.build();
208+
209+
Multimap<Route, TripPattern> realTimeAddedPatternsForRoute = ArrayListMultimap.create();
210+
realTimeAddedPatternsForRoute.put(route, tripPattern);
211+
ListMultimap<FeedScopedId, TripOnServiceDate> realTimeAddedReplacedByTripOnServiceDateById =
212+
ArrayListMultimap.create();
213+
realTimeAddedReplacedByTripOnServiceDateById.put(id, tripOnServiceDate);
214+
SetMultimap<StopLocation, TripPattern> patternsForStop = HashMultimap.create();
215+
patternsForStop.put(testStopLocation, tripPattern);
216+
217+
// The entries do not necessarily make sense, they are only for testing the clear method.
218+
TimetableSnapshot snapshot = new TimetableSnapshot(
219+
new HashMap<>(Map.of(id, ImmutableSortedSet.of())),
220+
new HashMap<>(Map.of(tripIdAndServiceDate, tripPattern)),
221+
new HashMap<>(Map.of(id, route)),
222+
new HashMap<>(Map.of(id, trip)),
223+
new HashMap<>(Map.of(trip, tripPattern)),
224+
realTimeAddedPatternsForRoute,
225+
new HashMap<>(Map.of(id, tripOnServiceDate)),
226+
realTimeAddedReplacedByTripOnServiceDateById,
227+
new HashMap<>(Map.of(tripIdAndServiceDate, tripOnServiceDate)),
228+
patternsForStop,
229+
false
230+
);
231+
assertFalse(snapshot.isEmpty());
232+
snapshot.clear(id.getFeedId());
233+
assertTrue(snapshot.isEmpty());
234+
}
235+
172236
private static RealTimeTripUpdate createRealTimeTripUpdate(TripPattern pattern, Trip trip) {
173237
TripTimes updatedTriptimes = TripTimesFactory.tripTimes(
174238
trip,

0 commit comments

Comments
 (0)