Skip to content

Commit 45d7271

Browse files
committed
Add test to verify route changes by id
1 parent 20d191f commit 45d7271

1 file changed

Lines changed: 47 additions & 2 deletions

File tree

libnavigation-core/src/test/java/com/mapbox/navigation/core/replay/route/ReplayRouteSessionTest.kt

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,13 +296,13 @@ class ReplayRouteSessionTest {
296296
val primaryRoute = activeRoutes.navigationRoutes.first()
297297

298298
sut.onAttached(mapboxNavigation)
299+
routesObserver.captured.onRoutesChanged(activeRoutes)
299300
progressObserver.captured.onRouteProgressChanged(
300301
mockk {
301302
every { navigationRoute } returns primaryRoute
302303
every { currentRouteGeometryIndex } returns 15
303304
}
304305
)
305-
routesObserver.captured.onRoutesChanged(activeRoutes)
306306

307307
val pushedEvents = slot<List<ReplayEventBase>>()
308308
verify { replayer.pushEvents(capture(pushedEvents)) }
@@ -321,19 +321,64 @@ class ReplayRouteSessionTest {
321321
val primaryRoute = activeRoutes.navigationRoutes.first()
322322

323323
sut.onAttached(mapboxNavigation)
324+
routesObserver.captured.onRoutesChanged(activeRoutes)
324325
progressObserver.captured.onRouteProgressChanged(
325326
mockk {
326327
every { navigationRoute } returns primaryRoute
327328
every { currentRouteGeometryIndex } returns 12
328329
}
329330
)
330-
routesObserver.captured.onRoutesChanged(activeRoutes)
331331

332332
val pushedEvents = slot<List<ReplayEventBase>>()
333333
verify { replayer.pushEvents(capture(pushedEvents)) }
334334
verifySkipToIndex(pushedEvents.captured, primaryRoute, 12)
335335
}
336336

337+
@Test
338+
fun `onRouteProgress - will change to new route when the route changes`() {
339+
val progressObserver = slot<RouteProgressObserver>()
340+
val routesObserver = slot<RoutesObserver>()
341+
every {
342+
mapboxNavigation.registerRouteProgressObserver(capture(progressObserver))
343+
} just runs
344+
every { mapboxNavigation.registerRoutesObserver(capture(routesObserver)) } just runs
345+
val firstRoutesUpdatedResult = mockActiveRoutesUpdatedResult()
346+
val firstRoute = firstRoutesUpdatedResult.navigationRoutes.first()
347+
every { firstRoute.id } returns "test-first-route-id"
348+
val firstRouteProgress = mockk<RouteProgress> {
349+
every { navigationRoute } returns firstRoute
350+
every { currentRouteGeometryIndex } returns 12
351+
}
352+
val secondRoutesUpdatedResult = mockActiveRoutesUpdatedResult()
353+
val secondRoute = secondRoutesUpdatedResult.navigationRoutes.first()
354+
every { secondRoute.id } returns "test-second-route-id"
355+
val secondRouteProgress = mockk<RouteProgress> {
356+
every { navigationRoute } returns secondRoute
357+
every { currentRouteGeometryIndex } returns 13
358+
}
359+
360+
sut.onAttached(mapboxNavigation)
361+
routesObserver.captured.onRoutesChanged(firstRoutesUpdatedResult)
362+
progressObserver.captured.onRouteProgressChanged(firstRouteProgress)
363+
progressObserver.captured.onRouteProgressChanged(firstRouteProgress)
364+
progressObserver.captured.onRouteProgressChanged(firstRouteProgress)
365+
routesObserver.captured.onRoutesChanged(secondRoutesUpdatedResult)
366+
progressObserver.captured.onRouteProgressChanged(secondRouteProgress)
367+
368+
verify(exactly = 2) {
369+
replayer.clearEvents()
370+
replayer.pushEvents(any())
371+
}
372+
verifyOrder {
373+
replayer.clearEvents()
374+
replayer.play()
375+
replayer.pushEvents(any())
376+
replayer.clearEvents()
377+
replayer.play()
378+
replayer.pushEvents(any())
379+
}
380+
}
381+
337382
private fun verifySkipToIndex(
338383
pushedEvents: List<ReplayEventBase>,
339384
primaryRoute: NavigationRoute,

0 commit comments

Comments
 (0)