Skip to content

Commit 1ea6c0a

Browse files
committed
fixed geomertries
1 parent 94e04b5 commit 1ea6c0a

File tree

2 files changed

+23362
-14
lines changed

2 files changed

+23362
-14
lines changed

libnavigation-core/src/androidTest/java/com/mapbox/navigation/core/trip/service/ArtificialDriverTest.kt

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package com.mapbox.navigation.core.trip.service
22

3-
import android.util.Log
43
import androidx.test.ext.junit.runners.AndroidJUnit4
54
import androidx.test.platform.app.InstrumentationRegistry
6-
import com.mapbox.api.directions.v5.models.DirectionsRoute
75
import com.mapbox.navigation.base.options.NavigationOptions
86
import com.mapbox.navigation.base.route.NavigationRoute
97
import com.mapbox.navigation.base.route.RouterOrigin
10-
import com.mapbox.navigation.base.route.toNavigationRoute
8+
import com.mapbox.navigation.core.MapboxNavigation
119
import com.mapbox.navigation.core.MapboxNavigationProvider
1210
import com.mapbox.navigation.core.navigator.toFixLocation
1311
import com.mapbox.navigation.core.replay.history.ReplayEventUpdateLocation
@@ -34,17 +32,22 @@ import kotlinx.coroutines.runBlocking
3432
import org.junit.Assert.assertTrue
3533
import org.junit.Test
3634
import org.junit.runner.RunWith
35+
import kotlin.coroutines.resume
36+
import kotlin.coroutines.suspendCoroutine
3737

3838
@RunWith(AndroidJUnit4::class)
3939
class ArtificialDriverTest {
4040

4141
@Test
4242
fun testFollowingRoute() = runBlocking<Unit>(Dispatchers.Main) {
43-
getNativeNavigator { nativeNavigator ->
43+
withNavigators { mapboxNavigation, nativeNavigator ->
44+
mapboxNavigation.historyRecorder.startRecording()
4445
val testRoute = getTestRoute()
4546
val replayRouteMapper = ReplayRouteMapper()
46-
val events = replayRouteMapper.mapDirectionsRouteGeometry(testRoute.directionsRoute).filterIsInstance<ReplayEventUpdateLocation>()
47-
val setRoutesResult = nativeNavigator.setRoutes(testRoute, reason = SetRoutesReason.NEW_ROUTE)
47+
val events = replayRouteMapper.mapDirectionsRouteGeometry(testRoute.directionsRoute)
48+
.filterIsInstance<ReplayEventUpdateLocation>()
49+
val setRoutesResult =
50+
nativeNavigator.setRoutes(testRoute, reason = SetRoutesReason.NEW_ROUTE)
4851
assertTrue("result is $setRoutesResult", setRoutesResult.isValue)
4952
val statusesTracking = async<List<NavigationStatus>> {
5053
nativeNavigator.collectStatuses(untilRouteState = RouteState.COMPLETE)
@@ -56,7 +59,16 @@ class ArtificialDriverTest {
5659
}
5760

5861
val states = statusesTracking.await()
59-
assertTrue(states.all { it.routeState == RouteState.TRACKING })
62+
val historyFile = suspendCoroutine<String> { continuation ->
63+
mapboxNavigation.historyRecorder.stopRecording {
64+
continuation.resume(it ?: "null")
65+
}
66+
}
67+
val notTrackingStates = states.filter { it.routeState != RouteState.TRACKING }
68+
assertTrue(
69+
"not all states are tracking, see history file $historyFile: $notTrackingStates",
70+
notTrackingStates.isEmpty()
71+
)
6072
}
6173
}
6274
}
@@ -81,7 +93,6 @@ data class OnStatusUpdateParameters(
8193
fun MapboxNativeNavigator.statusUpdates(): Flow<OnStatusUpdateParameters> {
8294
return callbackFlow {
8395
val observer = NavigatorObserver { origin, status ->
84-
Log.d("vadzim-debug", "$origin, $status")
8596
this.trySend(OnStatusUpdateParameters(origin, status))
8697
}
8798
addNavigatorObserver(observer)
@@ -91,21 +102,23 @@ fun MapboxNativeNavigator.statusUpdates(): Flow<OnStatusUpdateParameters> {
91102
}
92103
}
93104

94-
private suspend fun getNativeNavigator(block: suspend (MapboxNativeNavigator) -> Unit) {
105+
private suspend fun withNavigators(block: suspend (MapboxNavigation, MapboxNativeNavigator) -> Unit) {
95106
val context = InstrumentationRegistry.getInstrumentation().targetContext
96107
val mapboxNavigation = MapboxNavigationProvider.create(
97108
NavigationOptions.Builder(context)
98109
.accessToken(context.getString(R.string.mapbox_access_token))
99110
.build()
100111
)
101-
block(MapboxNativeNavigatorImpl)
112+
block(mapboxNavigation, MapboxNativeNavigatorImpl)
102113
mapboxNavigation.onDestroy()
103114
}
104115

105116
private fun getTestRoute(): NavigationRoute {
106117
val context = InstrumentationRegistry.getInstrumentation().targetContext
107-
return DirectionsRoute.fromJson(
108-
context.resources.openRawResource(R.raw.multileg_route)
109-
.readBytes().decodeToString()
110-
).toNavigationRoute(RouterOrigin.Custom())
118+
return NavigationRoute.create(
119+
directionsResponseJson = context.resources.openRawResource(R.raw.test_long_route)
120+
.readBytes().decodeToString(),
121+
routeRequestUrl = "https://api.mapbox.com/directions/v5/mapbox/driving/11.566744%2C48.143769%3B8.675521%2C50.119087?alternatives=false&geometries=polyline6&language=en&overview=full&steps=true&access_token=YOUR_MAPBOX_ACCESS_TOKEN",
122+
routerOrigin = RouterOrigin.Custom()
123+
).first()
111124
}

0 commit comments

Comments
 (0)