<% const properties = locals.properties; -%> package com.mapbox.mapboxsdk.testapp.style; import android.graphics.Color; import android.support.test.espresso.UiController; import android.support.test.espresso.ViewAction; import android.support.test.runner.AndroidJUnit4; import android.view.View; import com.mapbox.mapboxsdk.style.light.Light; import com.mapbox.mapboxsdk.style.functions.Function; import com.mapbox.mapboxsdk.style.functions.stops.IdentityStops; import com.mapbox.mapboxsdk.style.layers.FillExtrusionLayer; import com.mapbox.mapboxsdk.style.layers.TransitionOptions; import com.mapbox.mapboxsdk.style.light.Position; import com.mapbox.mapboxsdk.testapp.R; import com.mapbox.mapboxsdk.testapp.activity.BaseActivityTest; import com.mapbox.mapboxsdk.testapp.activity.style.FillExtrusionStyleTestActivity; import timber.log.Timber; import org.hamcrest.Matcher; import org.junit.Test; import org.junit.runner.RunWith; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static com.mapbox.mapboxsdk.style.layers.Filter.eq; import static com.mapbox.mapboxsdk.style.layers.Property.ANCHOR_MAP; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillExtrusionBase; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillExtrusionColor; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillExtrusionHeight; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.fillExtrusionOpacity; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertNotNull; @RunWith(AndroidJUnit4.class) public class LightTest extends BaseActivityTest { private Light light; <% for (const property of properties) { -%> <% if (property.transition) { -%> @Test public void test<%- camelize(property.name) %>Transition() { validateTestSetup(); setupLayer(); Timber.i("<%- property.name %>TransitionOptions"); assertNotNull(light); // Set and Get TransitionOptions options = new TransitionOptions(300, 100); light.set<%- camelize(property.name) %>Transition(options); assertEquals("Transition options should match", options, light.get<%- camelize(property.name) %>Transition()); } <% } -%> <% if (property.name == "position") { -%> @Test public void test<%- camelize(property.name) %>() { validateTestSetup(); setupLayer(); Timber.i("<%- property.name %>"); assertNotNull(light); // Set and Get Position position = new Position(1,2,3); light.set<%- camelize(property.name) %>(position); assertEquals("Position should match", position, light.get<%- camelize(property.name) %>()); } <% } else { -%> @Test public void test<%- camelize(property.name) %>() { validateTestSetup(); setupLayer(); Timber.i("<%- property.name %>"); assertNotNull(light); // Set and Get light.set<%- camelize(property.name) %>(<%- defaultValueJava(property) %>); <% if (property.name == 'color') { -%> assertEquals("<%- camelize(property.name) %> should match", <%- defaultValueJava(property) %>.replaceAll("\\s+",""), light.get<%- camelize(property.name) %>()); <% } else { -%> assertEquals("<%- camelize(property.name) %> should match", <%- defaultValueJava(property) %>, light.get<%- camelize(property.name) %>()); <% } -%> } <% } -%> <% } -%> private void setupLayer() { onView(withId(R.id.mapView)).perform(new ViewAction() { @Override public Matcher getConstraints() { return isDisplayed(); } @Override public String getDescription() { return getClass().getSimpleName(); } @Override public void perform(UiController uiController, View view) { light = mapboxMap.getLight(); FillExtrusionLayer fillExtrusionLayer = new FillExtrusionLayer("3d-buildings", "composite"); fillExtrusionLayer.setSourceLayer("building"); fillExtrusionLayer.setFilter(eq("extrude", "true")); fillExtrusionLayer.setMinZoom(15); fillExtrusionLayer.setProperties( fillExtrusionColor(Color.LTGRAY), fillExtrusionHeight(Function.property("height", new IdentityStops())), fillExtrusionBase(Function.property("min_height", new IdentityStops())), fillExtrusionOpacity(0.6f) ); mapboxMap.addLayer(fillExtrusionLayer); } }); } @Override protected Class getActivityClass() { return FillExtrusionStyleTestActivity.class; } }