Skip to content

Commit e39e748

Browse files
committed
added test for switching primary route
1 parent b5c1336 commit e39e748

File tree

1 file changed

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

1 file changed

+52
-0
lines changed

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

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import com.mapbox.navigation.instrumentation_tests.utils.routes.RoutesProvider.t
2222
import com.mapbox.navigation.testing.ui.BaseTest
2323
import com.mapbox.navigation.testing.ui.utils.getMapboxAccessTokenFromResources
2424
import com.mapbox.navigation.testing.ui.utils.runOnMainSync
25+
import kotlinx.coroutines.flow.drop
2526
import kotlinx.coroutines.flow.first
2627
import org.junit.Assert.assertEquals
2728
import org.junit.Assert.assertNull
@@ -136,4 +137,55 @@ class RoutesPreviewTest : BaseTest<EmptyTestActivity>(EmptyTestActivity::class.j
136137
it.navigationRoute == updatedRoutes[0]
137138
}
138139
}
140+
141+
@Test
142+
fun start_active_guidance_from_previewed_alternative_route() = sdkTest {
143+
// set routes preview
144+
val routes = RoutesProvider.dc_short_with_alternative(activity).toNavigationRoutes()
145+
mapboxNavigation.setRoutesPreview(routes)
146+
val preview = mapboxNavigation.routesPreviewUpdates()
147+
.first { it.reason == RoutesPreviewUpdateReasons.PREVIEW_NEW }
148+
// switch to alternative route
149+
mapboxNavigation.changeRoutesPreviewPrimaryRoute(
150+
preview.routesPreview!!.originalRoutesList[1]
151+
)
152+
val updatedPreview = mapboxNavigation.routesPreviewUpdates()
153+
.first { it != preview }
154+
// start active guidance
155+
mapboxNavigation.setNavigationRoutes(updatedPreview.routesPreview!!.routesList)
156+
mapboxNavigation.setRoutesPreview(emptyList())
157+
val routesUpdate = mapboxNavigation.routesUpdates()
158+
.first { it.reason == RoutesExtra.ROUTES_UPDATE_REASON_NEW }
159+
assertEquals(
160+
listOf(
161+
routes[1],
162+
routes[0]
163+
),
164+
routesUpdate.navigationRoutes
165+
)
166+
val previewAlternativeMetadata = updatedPreview.routesPreview!!.alternativesMetadata.first()
167+
val activeGuidanceAlternativeMetadata = mapboxNavigation
168+
.getAlternativeMetadataFor(routes[0])!!
169+
// Doesn't pass as they have different alternative ids
170+
// assertEquals(
171+
// previewAlternativeMetadata,
172+
// activeGuidanceAlternativeMetadata
173+
// )
174+
assertEquals(
175+
previewAlternativeMetadata.infoFromStartOfPrimary,
176+
activeGuidanceAlternativeMetadata.infoFromStartOfPrimary
177+
)
178+
assertEquals(
179+
previewAlternativeMetadata.forkIntersectionOfAlternativeRoute,
180+
activeGuidanceAlternativeMetadata.forkIntersectionOfAlternativeRoute
181+
)
182+
assertEquals(
183+
previewAlternativeMetadata.infoFromFork,
184+
activeGuidanceAlternativeMetadata.infoFromFork
185+
)
186+
assertEquals(
187+
previewAlternativeMetadata.forkIntersectionOfPrimaryRoute,
188+
activeGuidanceAlternativeMetadata.forkIntersectionOfPrimaryRoute
189+
)
190+
}
139191
}

0 commit comments

Comments
 (0)