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