summaryrefslogtreecommitdiff
path: root/test/style/conversion
diff options
context:
space:
mode:
authorIvo van Dongen <ivovandongen@users.noreply.github.com>2016-08-23 14:57:55 +0200
committerGitHub <noreply@github.com>2016-08-23 14:57:55 +0200
commitdf3b44531e1c2a95edd2a035d3744f34ebb8d0e9 (patch)
tree2eb0ae3e4a3b793767643831cd8063aeab56075d /test/style/conversion
parent50da6e5e715f0356f430fba176dea13d15fe9d52 (diff)
downloadqtlocation-mapboxgl-df3b44531e1c2a95edd2a035d3744f34ebb8d0e9.tar.gz
[core] #6071 - extract GeoJSONOptions conversion from GeoJSONSource conversion
* [core] geojson_options - retain original error message * [core] tests - initial style conversion stub methods * [core] geojsonoptions conversion - initial unit tests * [core] tests - fix forward reference issue * [core] geojsonoptions conversion - unit tests * [core] geojsonoptions conversion - renamed Holder to Value
Diffstat (limited to 'test/style/conversion')
-rw-r--r--test/style/conversion/geojson_options.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/test/style/conversion/geojson_options.cpp b/test/style/conversion/geojson_options.cpp
new file mode 100644
index 0000000000..46a2aa950b
--- /dev/null
+++ b/test/style/conversion/geojson_options.cpp
@@ -0,0 +1,68 @@
+#include <mbgl/test/util.hpp>
+
+#include <mbgl/style/conversion.hpp>
+#include <mbgl/style/conversion/geojson_options.hpp>
+#include <mbgl/test/conversion_stubs.hpp>
+
+#include <mbgl/platform/log.hpp>
+
+using namespace mbgl::style;
+using namespace mbgl::style::conversion;
+
+TEST(GeoJSONOptions, Basic) {
+ ValueMap map;
+ Value raw(map);
+ Result<GeoJSONOptions> converted = convert<GeoJSONOptions>(raw);
+ ASSERT_TRUE((bool) converted);
+}
+
+TEST(GeoJSONOptions, ErrorHandling) {
+ ValueMap map {{"maxzoom", "should not be a string"}};
+ Value raw(map);
+ Result<GeoJSONOptions> converted = convert<GeoJSONOptions>(raw);
+ ASSERT_FALSE((bool) converted);
+}
+
+TEST(GeoJSONOptions, RetainsDefaults) {
+ ValueMap map;
+ Value raw(map);
+ GeoJSONOptions converted = *convert<GeoJSONOptions>(raw);
+ GeoJSONOptions defaults;
+
+ //GeoJSON-VT
+ ASSERT_EQ(converted.maxzoom, defaults.maxzoom);
+ ASSERT_EQ(converted.buffer, defaults.buffer);
+ ASSERT_EQ(converted.tolerance, defaults.tolerance);
+
+ //Supercluster
+ ASSERT_EQ(converted.cluster, defaults.cluster);
+ ASSERT_EQ(converted.clusterRadius, defaults.clusterRadius);
+ ASSERT_EQ(converted.clusterMaxZoom, defaults.clusterMaxZoom);
+}
+
+
+TEST(GeoJSONOptions, FullConversion) {
+ ValueMap map {
+ //GeoJSON-VT
+ {"maxzoom", 1},
+ {"buffer", 2},
+ {"tolerance", 3},
+
+ //Supercluster
+ {"cluster", true},
+ {"clusterRadius", 4},
+ {"clusterMaxZoom", 5}
+ };
+ Value raw(map);
+ GeoJSONOptions converted = *convert<GeoJSONOptions>(raw);
+
+ //GeoJSON-VT
+ ASSERT_EQ(converted.maxzoom, 1);
+ ASSERT_EQ(converted.buffer, 2);
+ ASSERT_EQ(converted.tolerance, 3);
+
+ //Supercluster
+ ASSERT_EQ(converted.cluster, true);
+ ASSERT_EQ(converted.clusterRadius, 4);
+ ASSERT_EQ(converted.clusterMaxZoom, 5);
+}