@@ -16,6 +16,7 @@ import com.mapbox.maps.extension.style.layers.generated.BackgroundLayer
1616import com.mapbox.maps.extension.style.layers.generated.LineLayer
1717import com.mapbox.maps.extension.style.layers.getLayer
1818import com.mapbox.maps.extension.style.layers.properties.generated.Visibility
19+ import com.mapbox.maps.extension.style.sources.Source
1920import com.mapbox.maps.extension.style.sources.generated.GeoJsonSource
2021import com.mapbox.maps.extension.style.sources.getSource
2122import com.mapbox.navigation.testing.MainCoroutineRule
@@ -169,6 +170,88 @@ class MapboxRouteLineViewTest {
169170 every {
170171 setStyleSourceProperty(WAYPOINT_SOURCE_ID , any(), any())
171172 } returns ExpectedFactory .createNone()
173+ every { getSource(LAYER_GROUP_1_SOURCE_ID ) } returns null
174+ every { getSource(LAYER_GROUP_2_SOURCE_ID ) } returns null
175+ every { getSource(LAYER_GROUP_3_SOURCE_ID ) } returns null
176+ every { getSource(WAYPOINT_SOURCE_ID ) } returns null
177+ every {
178+ removeStyleSource(LAYER_GROUP_1_SOURCE_ID )
179+ } returns ExpectedFactory .createNone()
180+ every {
181+ removeStyleSource(LAYER_GROUP_2_SOURCE_ID )
182+ } returns ExpectedFactory .createNone()
183+ every {
184+ removeStyleSource(LAYER_GROUP_3_SOURCE_ID )
185+ } returns ExpectedFactory .createNone()
186+ every {
187+ removeStyleSource(WAYPOINT_SOURCE_ID )
188+ } returns ExpectedFactory .createNone()
189+ every {
190+ removeStyleSource(TOP_LEVEL_ROUTE_LINE_LAYER_ID )
191+ } returns ExpectedFactory .createNone()
192+ every {
193+ removeStyleSource(BOTTOM_LEVEL_ROUTE_LINE_LAYER_ID )
194+ } returns ExpectedFactory .createNone()
195+ every {
196+ removeStyleLayer(TOP_LEVEL_ROUTE_LINE_LAYER_ID )
197+ } returns ExpectedFactory .createNone()
198+ every {
199+ removeStyleLayer(BOTTOM_LEVEL_ROUTE_LINE_LAYER_ID )
200+ } returns ExpectedFactory .createNone()
201+ every {
202+ removeStyleLayer(LAYER_GROUP_1_TRAIL_CASING )
203+ } returns ExpectedFactory .createNone()
204+ every {
205+ removeStyleLayer(LAYER_GROUP_1_TRAIL )
206+ } returns ExpectedFactory .createNone()
207+ every {
208+ removeStyleLayer(LAYER_GROUP_1_CASING )
209+ } returns ExpectedFactory .createNone()
210+ every {
211+ removeStyleLayer(LAYER_GROUP_1_MAIN )
212+ } returns ExpectedFactory .createNone()
213+ every {
214+ removeStyleLayer(LAYER_GROUP_1_TRAFFIC )
215+ } returns ExpectedFactory .createNone()
216+ every {
217+ removeStyleLayer(LAYER_GROUP_1_RESTRICTED )
218+ } returns ExpectedFactory .createNone()
219+ every {
220+ removeStyleLayer(LAYER_GROUP_2_TRAIL_CASING )
221+ } returns ExpectedFactory .createNone()
222+ every {
223+ removeStyleLayer(LAYER_GROUP_2_TRAIL )
224+ } returns ExpectedFactory .createNone()
225+ every {
226+ removeStyleLayer(LAYER_GROUP_2_CASING )
227+ } returns ExpectedFactory .createNone()
228+ every {
229+ removeStyleLayer(LAYER_GROUP_2_MAIN )
230+ } returns ExpectedFactory .createNone()
231+ every {
232+ removeStyleLayer(LAYER_GROUP_2_TRAFFIC )
233+ } returns ExpectedFactory .createNone()
234+ every {
235+ removeStyleLayer(LAYER_GROUP_2_RESTRICTED )
236+ } returns ExpectedFactory .createNone()
237+ every {
238+ removeStyleLayer(LAYER_GROUP_3_TRAIL_CASING )
239+ } returns ExpectedFactory .createNone()
240+ every {
241+ removeStyleLayer(LAYER_GROUP_3_TRAIL )
242+ } returns ExpectedFactory .createNone()
243+ every {
244+ removeStyleLayer(LAYER_GROUP_3_CASING )
245+ } returns ExpectedFactory .createNone()
246+ every {
247+ removeStyleLayer(LAYER_GROUP_3_MAIN )
248+ } returns ExpectedFactory .createNone()
249+ every {
250+ removeStyleLayer(LAYER_GROUP_3_TRAFFIC )
251+ } returns ExpectedFactory .createNone()
252+ every {
253+ removeStyleLayer(LAYER_GROUP_3_RESTRICTED )
254+ } returns ExpectedFactory .createNone()
172255 }.also {
173256 mockCheckForLayerInitialization(it)
174257 }
@@ -179,6 +262,123 @@ class MapboxRouteLineViewTest {
179262 unmockkObject(MapboxRouteLineUtils )
180263 }
181264
265+ @Test
266+ fun initializeLayers_withOptions () {
267+ mockkObject(MapboxRouteLineUtils )
268+ val options = MapboxRouteLineOptions .Builder (ctx).build()
269+ val options2 = MapboxRouteLineOptions .Builder (ctx).withTolerance(59.0 ).build()
270+ val style = mockk<Style > {
271+ every {
272+ setStyleSourceProperty(LAYER_GROUP_1_SOURCE_ID , any(), any())
273+ } returns ExpectedFactory .createNone()
274+ every {
275+ setStyleSourceProperty(LAYER_GROUP_2_SOURCE_ID , any(), any())
276+ } returns ExpectedFactory .createNone()
277+ every {
278+ setStyleSourceProperty(LAYER_GROUP_3_SOURCE_ID , any(), any())
279+ } returns ExpectedFactory .createNone()
280+ every {
281+ setStyleSourceProperty(WAYPOINT_SOURCE_ID , any(), any())
282+ } returns ExpectedFactory .createNone()
283+ every { getSource(LAYER_GROUP_1_SOURCE_ID ) } returns null
284+ every { getSource(LAYER_GROUP_2_SOURCE_ID ) } returns null
285+ every { getSource(LAYER_GROUP_3_SOURCE_ID ) } returns null
286+ every { getSource(WAYPOINT_SOURCE_ID ) } returns null
287+ every {
288+ removeStyleSource(LAYER_GROUP_1_SOURCE_ID )
289+ } returns ExpectedFactory .createNone()
290+ every {
291+ removeStyleSource(LAYER_GROUP_2_SOURCE_ID )
292+ } returns ExpectedFactory .createNone()
293+ every {
294+ removeStyleSource(LAYER_GROUP_3_SOURCE_ID )
295+ } returns ExpectedFactory .createNone()
296+ every {
297+ removeStyleSource(WAYPOINT_SOURCE_ID )
298+ } returns ExpectedFactory .createNone()
299+ every {
300+ removeStyleSource(TOP_LEVEL_ROUTE_LINE_LAYER_ID )
301+ } returns ExpectedFactory .createNone()
302+ every {
303+ removeStyleSource(BOTTOM_LEVEL_ROUTE_LINE_LAYER_ID )
304+ } returns ExpectedFactory .createNone()
305+ every {
306+ removeStyleLayer(TOP_LEVEL_ROUTE_LINE_LAYER_ID )
307+ } returns ExpectedFactory .createNone()
308+ every {
309+ removeStyleLayer(BOTTOM_LEVEL_ROUTE_LINE_LAYER_ID )
310+ } returns ExpectedFactory .createNone()
311+ every {
312+ removeStyleLayer(LAYER_GROUP_1_TRAIL_CASING )
313+ } returns ExpectedFactory .createNone()
314+ every {
315+ removeStyleLayer(LAYER_GROUP_1_TRAIL )
316+ } returns ExpectedFactory .createNone()
317+ every {
318+ removeStyleLayer(LAYER_GROUP_1_CASING )
319+ } returns ExpectedFactory .createNone()
320+ every {
321+ removeStyleLayer(LAYER_GROUP_1_MAIN )
322+ } returns ExpectedFactory .createNone()
323+ every {
324+ removeStyleLayer(LAYER_GROUP_1_TRAFFIC )
325+ } returns ExpectedFactory .createNone()
326+ every {
327+ removeStyleLayer(LAYER_GROUP_1_RESTRICTED )
328+ } returns ExpectedFactory .createNone()
329+ every {
330+ removeStyleLayer(LAYER_GROUP_2_TRAIL_CASING )
331+ } returns ExpectedFactory .createNone()
332+ every {
333+ removeStyleLayer(LAYER_GROUP_2_TRAIL )
334+ } returns ExpectedFactory .createNone()
335+ every {
336+ removeStyleLayer(LAYER_GROUP_2_CASING )
337+ } returns ExpectedFactory .createNone()
338+ every {
339+ removeStyleLayer(LAYER_GROUP_2_MAIN )
340+ } returns ExpectedFactory .createNone()
341+ every {
342+ removeStyleLayer(LAYER_GROUP_2_TRAFFIC )
343+ } returns ExpectedFactory .createNone()
344+ every {
345+ removeStyleLayer(LAYER_GROUP_2_RESTRICTED )
346+ } returns ExpectedFactory .createNone()
347+ every {
348+ removeStyleLayer(LAYER_GROUP_3_TRAIL_CASING )
349+ } returns ExpectedFactory .createNone()
350+ every {
351+ removeStyleLayer(LAYER_GROUP_3_TRAIL )
352+ } returns ExpectedFactory .createNone()
353+ every {
354+ removeStyleLayer(LAYER_GROUP_3_CASING )
355+ } returns ExpectedFactory .createNone()
356+ every {
357+ removeStyleLayer(LAYER_GROUP_3_MAIN )
358+ } returns ExpectedFactory .createNone()
359+ every {
360+ removeStyleLayer(LAYER_GROUP_3_TRAFFIC )
361+ } returns ExpectedFactory .createNone()
362+ every {
363+ removeStyleLayer(LAYER_GROUP_3_RESTRICTED )
364+ } returns ExpectedFactory .createNone()
365+ }.also {
366+ mockCheckForLayerInitialization(it)
367+ }
368+ val view = MapboxRouteLineView (options)
369+
370+ view.initializeLayers(style, options2)
371+
372+ verify { MapboxRouteLineUtils .removeLayersAndSources(style) }
373+ verify { MapboxRouteLineUtils .initializeLayers(style, options2) }
374+ verify { style.getSource(LAYER_GROUP_1_SOURCE_ID ) }
375+ verify { style.getSource(LAYER_GROUP_2_SOURCE_ID ) }
376+ verify { style.getSource(LAYER_GROUP_3_SOURCE_ID ) }
377+ verify { style.getSource(WAYPOINT_SOURCE_ID ) }
378+ assertEquals(view.options, options2)
379+ unmockkObject(MapboxRouteLineUtils )
380+ }
381+
182382 @Test
183383 fun renderClearRouteLineValue () = coroutineRule.runBlockingTest {
184384 mockkStatic(" com.mapbox.maps.extension.style.sources.SourceUtils" )
0 commit comments