summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/SchemaTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/SchemaTest.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/module/telemetry/SchemaTest.java121
1 files changed, 87 insertions, 34 deletions
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();