@@ -220,8 +220,12 @@ class MapboxTripSessionTest {
220220 tripSession.start(true )
221221
222222 assertTrue(tripSession.isRunningWithForegroundService())
223- verify { tripService.startService() }
224- verify { tripSessionLocationEngine.startLocationUpdates(any(), any()) }
223+
224+ verifyOrder {
225+ navigator.startNavigationSession()
226+ tripService.startService()
227+ tripSessionLocationEngine.startLocationUpdates(any(), any())
228+ }
225229
226230 tripSession.stop()
227231 }
@@ -234,7 +238,10 @@ class MapboxTripSessionTest {
234238
235239 assertFalse(tripSession.isRunningWithForegroundService())
236240 verify(exactly = 0 ) { tripService.startService() }
237- verify { tripSessionLocationEngine.startLocationUpdates(any(), any()) }
241+ verifyOrder {
242+ navigator.startNavigationSession()
243+ tripSessionLocationEngine.startLocationUpdates(any(), any())
244+ }
238245
239246 tripSession.stop()
240247 }
@@ -249,9 +256,11 @@ class MapboxTripSessionTest {
249256
250257 verifyOrder {
251258 navigator.addNavigatorObserver(any())
259+ navigator.startNavigationSession()
252260 tripService.startService()
253261 tripSessionLocationEngine.startLocationUpdates(any(), any())
254262 tripSessionLocationEngine.startLocationUpdates(any(), any())
263+ navigator.stopNavigationSession()
255264 navigator.removeNavigatorObserver(any())
256265 tripSession.stop()
257266 tripSessionLocationEngine.stopLocationUpdates()
@@ -267,10 +276,12 @@ class MapboxTripSessionTest {
267276
268277 verifyOrder {
269278 navigator.addNavigatorObserver(any())
279+ navigator.startNavigationSession()
270280 tripService.startService()
271281 tripSessionLocationEngine.startLocationUpdates(false , any())
272282 tripSessionLocationEngine.startLocationUpdates(true , any())
273283 tripSessionLocationEngine.startLocationUpdates(false , any())
284+ navigator.stopNavigationSession()
274285 navigator.removeNavigatorObserver(any())
275286 tripSession.stop()
276287 tripSessionLocationEngine.stopLocationUpdates()
@@ -286,6 +297,15 @@ class MapboxTripSessionTest {
286297 verify { tripService.stopService() }
287298 }
288299
300+ @Test
301+ fun stopSessionStoppingNativeNavigationSession () {
302+ tripSession.start(true )
303+
304+ tripSession.stop()
305+
306+ verify(exactly = 1 ) { navigator.stopNavigationSession() }
307+ }
308+
289309 @Test
290310 fun stopSessionCallsLocationEngineRemoveLocationUpdates () {
291311 tripSession.start(true )
@@ -1444,31 +1464,45 @@ class MapboxTripSessionTest {
14441464 }
14451465
14461466 @Test
1447- fun `routeProgress updates ignored while primary route is being set` () = coroutineRule.runBlockingTest {
1448- val primary = mockNavigationRoute()
1449- val alternative = mockNavigationRoute()
1450- coEvery { navigator.setRoutes(primary, legIndex, listOf (alternative), any()) } coAnswers {
1451- delay(100 )
1452- createSetRouteResult()
1453- }
1467+ fun `routeProgress updates ignored while primary route is being set` () =
1468+ coroutineRule.runBlockingTest {
1469+ val primary = mockNavigationRoute()
1470+ val alternative = mockNavigationRoute()
1471+ coEvery {
1472+ navigator.setRoutes(
1473+ primary,
1474+ legIndex,
1475+ listOf (alternative),
1476+ any()
1477+ )
1478+ } coAnswers {
1479+ delay(100 )
1480+ createSetRouteResult()
1481+ }
14541482
1455- val observer = mockk<RouteProgressObserver >(relaxUnitFun = true )
1483+ val observer = mockk<RouteProgressObserver >(relaxUnitFun = true )
14561484
1457- val tripSession = buildTripSession()
1458- tripSession.registerRouteProgressObserver(observer)
1459- tripSession.start(withTripService = true )
1485+ val tripSession = buildTripSession()
1486+ tripSession.registerRouteProgressObserver(observer)
1487+ tripSession.start(withTripService = true )
14601488
1461- pauseDispatcher {
1462- launch { tripSession.setRoutes(listOf (primary, alternative), setRoutesInfo) }
1463- runCurrent()
1464- advanceTimeBy(delayTimeMillis = 50 )
1465- navigatorObserverImplSlot.captured.onStatus(navigationStatusOrigin, navigationStatus)
1466- verify(exactly = 0 ) { observer.onRouteProgressChanged(any()) }
1467- advanceTimeBy(delayTimeMillis = 100 )
1468- navigatorObserverImplSlot.captured.onStatus(navigationStatusOrigin, navigationStatus)
1469- verify(exactly = 1 ) { observer.onRouteProgressChanged(any()) }
1489+ pauseDispatcher {
1490+ launch { tripSession.setRoutes(listOf (primary, alternative), setRoutesInfo) }
1491+ runCurrent()
1492+ advanceTimeBy(delayTimeMillis = 50 )
1493+ navigatorObserverImplSlot.captured.onStatus(
1494+ navigationStatusOrigin,
1495+ navigationStatus
1496+ )
1497+ verify(exactly = 0 ) { observer.onRouteProgressChanged(any()) }
1498+ advanceTimeBy(delayTimeMillis = 100 )
1499+ navigatorObserverImplSlot.captured.onStatus(
1500+ navigationStatusOrigin,
1501+ navigationStatus
1502+ )
1503+ verify(exactly = 1 ) { observer.onRouteProgressChanged(any()) }
1504+ }
14701505 }
1471- }
14721506
14731507 @Test
14741508 fun `routeProgress updates not ignored while only alternative route is being set` () =
0 commit comments