@Test
public void createArrowHeadLayer() throws InvalidArrowLineConfigException {

    ArrayList<Feature> featuresList = new ArrayList<>();
    FeatureCollection featureCollection = FeatureCollection.fromFeatures(featuresList);
    FeatureFilter.Builder builder = new FeatureFilter.Builder(featureCollection)
            .whereEq("type", "building");
    ArrowLineLayer.FeatureConfig featureConfig = new ArrowLineLayer.FeatureConfig(builder);
    ArrowLineLayer.SortConfig sortConfig = new ArrowLineLayer.SortConfig("", ArrowLineLayer.SortConfig.SortOrder.DESC, ArrowLineLayer.SortConfig.PropertyType.NUMBER);
    ArrowLineLayer arrowLineLayer = new ArrowLineLayer.Builder(context, featureConfig, sortConfig).build();
    assertNull((SymbolLayer) ReflectionHelpers.getField(arrowLineLayer, "arrowHeadLayer"));
    ReflectionHelpers.callInstanceMethod(arrowLineLayer, "createArrowHeadLayer");
    SymbolLayer arrowHeadLayer = (SymbolLayer) ReflectionHelpers.getField(arrowLineLayer, "arrowHeadLayer");
    assertNotNull(arrowHeadLayer);
    ShadowLayer shadowLayer = (ShadowLayer) Shadow.extract(arrowHeadLayer);
    HashMap<String, PropertyValue> propertyValueHashMap = shadowLayer.getPropertyValues();
    assertEquals(7, propertyValueHashMap.size());
    assertEquals(1f, propertyValueHashMap.get("icon-opacity").value);
    assertTrue(propertyValueHashMap.get("icon-rotate").toString().contains("arrow-head-bearing"));
    assertEquals("map", propertyValueHashMap.get("icon-rotation-alignment").value);
    assertEquals(true, propertyValueHashMap.get("icon-allow-overlap").value);
    assertEquals(true, propertyValueHashMap.get("icon-ignore-placement").value);
}