@@ -11,6 +11,9 @@ import com.mapbox.navigation.base.route.NavigationRouterCallback
1111import com.mapbox.navigation.base.route.RouterOrigin
1212import com.mapbox.navigation.base.trip.model.RouteLegProgress
1313import com.mapbox.navigation.base.trip.model.RouteProgress
14+ import com.mapbox.navigation.core.adasis.AdasisConfig
15+ import com.mapbox.navigation.core.adasis.AdasisMessageContext
16+ import com.mapbox.navigation.core.adasis.AdasisV2MessageCallback
1417import com.mapbox.navigation.core.arrival.ArrivalController
1518import com.mapbox.navigation.core.arrival.ArrivalProgressObserver
1619import com.mapbox.navigation.core.directions.session.DirectionsSessionRoutes
@@ -36,6 +39,8 @@ import com.mapbox.navigation.core.routerefresh.RouteRefreshObserver
3639import com.mapbox.navigation.core.routerefresh.RouteRefresherResult
3740import com.mapbox.navigation.core.routerefresh.RouteRefresherStatus
3841import com.mapbox.navigation.core.routerefresh.RoutesRefresherResult
42+ import com.mapbox.navigation.core.sensor.SensorData
43+ import com.mapbox.navigation.core.sensor.UpdateExternalSensorDataCallback
3944import com.mapbox.navigation.core.telemetry.MapboxNavigationTelemetry
4045import com.mapbox.navigation.core.testutil.createRoutesUpdatedResult
4146import com.mapbox.navigation.core.trip.session.LocationObserver
@@ -52,6 +57,7 @@ import com.mapbox.navigation.navigator.internal.NavigatorLoader
5257import com.mapbox.navigation.testing.factories.createDirectionsRoute
5358import com.mapbox.navigation.testing.factories.createNavigationRoute
5459import com.mapbox.navigation.testing.factories.createRouteOptions
60+ import com.mapbox.navigator.ADASISv2MessageCallback
5561import com.mapbox.navigator.FallbackVersionsObserver
5662import com.mapbox.navigator.NavigatorConfig
5763import com.mapbox.navigator.RouteAlternative
@@ -2382,6 +2388,81 @@ internal class MapboxNavigationTest : MapboxNavigationBaseTest() {
23822388 }
23832389 }
23842390
2391+ @Test
2392+ fun updateExternalSensorData () {
2393+ createMapboxNavigation()
2394+
2395+ val nativeCallbackSlot = slot< com.mapbox.navigator.UpdateExternalSensorDataCallback > ()
2396+ every { navigator.updateExternalSensorData(any(), capture(nativeCallbackSlot)) } answers {
2397+ nativeCallbackSlot.captured.run (true )
2398+ }
2399+
2400+ val weatherSensorData = SensorData .Weather (SensorData .Weather .ConditionType .FOG )
2401+ val callback = mockk<UpdateExternalSensorDataCallback >(relaxed = true )
2402+ mapboxNavigation.updateExternalSensorData(weatherSensorData, callback)
2403+
2404+ verify(exactly = 1 ) {
2405+ navigator.updateExternalSensorData(
2406+ eq(weatherSensorData.toNativeSensorData()),
2407+ eq(nativeCallbackSlot.captured)
2408+ )
2409+ }
2410+
2411+ verify(exactly = 1 ) {
2412+ callback.onResult(eq(true ))
2413+ }
2414+ }
2415+
2416+ @Test
2417+ fun setAdasisMessageCallback () {
2418+ createMapboxNavigation()
2419+
2420+ val testMessageBuffer = listOf<Byte >(1 , 2 , 3 )
2421+ val testMessageContext = com.mapbox.navigator.AdasisMessageContext (123 )
2422+ val nativeCallbackSlot = slot<ADASISv2MessageCallback >()
2423+ every { navigator.setAdasisMessageCallback(capture(nativeCallbackSlot), any()) } answers {
2424+ nativeCallbackSlot.captured.run (testMessageBuffer, testMessageContext)
2425+ }
2426+
2427+ val adasisConfig = AdasisConfig .Builder ().build()
2428+ val callback = mockk<AdasisV2MessageCallback >(relaxed = true )
2429+ mapboxNavigation.setAdasisMessageCallback(adasisConfig, callback)
2430+
2431+ verify(exactly = 1 ) {
2432+ navigator.setAdasisMessageCallback(
2433+ nativeCallbackSlot.captured,
2434+ adasisConfig.toNativeAdasisConfig()
2435+ )
2436+ }
2437+
2438+ verify(exactly = 1 ) {
2439+ callback.onMessage(
2440+ eq(testMessageBuffer),
2441+ eq(AdasisMessageContext .createFromNativeObject(testMessageContext))
2442+ )
2443+ }
2444+ }
2445+
2446+ @Test
2447+ fun resetAdasisMessageCallback () {
2448+ createMapboxNavigation()
2449+ mapboxNavigation.resetAdasisMessageCallback()
2450+
2451+ verify(exactly = 1 ) {
2452+ navigator.resetAdasisMessageCallback()
2453+ }
2454+ }
2455+
2456+ @Test
2457+ fun destroy_resetAdasisMessageCallback () {
2458+ createMapboxNavigation()
2459+ mapboxNavigation.onDestroy()
2460+
2461+ verify(exactly = 1 ) {
2462+ navigator.resetAdasisMessageCallback()
2463+ }
2464+ }
2465+
23852466 private fun interceptRefreshObserver (): RouteRefreshObserver {
23862467 val observers = mutableListOf<RouteRefreshObserver >()
23872468 verify { routeRefreshController.registerRouteRefreshObserver(capture(observers)) }
0 commit comments