@@ -11,6 +11,9 @@ import com.mapbox.navigation.base.route.NavigationRouterCallback
11
11
import com.mapbox.navigation.base.route.RouterOrigin
12
12
import com.mapbox.navigation.base.trip.model.RouteLegProgress
13
13
import 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
14
17
import com.mapbox.navigation.core.arrival.ArrivalController
15
18
import com.mapbox.navigation.core.arrival.ArrivalProgressObserver
16
19
import com.mapbox.navigation.core.directions.session.DirectionsSessionRoutes
@@ -36,6 +39,8 @@ import com.mapbox.navigation.core.routerefresh.RouteRefreshObserver
36
39
import com.mapbox.navigation.core.routerefresh.RouteRefresherResult
37
40
import com.mapbox.navigation.core.routerefresh.RouteRefresherStatus
38
41
import com.mapbox.navigation.core.routerefresh.RoutesRefresherResult
42
+ import com.mapbox.navigation.core.sensor.SensorData
43
+ import com.mapbox.navigation.core.sensor.UpdateExternalSensorDataCallback
39
44
import com.mapbox.navigation.core.telemetry.MapboxNavigationTelemetry
40
45
import com.mapbox.navigation.core.testutil.createRoutesUpdatedResult
41
46
import com.mapbox.navigation.core.trip.session.LocationObserver
@@ -52,6 +57,7 @@ import com.mapbox.navigation.navigator.internal.NavigatorLoader
52
57
import com.mapbox.navigation.testing.factories.createDirectionsRoute
53
58
import com.mapbox.navigation.testing.factories.createNavigationRoute
54
59
import com.mapbox.navigation.testing.factories.createRouteOptions
60
+ import com.mapbox.navigator.ADASISv2MessageCallback
55
61
import com.mapbox.navigator.FallbackVersionsObserver
56
62
import com.mapbox.navigator.NavigatorConfig
57
63
import com.mapbox.navigator.RouteAlternative
@@ -2382,6 +2388,81 @@ internal class MapboxNavigationTest : MapboxNavigationBaseTest() {
2382
2388
}
2383
2389
}
2384
2390
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
+
2385
2466
private fun interceptRefreshObserver (): RouteRefreshObserver {
2386
2467
val observers = mutableListOf<RouteRefreshObserver >()
2387
2468
verify { routeRefreshController.registerRouteRefreshObserver(capture(observers)) }
0 commit comments