summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactoryTest.java56
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/SchemaTest.java121
2 files changed, 140 insertions, 37 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactoryTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactoryTest.java
index f5c9493e21..b028911d4d 100644
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactoryTest.java
+++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactoryTest.java
@@ -1,8 +1,10 @@
package com.mapbox.mapboxsdk.module.telemetry;
import android.os.Build;
+import android.os.Bundle;
import com.google.gson.Gson;
+import com.google.gson.JsonObject;
import com.mapbox.mapboxsdk.BuildConfig;
import com.mapbox.mapboxsdk.constants.TelemetryConstants;
import com.mapbox.mapboxsdk.offline.OfflineRegion;
@@ -10,8 +12,15 @@ import com.mapbox.mapboxsdk.offline.OfflineRegion;
import org.junit.Before;
import org.junit.Test;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import static com.mapbox.mapboxsdk.module.telemetry.PerformanceEvent.PerformanceAttribute;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
public class MapEventFactoryTest {
private static final float FONT_SCALE = 1.f;
@@ -29,9 +38,10 @@ public class MapEventFactoryTest {
private static final Double MIN_ZOOM = 1.0;
private static final Double MAX_ZOOM = 10.0;
private static final String STYLE_URL = "style url";
- private static final long SIZE_OF_RESOURCES_COMPLETED = 100L;
- private static final long NUMBER_OF_TILE_COMPLETED = 1000L;
+ private static final long SIZE_OF_RESOURCES_COMPLETED = 100;
+ private static final long NUMBER_OF_TILE_COMPLETED = 1000;
private static final int STATE = OfflineRegion.STATE_ACTIVE;
+ private static final String SESSION_ID = "001";
private MapState mapState;
private PhoneState phoneState;
@@ -121,7 +131,7 @@ public class MapEventFactoryTest {
assertEquals(STYLE_URL, offlineDownloadEndEvent.getStyleURL());
assertEquals(SIZE_OF_RESOURCES_COMPLETED, offlineDownloadEndEvent.getSizeOfResourcesCompleted());
assertEquals(NUMBER_OF_TILE_COMPLETED, offlineDownloadEndEvent.getNumberOfTilesCompleted());
- assertEquals(STATE, offlineDownloadEndEvent.getState());
+ assertEquals(String.valueOf(STATE), offlineDownloadEndEvent.getState());
assertEquals(CREATED, offlineDownloadEndEvent.getCreated());
String json = gson.toJson(offlineDownloadEndEvent);
OfflineDownloadEndEvent event = gson.fromJson(json, OfflineDownloadEndEvent.class);
@@ -141,4 +151,44 @@ public class MapEventFactoryTest {
OfflineDownloadStartEvent event = gson.fromJson(json, OfflineDownloadStartEvent.class);
assertEquals(offlineDownloadStartEvent, event);
}
+
+ @Test
+ public void testPerformanceEvent() {
+ String nameAttribute = "nameAttribute";
+ String valueAttribute = "100";
+ String nameCounters = "nameCounters";
+ Double valuesCounters = 1000.0;
+ JsonObject metaData = new JsonObject();
+ metaData.addProperty("os", "android");
+ metaData.addProperty("manufacturer", Build.MANUFACTURER);
+ metaData.addProperty("brand", Build.BRAND);
+ metaData.addProperty("device", Build.MODEL);
+ metaData.addProperty("version", Build.VERSION.RELEASE);
+ metaData.addProperty("abi", Build.CPU_ABI);
+ metaData.addProperty("country", Locale.getDefault().getISO3Country());
+ metaData.addProperty("ram", "ram");
+ metaData.addProperty("screenSize", "1000");
+
+ Bundle data = mock(Bundle.class);
+ ArrayList<PerformanceEvent.PerformanceAttribute<String>> attribtueList = new ArrayList<>();
+ PerformanceAttribute<String> attribute = new PerformanceAttribute<>(nameAttribute, valueAttribute);
+ attribtueList.add(attribute);
+ ArrayList<PerformanceEvent.PerformanceAttribute<Double>> countersList = new ArrayList<>();
+ PerformanceAttribute<Double> counter = new PerformanceAttribute<>(nameCounters, valuesCounters);
+ countersList.add(counter);
+ when(data.getString("attributes")).thenReturn(gson.toJson(attribtueList));
+ when(data.getString("counters")).thenReturn(gson.toJson(countersList));
+ when(data.getString("metadata")).thenReturn(metaData.toString());
+ PerformanceEvent performanceEvent = MapEventFactory.buildPerformanceEvent(phoneState,
+ SESSION_ID, data);
+ assertEquals(CREATED, performanceEvent.getCreated());
+ assertEquals(metaData.toString(), performanceEvent.getMetadata().toString());
+ assertEquals(SESSION_ID, performanceEvent.getSessionId());
+ List<PerformanceEvent.PerformanceAttribute<String>> attributeList = performanceEvent.getAttributes();
+ assertEquals(1, attribtueList.size());
+ assertEquals(attribute, attribtueList.get(0));
+ List<PerformanceEvent.PerformanceAttribute<Double>> counterList = performanceEvent.getCounters();
+ assertEquals(1, counterList.size());
+ assertEquals(counter, counterList.get(0));
+ }
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/SchemaTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/SchemaTest.java
index 8c4cb09aa3..24a343137a 100644
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/SchemaTest.java
+++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/SchemaTest.java
@@ -31,6 +31,9 @@ public class SchemaTest {
private static final String MAP_CLICK = "map.click";
private static final String MAP_DRAG = "map.dragend";
private static final String MAP_LOAD = "map.load";
+ private static final String MAP_PERFORMANCE = "mobile.performance_trace";
+ private static final String OFFLINE_DOWNLOAD_END = "map.offlineDownload.end";
+ private static final String OFFLINE_DOWNLOAD_START = "map.offlineDownload.start";
private static ArrayList<JsonObject> schemaArray;
@BeforeClass
@@ -38,8 +41,31 @@ public class SchemaTest {
unpackSchemas();
}
+ private static ByteArrayInputStream getFileBytes() throws IOException {
+ InputStream inputStream = SchemaTest.class.getClassLoader().getResourceAsStream("mobile-event-schemas.jsonl.gz");
+ byte[] byteOut = IOUtils.toByteArray(inputStream);
+
+ return new ByteArrayInputStream(byteOut);
+ }
+
+ private static void unpackSchemas() throws IOException {
+ ByteArrayInputStream bais = getFileBytes();
+ GZIPInputStream gzis = new GZIPInputStream(bais);
+ InputStreamReader reader = new InputStreamReader(gzis);
+ BufferedReader in = new BufferedReader(reader);
+
+ schemaArray = new ArrayList<>();
+
+ Gson gson = new Gson();
+ String readed;
+ while ((readed = in.readLine()) != null) {
+ JsonObject schema = gson.fromJson(readed, JsonObject.class);
+ schemaArray.add(schema);
+ }
+ }
+
@Test
- public void checkMapClickEventSize() throws Exception {
+ public void checkMapClickEventSize() {
JsonObject schema = grabSchema(MAP_CLICK);
List<Field> fields = grabClassFields(MapClickEvent.class);
@@ -47,7 +73,7 @@ public class SchemaTest {
}
@Test
- public void checkMapClickEventFields() throws Exception {
+ public void checkMapClickEventFields() {
JsonObject schema = grabSchema(MAP_CLICK);
List<Field> fields = grabClassFields(MapClickEvent.class);
@@ -55,7 +81,7 @@ public class SchemaTest {
}
@Test
- public void checkMapDragEndEventSize() throws Exception {
+ public void checkMapDragEndEventSize() {
JsonObject schema = grabSchema(MAP_DRAG);
List<Field> fields = grabClassFields(MapDragendEvent.class);
@@ -63,7 +89,7 @@ public class SchemaTest {
}
@Test
- public void checkMapDragEndEventFields() throws Exception {
+ public void checkMapDragEndEventFields() {
JsonObject schema = grabSchema(MAP_DRAG);
List<Field> fields = grabClassFields(MapDragendEvent.class);
@@ -71,22 +97,69 @@ public class SchemaTest {
}
@Test
- public void checkMapLoadEventSize() throws Exception {
+ public void checkOfflineDownloadEndEventSize() {
+ JsonObject schema = grabSchema(OFFLINE_DOWNLOAD_END);
+ List<Field> fields = grabClassFields(OfflineDownloadEndEvent.class);
+
+ assertEquals(schema.size(), fields.size());
+ }
+
+ @Test
+ public void checkOfflineDownloadEndEventFields() {
+ JsonObject schema = grabSchema(OFFLINE_DOWNLOAD_END);
+ List<Field> fields = grabClassFields(OfflineDownloadEndEvent.class);
+
+ schemaContainsFields(schema, fields);
+ }
+
+ @Test
+ public void checkOfflineDownloadStartEventSize() {
+ JsonObject schema = grabSchema(OFFLINE_DOWNLOAD_START);
+ List<Field> fields = grabClassFields(OfflineDownloadStartEvent.class);
+
+ assertEquals(schema.size(), fields.size());
+ }
+
+ @Test
+ public void checkOfflineDownloadStartEventFields() {
+ JsonObject schema = grabSchema(OFFLINE_DOWNLOAD_START);
+ List<Field> fields = grabClassFields(OfflineDownloadStartEvent.class);
+
+ schemaContainsFields(schema, fields);
+ }
+
+ @Test
+ public void checkMapLoadEventSize() {
JsonObject schema = grabSchema(MAP_LOAD);
List<Field> fields = grabClassFields(MapLoadEvent.class);
- //FIXME: this assertion is invalid: we should introduce a concept of mandatory/optional field to schema validation
- //assertEquals(schema.size(), fields.size());
+ assertEquals(schema.size(), fields.size());
}
@Test
- public void checkMapLoadEventFields() throws Exception {
+ public void checkMapLoadEventFields() {
JsonObject schema = grabSchema(MAP_LOAD);
List<Field> fields = grabClassFields(MapLoadEvent.class);
schemaContainsFields(schema, fields);
}
+ @Test
+ public void checkPerformanceEventSize() {
+ JsonObject schema = grabSchema(MAP_PERFORMANCE);
+ List<Field> fields = grabClassFields(PerformanceEvent.class);
+
+ assertEquals(schema.size(), fields.size());
+ }
+
+ @Test
+ public void checkPerformanceEventFields() {
+ JsonObject schema = grabSchema(MAP_PERFORMANCE);
+ List<Field> fields = grabClassFields(PerformanceEvent.class);
+
+ schemaContainsFields(schema, fields);
+ }
+
private void schemaContainsFields(JsonObject schema, List<Field> fields) {
int distanceRemainingCount = 0;
int durationRemainingCount = 0;
@@ -139,14 +212,17 @@ public class SchemaTest {
private void typesMatch(JsonObject schema, String type) {
if (type.equalsIgnoreCase("int") || type.equalsIgnoreCase("integer")
- || type.equalsIgnoreCase("double") || type.equalsIgnoreCase("float")) {
+ || type.equalsIgnoreCase("double") || type.equalsIgnoreCase("float")
+ || type.equalsIgnoreCase("long")) {
type = "number";
}
- if (type.contains("[]")) {
+ if (type.contains("[]") || type.equalsIgnoreCase("list")) {
type = "array";
}
-
+ if (type.equalsIgnoreCase("jsonobject")) {
+ type = "object";
+ }
Class<? extends JsonElement> typeClass = schema.get("type").getClass();
JsonElement jsonElement = new JsonParser().parse(type.toLowerCase());
@@ -159,29 +235,6 @@ public class SchemaTest {
}
}
- private static ByteArrayInputStream getFileBytes() throws IOException {
- InputStream inputStream = SchemaTest.class.getClassLoader().getResourceAsStream("mobile-event-schemas.jsonl.gz");
- byte[] byteOut = IOUtils.toByteArray(inputStream);
-
- return new ByteArrayInputStream(byteOut);
- }
-
- private static void unpackSchemas() throws IOException {
- ByteArrayInputStream bais = getFileBytes();
- GZIPInputStream gzis = new GZIPInputStream(bais);
- InputStreamReader reader = new InputStreamReader(gzis);
- BufferedReader in = new BufferedReader(reader);
-
- schemaArray = new ArrayList<>();
-
- Gson gson = new Gson();
- String readed;
- while ((readed = in.readLine()) != null) {
- JsonObject schema = gson.fromJson(readed, JsonObject.class);
- schemaArray.add(schema);
- }
- }
-
private JsonObject grabSchema(String eventName) {
for (JsonObject thisSchema : schemaArray) {
String name = thisSchema.get("name").getAsString();