Skip to content

Commit 8aaca27

Browse files
committed
stabilize EV route refresh test
1 parent 2fa1c84 commit 8aaca27

File tree

1 file changed

+39
-20
lines changed
  • instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core

1 file changed

+39
-20
lines changed

instrumentation-tests/src/androidTest/java/com/mapbox/navigation/instrumentation_tests/core/EVRouteRefreshTest.kt

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import com.mapbox.navigation.core.MapboxNavigation
1717
import com.mapbox.navigation.core.MapboxNavigationProvider
1818
import com.mapbox.navigation.core.directions.session.RoutesExtra
1919
import com.mapbox.navigation.core.directions.session.RoutesUpdatedResult
20+
import com.mapbox.navigation.core.internal.extensions.flowLocationMatcherResult
2021
import com.mapbox.navigation.instrumentation_tests.R
2122
import com.mapbox.navigation.instrumentation_tests.activity.EmptyTestActivity
2223
import com.mapbox.navigation.instrumentation_tests.utils.MapboxNavigationRule
@@ -75,6 +76,7 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
7576
Point.fromLngLat(11.5852259, 48.1760993),
7677
Point.fromLngLat(10.3406374, 49.16479)
7778
)
79+
private lateinit var routeHandler: MockDirectionsRequestHandler
7880

7981
override fun setupMockLocation(): Location = mockLocationUpdatesRule.generateLocationUpdate {
8082
latitude = twoCoordinates[0].latitude()
@@ -105,7 +107,7 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
105107
.build()
106108
)
107109
mockWebServerRule.requestHandlers.clear()
108-
val routeHandler = MockDirectionsRequestHandler(
110+
routeHandler = MockDirectionsRequestHandler(
109111
"driving-traffic",
110112
readRawFileText(activity, R.raw.ev_route_response_for_refresh),
111113
twoCoordinates,
@@ -131,9 +133,9 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
131133
KEY_AUXILIARY_CONSUMPTION to "300"
132134
)
133135
)
134-
mapboxNavigation.setNavigationRoutes(requestedRoutes)
135136
mapboxNavigation.startTripSession()
136137
stayOnInitialPosition()
138+
mapboxNavigation.setNavigationRoutes(requestedRoutes)
137139
waitUntilRefresh()
138140

139141
checkDoesNotHaveParameters(
@@ -150,9 +152,9 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
150152
)
151153
val requestedRoutes = requestRoutes(twoCoordinates, electric = true)
152154

153-
mapboxNavigation.setNavigationRoutes(requestedRoutes)
154155
mapboxNavigation.startTripSession()
155156
stayOnInitialPosition()
157+
mapboxNavigation.setNavigationRoutes(requestedRoutes)
156158
waitUntilRefresh()
157159

158160
checkDoesNotHaveParameters(
@@ -185,9 +187,9 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
185187
)
186188
mapboxNavigation.onEVDataUpdated(evData)
187189

188-
mapboxNavigation.setNavigationRoutes(requestedRoutes)
189190
mapboxNavigation.startTripSession()
190191
stayOnInitialPosition()
192+
mapboxNavigation.setNavigationRoutes(requestedRoutes)
191193
waitUntilRefresh()
192194

193195
checkHasParameters(
@@ -205,9 +207,9 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
205207
refreshHandler.jsonResponseModifier = DynamicResponseModifier()
206208
val requestedRoutes = requestRoutes(twoCoordinates, electric = true)
207209

208-
mapboxNavigation.setNavigationRoutes(requestedRoutes)
209210
mapboxNavigation.startTripSession()
210211
stayOnInitialPosition()
212+
mapboxNavigation.setNavigationRoutes(requestedRoutes)
211213
waitUntilRefresh()
212214

213215
val noUpdaterRefreshUrl = refreshHandler.handledRequests.first().requestUrl!!
@@ -284,9 +286,9 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
284286
)
285287
mapboxNavigation.onEVDataUpdated(evData)
286288

287-
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
288289
mapboxNavigation.startTripSession()
289290
stayOnInitialPosition()
291+
mapboxNavigation.setNavigationRoutesAndWaitForUpdate(requestedRoutes)
290292
val updatedRoutes = waitUntilRefresh().navigationRoutes
291293

292294
assertEquals(
@@ -332,10 +334,10 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
332334
KEY_AUXILIARY_CONSUMPTION to "300"
333335
)
334336
mapboxNavigation.onEVDataUpdated(evData)
335-
mapboxNavigation.setNavigationRoutes(requestedRoutes)
336-
// corresponds to currentRouteGeometryIndex = 384
337-
stayOnPosition(48.209765, 11.478632)
338337
mapboxNavigation.startTripSession()
338+
// corresponds to currentRouteGeometryIndex = 384
339+
waitUntilStayingOnPosition(48.209765, 11.478632)
340+
mapboxNavigation.setNavigationRoutes(requestedRoutes)
339341
mapboxNavigation.routeProgressUpdates().filter { progress ->
340342
progress.currentRouteGeometryIndex == geometryIndex
341343
}.first()
@@ -383,9 +385,9 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
383385
KEY_AUXILIARY_CONSUMPTION to "300"
384386
)
385387
mapboxNavigation.onEVDataUpdated(evData)
386-
mapboxNavigation.setNavigationRoutes(requestedRoutes)
387-
stayOnInitialPosition()
388388
mapboxNavigation.startTripSession()
389+
stayOnInitialPosition()
390+
mapboxNavigation.setNavigationRoutes(requestedRoutes)
389391

390392
val updatedRoutes = waitUntilRefresh().navigationRoutes
391393

@@ -438,13 +440,21 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
438440
KEY_AUXILIARY_CONSUMPTION to "300"
439441
)
440442
mapboxNavigation.onEVDataUpdated(evData)
441-
mapboxNavigation.setNavigationRoutes(requestedRoutes, initialLegIndex = 1)
442-
// corresponds to currentRouteGeometryIndex = 774
443-
stayOnPosition(48.391238, 11.064252, 90f)
444443
mapboxNavigation.startTripSession()
445-
mapboxNavigation.routeProgressUpdates().filter { progress ->
446-
progress.currentRouteGeometryIndex == routeGeometryIndex
447-
}.first()
444+
// corresponds to currentRouteGeometryIndex = 774
445+
val geometryIndexLocation = Point.fromLngLat(11.064252, 48.391238)
446+
waitUntilStayingOnPosition(
447+
geometryIndexLocation.latitude(),
448+
geometryIndexLocation.longitude(),
449+
90f
450+
)
451+
mapboxNavigation.setNavigationRoutes(requestedRoutes, initialLegIndex = 1)
452+
453+
mapboxNavigation
454+
.routeProgressUpdates()
455+
.filter { progress ->
456+
progress.currentRouteGeometryIndex == routeGeometryIndex
457+
}.first()
448458

449459
val updatedRoutes = waitUntilRefresh().navigationRoutes
450460

@@ -475,11 +485,15 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
475485
)
476486
}
477487

478-
private fun stayOnInitialPosition() {
479-
stayOnPosition(twoCoordinates[0].latitude(), twoCoordinates[0].longitude())
488+
private suspend fun stayOnInitialPosition() {
489+
waitUntilStayingOnPosition(twoCoordinates[0].latitude(), twoCoordinates[0].longitude())
480490
}
481491

482-
private fun stayOnPosition(latitude: Double, longitude: Double, bearing: Float = 190f) {
492+
private suspend fun waitUntilStayingOnPosition(
493+
latitude: Double,
494+
longitude: Double,
495+
bearing: Float = 190f
496+
) {
483497
mockLocationReplayerRule.loopUpdate(
484498
mockLocationUpdatesRule.generateLocationUpdate {
485499
this.latitude = latitude
@@ -488,6 +502,10 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
488502
},
489503
times = 120
490504
)
505+
mapboxNavigation.flowLocationMatcherResult().filter {
506+
it.enhancedLocation.latitude == latitude &&
507+
it.enhancedLocation.longitude == longitude
508+
}.first()
491509
}
492510

493511
private fun generateRouteOptions(
@@ -608,6 +626,7 @@ class EVRouteRefreshTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.
608626
twoCoordinates,
609627
relaxedExpectedCoordinates = true
610628
)
629+
mockWebServerRule.requestHandlers.remove(this.routeHandler)
611630
mockWebServerRule.requestHandlers.add(0, routeHandler)
612631
}
613632
}

0 commit comments

Comments
 (0)