@@ -1746,6 +1746,78 @@ internal class MapboxNavigationTest : MapboxNavigationBaseTest() {
17461746 }
17471747 }
17481748
1749+ @Test
1750+ fun `setNavigationRoutes alternative for current primary route` () = coroutineRule.runBlockingTest {
1751+ createMapboxNavigation()
1752+ val route1 = mockk<NavigationRoute >(relaxed = true ) {
1753+ every { id } returns " id1"
1754+ }
1755+ val route2 = mockk<NavigationRoute >(relaxed = true ) {
1756+ every { id } returns " id2"
1757+ }
1758+ val route3 = mockk<NavigationRoute >(relaxed = true ) {
1759+ every { id } returns " id3"
1760+ }
1761+ every { directionsSession.routes } returns listOf (route1, route2)
1762+
1763+ mapboxNavigation.setNavigationRoutes(listOf (route1, route3))
1764+
1765+ coVerify(exactly = 1 ) {
1766+ tripSession.setRoutes(any(), ofType(SetRoutes .Alternatives ::class ))
1767+ }
1768+ verify(exactly = 1 ) {
1769+ directionsSession.setRoutes(any())
1770+ }
1771+ }
1772+
1773+ @Test
1774+ fun `setNavigationRoutes new routes` () = coroutineRule.runBlockingTest {
1775+ createMapboxNavigation()
1776+ val route1 = mockk<NavigationRoute >(relaxed = true ) {
1777+ every { id } returns " id1"
1778+ }
1779+ val route2 = mockk<NavigationRoute >(relaxed = true ) {
1780+ every { id } returns " id2"
1781+ }
1782+ val route3 = mockk<NavigationRoute >(relaxed = true ) {
1783+ every { id } returns " id3"
1784+ }
1785+ every { directionsSession.routes } returns listOf (route1, route2)
1786+
1787+ mapboxNavigation.setNavigationRoutes(listOf (route3, route2))
1788+
1789+ coVerify(exactly = 1 ) {
1790+ tripSession.setRoutes(any(), ofType(SetRoutes .NewRoutes ::class ))
1791+ }
1792+ verify(exactly = 1 ) {
1793+ directionsSession.setRoutes(any())
1794+ }
1795+ }
1796+
1797+ @Test
1798+ fun `setNavigationRoutes alternative for outdated primary route` () = coroutineRule.runBlockingTest {
1799+ createMapboxNavigation()
1800+ val route1 = mockk<NavigationRoute >(relaxed = true ) {
1801+ every { id } returns " id1"
1802+ }
1803+ val route2 = mockk<NavigationRoute >(relaxed = true ) {
1804+ every { id } returns " id2"
1805+ }
1806+ val route3 = mockk<NavigationRoute >(relaxed = true ) {
1807+ every { id } returns " id3"
1808+ }
1809+ every { directionsSession.routes } returnsMany listOf (listOf (route1), listOf (route2))
1810+
1811+ mapboxNavigation.setNavigationRoutes(listOf (route1, route3))
1812+
1813+ coVerify(exactly = 0 ) {
1814+ tripSession.setRoutes(any(), any())
1815+ }
1816+ verify(exactly = 0 ) {
1817+ directionsSession.setRoutes(any())
1818+ }
1819+ }
1820+
17491821 @Test
17501822 fun `refreshed route is set to trip session and directions session` () =
17511823 coroutineRule.runBlockingTest {
0 commit comments