Skip to content

Commit

Permalink
updated mapbox-java to v6.9.0-beta.1
Browse files Browse the repository at this point in the history
Includes workaround for mockk/mockk#255.
  • Loading branch information
LukasPaczos committed Oct 24, 2022
1 parent c5a26f0 commit 8273101
Show file tree
Hide file tree
Showing 8 changed files with 96 additions and 74 deletions.
2 changes: 1 addition & 1 deletion gradle/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ ext {

version = [
mapboxMapSdk : '10.9.0-rc.1',
mapboxSdkServices : '6.8.0',
mapboxSdkServices : '6.9.0-beta.1',
mapboxCore : '5.0.2',
mapboxNavigator : "${mapboxNavigatorVersion}",
mapboxCommonNative : '23.1.0-rc.2',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -504,9 +504,14 @@ class NavigationRouteExTest {
),
5
)
val validStep = mockk<LegStep>(relaxed = true) {
every { geometry() } returns twoPointGeometry
}
val validStep = LegStep.builder()
.geometry(twoPointGeometry)
.distance(1.0)
.duration(2.0)
.weight(3.0)
.mode("mode")
.maneuver(mockk())
.build()
return NavigationRoute(
DirectionsResponse.builder()
.routes(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ import com.mapbox.navigation.base.internal.NativeRouteParserWrapper
import com.mapbox.navigation.base.internal.route.RouteCompatibilityCache
import com.mapbox.navigation.base.internal.utils.DirectionsRouteMissingConditionsCheck
import com.mapbox.navigation.testing.FileUtils
import com.mapbox.navigation.testing.MapboxJavaObjectsFactory
import com.mapbox.navigator.RouteInterface
import io.mockk.every
import io.mockk.mockk
import io.mockk.mockkObject
import io.mockk.slot
import io.mockk.spyk
import io.mockk.unmockkObject
import io.mockk.verify
import org.json.JSONObject
Expand Down Expand Up @@ -96,7 +98,7 @@ class NavigationRouteTest {

@Test
fun `toNavigationRoute - waypoints back filled from route options`() {
val directionsRoute = mockk<DirectionsRoute> {
val directionsRoute = spyk(MapboxJavaObjectsFactory.directionsRoute()) {
every { requestUuid() } returns "asdf"
every { routeIndex() } returns "0"
every { routeOptions() } returns RouteOptions.builder()
Expand All @@ -109,7 +111,6 @@ class NavigationRouteTest {
)
.build()
every { legs() } returns null
every { toBuilder() } returns mockk(relaxed = true)
}

val navigationRoute = directionsRoute.toNavigationRoute()
Expand All @@ -133,7 +134,7 @@ class NavigationRouteTest {

@Test
fun `toNavigationRoute - uuid from route used`() {
val directionsRoute = mockk<DirectionsRoute> {
val directionsRoute = spyk(MapboxJavaObjectsFactory.directionsRoute()) {
every { requestUuid() } returns "asdf"
every { routeIndex() } returns "0"
every { routeOptions() } returns RouteOptions.builder()
Expand All @@ -146,7 +147,6 @@ class NavigationRouteTest {
)
.build()
every { legs() } returns null
every { toBuilder() } returns mockk(relaxed = true)
}

val navigationRoute = directionsRoute.toNavigationRoute(RouterOrigin.Offboard)
Expand All @@ -165,7 +165,7 @@ class NavigationRouteTest {

@Test
fun `toNavigationRoute - waypoints back filled from route options ignoring silent`() {
val directionsRoute = mockk<DirectionsRoute> {
val directionsRoute = spyk(MapboxJavaObjectsFactory.directionsRoute()) {
every { requestUuid() } returns "asdf"
every { routeIndex() } returns "0"
every { routeOptions() } returns RouteOptions.builder()
Expand All @@ -181,7 +181,6 @@ class NavigationRouteTest {
.waypointIndicesList(listOf(0, 2, 3))
.build()
every { legs() } returns null
every { toBuilder() } returns mockk(relaxed = true)
}

val navigationRoute = directionsRoute.toNavigationRoute()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import com.mapbox.navigation.base.route.RouterFailure
import com.mapbox.navigation.base.route.RouterOrigin
import com.mapbox.navigation.core.BasicSetRoutesInfo
import com.mapbox.navigation.core.NavigationComponentProvider
import com.mapbox.navigation.testing.MapboxJavaObjectsFactory
import io.mockk.clearMocks
import io.mockk.every
import io.mockk.just
Expand All @@ -33,7 +34,7 @@ class MapboxDirectionsSessionTest {
private lateinit var session: MapboxDirectionsSession

private val router: NavigationRouterV2 = mockk(relaxUnitFun = true)
private val routeOptions: RouteOptions = mockk(relaxUnitFun = true)
private val routeOptions: RouteOptions = MapboxJavaObjectsFactory.routeOptions()
private val routerCallback: NavigationRouterCallback = mockk(relaxUnitFun = true)
private val routesRefreshRequestCallback: NavigationRouterRefreshCallback =
mockk(relaxUnitFun = true)
Expand All @@ -50,19 +51,7 @@ class MapboxDirectionsSessionTest {

@Before
fun setUp() {
val routeOptionsBuilder: RouteOptions.Builder = mockk(relaxUnitFun = true)
every { routeOptionsBuilder.waypointIndices(any()) } returns routeOptionsBuilder
every { routeOptionsBuilder.waypointNames(any()) } returns routeOptionsBuilder
every { routeOptionsBuilder.waypointTargets(any()) } returns routeOptionsBuilder
every { routeOptionsBuilder.build() } returns routeOptions
every { routeOptions.toBuilder() } returns routeOptionsBuilder
every { routeOptions.waypointIndices() } returns ""
every { routeOptions.waypointNames() } returns ""
every { routeOptions.waypointTargets() } returns ""
val routeBuilder: DirectionsRoute.Builder = mockk(relaxUnitFun = true)
every { route.directionsRoute.toBuilder() } returns routeBuilder
every { routeBuilder.routeOptions(any()) } returns routeBuilder
every { routeBuilder.build() } returns mockk()
every { route.directionsRoute } returns MapboxJavaObjectsFactory.directionsRoute()

val routeListener = slot<NavigationRouterCallback>()
val refreshListener = slot<NavigationRouterRefreshCallback>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.mapbox.navigation.core.reroute

import com.mapbox.api.directions.v5.DirectionsCriteria
import com.mapbox.api.directions.v5.models.RouteOptions
import com.mapbox.geojson.Point
import com.mapbox.navigation.base.internal.route.routerOrigin
import com.mapbox.navigation.base.options.RerouteOptions
import com.mapbox.navigation.base.route.NavigationRoute
Expand All @@ -14,8 +15,10 @@ import com.mapbox.navigation.core.trip.session.LocationMatcherResult
import com.mapbox.navigation.core.trip.session.TripSession
import com.mapbox.navigation.testing.LoggingFrontendTestRule
import com.mapbox.navigation.testing.MainCoroutineRule
import com.mapbox.navigation.testing.MapboxJavaObjectsFactory
import com.mapbox.navigation.utils.internal.ThreadController
import io.mockk.MockKAnnotations
import io.mockk.clearMocks
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.just
Expand Down Expand Up @@ -55,11 +58,12 @@ class MapboxRerouteControllerTest {
@MockK
private lateinit var rerouteOptions: RerouteOptions

@MockK
private lateinit var successFromResult: RouteOptionsUpdater.RouteOptionsResult.Success
private val routeOptionsFromSuccessResult = MapboxJavaObjectsFactory.routeOptions(
coordinates = listOf(Point.fromLngLat(53.0, 27.0), Point.fromLngLat(76.5, 34.8))
)

@MockK
private lateinit var routeOptionsFromSuccessResult: RouteOptions
private val successFromResult =
RouteOptionsUpdater.RouteOptionsResult.Success(routeOptionsFromSuccessResult)

@MockK
private lateinit var errorFromResult: RouteOptionsUpdater.RouteOptionsResult.Error
Expand All @@ -79,6 +83,9 @@ class MapboxRerouteControllerTest {
@Before
fun setup() {
MockKAnnotations.init(this, relaxUnitFun = true, relaxed = true)
every {
directionsSession.getPrimaryRouteOptions()
} returns MapboxJavaObjectsFactory.routeOptions()
rerouteController = spyk(
MapboxRerouteController(
directionsSession,
Expand All @@ -88,7 +95,6 @@ class MapboxRerouteControllerTest {
ThreadController()
)
)
every { successFromResult.routeOptions } returns routeOptionsFromSuccessResult
}

@After
Expand Down Expand Up @@ -142,9 +148,9 @@ class MapboxRerouteControllerTest {
addRerouteStateObserver()
val routes = listOf(
mockk<NavigationRoute> {
every { directionsRoute } returns mockk {
every { routeOptions() } returns null
}
every {
directionsRoute
} returns MapboxJavaObjectsFactory.directionsRoute(routeOptions = null)
}
)
val origin = mockk<RouterOrigin>()
Expand Down Expand Up @@ -242,7 +248,7 @@ class MapboxRerouteControllerTest {
} returns 1L

rerouteController.reroute(routeCallback)
routeRequestCallback.captured.onFailure(mockk(), mockk())
routeRequestCallback.captured.onFailure(mockk(), MapboxJavaObjectsFactory.routeOptions())

verify(exactly = 1) {
primaryRerouteObserver.onRerouteStateChanged(RerouteState.FetchingRoute)
Expand Down Expand Up @@ -274,7 +280,7 @@ class MapboxRerouteControllerTest {
} returns 1L

rerouteController.reroute(routeCallback)
routeRequestCallback.captured.onCanceled(mockk(), mockk())
routeRequestCallback.captured.onCanceled(MapboxJavaObjectsFactory.routeOptions(), mockk())

verify(exactly = 1) {
primaryRerouteObserver.onRerouteStateChanged(RerouteState.FetchingRoute)
Expand Down Expand Up @@ -343,7 +349,10 @@ class MapboxRerouteControllerTest {
every {
directionsSession.cancelRouteRequest(1L)
} answers {
routeRequestCallback.captured.onCanceled(mockk(), mockk())
routeRequestCallback.captured.onCanceled(
MapboxJavaObjectsFactory.routeOptions(),
mockk()
)
}

rerouteController.reroute(routeCallback)
Expand Down Expand Up @@ -408,14 +417,10 @@ class MapboxRerouteControllerTest {
Triple(5000f, 1, 1000.0),
Triple(200f, 0, null),
).forEach { (speed, secondsRadius, expectedMetersRadius) ->
val mockRo = mockk<RouteOptions> {
every { profile() } returns DirectionsCriteria.PROFILE_DRIVING_TRAFFIC
}
val mockRoBuilder = mockk<RouteOptions.Builder>()
every { directionsSession.getPrimaryRouteOptions() } returns mockRo
every { mockRo.toBuilder() } returns mockRoBuilder
every { mockRoBuilder.avoidManeuverRadius(any()) } returns mockRoBuilder
every { mockRoBuilder.build() } returns mockRo
val mockRoute = MapboxJavaObjectsFactory.routeOptions(
profile = DirectionsCriteria.PROFILE_DRIVING_TRAFFIC
)
every { directionsSession.getPrimaryRouteOptions() } returns mockRoute
mockRouteOptionsResult(successFromResult)
addRerouteStateObserver()
every { rerouteOptions.avoidManeuverSeconds } returns secondsRadius
Expand All @@ -429,10 +434,15 @@ class MapboxRerouteControllerTest {
}
}

clearMocks(routeOptionsUpdater, answers = false)
rerouteController.reroute(routeCallback)

verify(exactly = 1) {
mockRoBuilder.avoidManeuverRadius(expectedMetersRadius)
routeOptionsUpdater.update(
mockRoute.toBuilder().avoidManeuverRadius(expectedMetersRadius).build(),
any(),
any()
)
}
}

Expand All @@ -455,14 +465,8 @@ class MapboxRerouteControllerTest {
Pair(DirectionsCriteria.PROFILE_DRIVING_TRAFFIC, true),
Pair(DirectionsCriteria.PROFILE_WALKING, false),
).forEach { (profile, result) ->
val mockRo = mockk<RouteOptions> {
every { profile() } returns profile
}
val mockRoBuilder = mockk<RouteOptions.Builder>()
val mockRo = MapboxJavaObjectsFactory.routeOptions(profile = profile)
every { directionsSession.getPrimaryRouteOptions() } returns mockRo
every { mockRo.toBuilder() } returns mockRoBuilder
every { mockRoBuilder.avoidManeuverRadius(any()) } returns mockRoBuilder
every { mockRoBuilder.build() } returns mockRo
mockRouteOptionsResult(successFromResult)
addRerouteStateObserver()
every { rerouteOptions.avoidManeuverSeconds } returns 1
Expand All @@ -476,16 +480,15 @@ class MapboxRerouteControllerTest {
}
}

clearMocks(routeOptionsUpdater, answers = false)
rerouteController.reroute(routeCallback)

verify(
exactly = if (result) {
1
} else {
0
}
) {
mockRoBuilder.avoidManeuverRadius(any())
verify(exactly = 1) {
routeOptionsUpdater.update(
mockRo.toBuilder().avoidManeuverRadius(if (result) 200.0 else null).build(),
any(),
any()
)
}
}

Expand All @@ -510,7 +513,7 @@ class MapboxRerouteControllerTest {
@Test
fun uses_route_options_delegate() {
mockRouteOptionsResult(successFromResult)
val mockNewRouteOptions = mockk<RouteOptions>()
val mockNewRouteOptions = MapboxJavaObjectsFactory.routeOptions()
val mockRerouteOptionsDelegateManger = mockk<RerouteOptionsAdapter> {
every { onRouteOptions(any()) } returns mockNewRouteOptions
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import com.mapbox.navigation.base.route.NavigationRoute
import com.mapbox.navigation.base.route.NavigationRouterCallback
import com.mapbox.navigation.core.MapboxNavigation
import com.mapbox.navigation.testing.LoggingFrontendTestRule
import com.mapbox.navigation.testing.MapboxJavaObjectsFactory
import io.mockk.CapturingSlot
import io.mockk.Runs
import io.mockk.every
Expand All @@ -32,9 +33,7 @@ class CarRoutePreviewRequestTest {
private val routeOptionsSlot = CapturingSlot<RouteOptions>()
private val routerCallbackSlot = CapturingSlot<NavigationRouterCallback>()
private val options: MapboxCarOptions = mockk {
every { routeOptionsInterceptor } returns mockk {
every { intercept(any()) } answers { firstArg() }
}
every { routeOptionsInterceptor } returns CarRouteOptionsInterceptor { it }
}

private val locationProvider = mockk<CarLocationProvider>()
Expand Down Expand Up @@ -221,11 +220,12 @@ class CarRoutePreviewRequestTest {

@Test
fun `custom route options provided by interceptor are used for route request`() {
val customRouteOptions = mockk<RouteOptions>()
val customRouteOptionsBuilder = mockk<RouteOptions.Builder> {
every { build() } returns customRouteOptions
}
every { options.routeOptionsInterceptor.intercept(any()) } returns customRouteOptionsBuilder
val customRouteOptions = MapboxJavaObjectsFactory.routeOptions(
coordinates = listOf(Point.fromLngLat(23.4, 12.56), Point.fromLngLat(98.7, 45.4))
)
every {
options.routeOptionsInterceptor
} returns CarRouteOptionsInterceptor { customRouteOptions.toBuilder() }
every { locationProvider.lastLocation() } returns mockk {
every { longitude } returns -121.4670161
every { latitude } returns 38.5630514
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.mapbox.api.directions.v5.models.RouteOptions
import com.mapbox.geojson.Point
import com.mapbox.navigation.base.internal.extensions.inferDeviceLocale
import com.mapbox.navigation.core.MapboxNavigation
import com.mapbox.navigation.testing.MapboxJavaObjectsFactory
import io.mockk.every
import io.mockk.mockk
import io.mockk.mockkStatic
Expand All @@ -30,11 +31,6 @@ class RouteOptionsProviderTest {
}
private val origin = Point.fromLngLat(1.0, 2.0)
private val destination = Point.fromLngLat(3.0, 4.0)
private val routeOptions = mockk<RouteOptions>()
private val optionsBuilder = mockk<RouteOptions.Builder> {
every { build() } returns routeOptions
}
private val interceptor: (RouteOptions.Builder) -> RouteOptions.Builder = { optionsBuilder }

@Before
fun `set up`() {
Expand All @@ -57,11 +53,15 @@ class RouteOptionsProviderTest {

@Test
fun `provider returns options from interceptor if set`() {
val resultBuilder = MapboxJavaObjectsFactory.routeOptions().toBuilder()
val result = resultBuilder.build()
val interceptor: (RouteOptions.Builder) -> RouteOptions.Builder = { resultBuilder }

routeOptionsProvider.setInterceptor(interceptor)

val options = routeOptionsProvider.getOptions(mapboxNavigation, origin, destination)

assertEquals(options, routeOptions)
assertEquals(options, result)
}

private companion object {
Expand Down
Loading

0 comments on commit 8273101

Please sign in to comment.