summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java
index fb74904f96..79bcdd7b5e 100644
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java
+++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/style/expressions/ExpressionTest.java
@@ -1,12 +1,16 @@
package com.mapbox.mapboxsdk.style.expressions;
import android.graphics.Color;
+
import com.mapbox.mapboxsdk.style.layers.PropertyFactory;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Locale;
import static com.mapbox.mapboxsdk.style.expressions.Expression.abs;
import static com.mapbox.mapboxsdk.style.expressions.Expression.acos;
@@ -19,6 +23,7 @@ import static com.mapbox.mapboxsdk.style.expressions.Expression.atan;
import static com.mapbox.mapboxsdk.style.expressions.Expression.bool;
import static com.mapbox.mapboxsdk.style.expressions.Expression.ceil;
import static com.mapbox.mapboxsdk.style.expressions.Expression.coalesce;
+import static com.mapbox.mapboxsdk.style.expressions.Expression.collator;
import static com.mapbox.mapboxsdk.style.expressions.Expression.color;
import static com.mapbox.mapboxsdk.style.expressions.Expression.concat;
import static com.mapbox.mapboxsdk.style.expressions.Expression.cos;
@@ -60,6 +65,7 @@ import static com.mapbox.mapboxsdk.style.expressions.Expression.pow;
import static com.mapbox.mapboxsdk.style.expressions.Expression.product;
import static com.mapbox.mapboxsdk.style.expressions.Expression.properties;
import static com.mapbox.mapboxsdk.style.expressions.Expression.raw;
+import static com.mapbox.mapboxsdk.style.expressions.Expression.resolvedLocale;
import static com.mapbox.mapboxsdk.style.expressions.Expression.rgb;
import static com.mapbox.mapboxsdk.style.expressions.Expression.rgba;
import static com.mapbox.mapboxsdk.style.expressions.Expression.round;
@@ -1290,4 +1296,75 @@ public class ExpressionTest {
String alpha = color.substring(0, color.length() - 1);
assertEquals("alpha value should match", 0.254f, Float.valueOf(alpha), 0.001f);
}
+
+ @Test
+ public void testCollator() {
+ Object[] expected = new Object[] {"collator",
+ new HashMap<String, Object>() {
+ {
+ put("case-sensitive", true);
+ put("diacritic-sensitive", true);
+ put("locale", "it-IT");
+ }
+ }
+ };
+ Object[] actual = collator(true, true, Locale.ITALY).toArray();
+ assertTrue("expression should match", Arrays.deepEquals(expected, actual));
+ }
+
+ @Test
+ public void testStringCollator() {
+ String expected = "[\"collator\", {\"diacritic-sensitive\": true, \"case-sensitive\": true, \"locale\": "
+ + "\"it\"}]";
+ String actual = collator(true, true, Locale.ITALIAN).toString();
+ assertEquals("expression should match", expected, actual);
+ }
+
+ @Test
+ public void testResolvedLocale() {
+ Object[] expected = new Object[] {"resolved-locale",
+ new Object[] {"collator",
+ new HashMap<String, Object>() {
+ {
+ put("case-sensitive", false);
+ put("diacritic-sensitive", false);
+ put("locale", "it");
+ }
+ }
+ }
+ };
+ Object[] actual = resolvedLocale(collator(false, false, Locale.ITALIAN)).toArray();
+ assertTrue("expression should match", Arrays.deepEquals(expected, actual));
+ }
+
+ @Test
+ public void testRawCollator() {
+ Object[] expected = new Object[] {"collator",
+ new HashMap<String, Object>() {
+ {
+ put("case-sensitive", true);
+ put("diacritic-sensitive", true);
+ put("locale", "it-IT");
+ }
+ }
+ };
+ Object[] actual = raw("[\"collator\", {\"diacritic-sensitive\": true, \"case-sensitive\": true, \"locale\": "
+ + "\"it-IT\"}]").toArray();
+ assertTrue("expression should match", Arrays.deepEquals(expected, actual));
+ }
+
+ @Test
+ public void testRawCollatorDoubleConversion() {
+ Expression expected = collator(false, false, Locale.ITALIAN);
+ Object[] actual = raw(expected.toString()).toArray();
+ assertTrue("expression should match", Arrays.deepEquals(expected.toArray(), actual));
+ }
+
+ @Test
+ public void testStringNestedCollator() {
+ String expected = "[\"collator\", {\"diacritic-sensitive\": [\"==\", 2.0, 1.0], \"case-sensitive\": false,"
+ + " \"locale\": \"it\"}]";
+ String actual = collator(literal(false), eq(literal(2), literal(1)), literal("it")).toString();
+ assertEquals("expression should match", expected, actual);
+ }
} \ No newline at end of file