diff options
author | Ander Conselvan de Oliveira <ander.deoliveira@mapbox.com> | 2019-09-27 15:39:21 +0300 |
---|---|---|
committer | Ander Conselvan de Oliveira <ander.deoliveira@mapbox.com> | 2019-09-27 17:09:45 +0300 |
commit | bb9b1ab62438f733ad278cb03f781116b9f3d721 (patch) | |
tree | 68afda0d516419eecb4d29601b9ff36f3487eed2 | |
parent | d90b2bb6dc2a19961e029963e591d702f70dd721 (diff) |
[core] Return enum layer property values as string
The output of Layer::getProperty is a mapbox::base::Value which is
equivalent to JSON. When setting the value of an enum property via JSON
its value would be a string, so it would be natural to return a string
too.
Also, the numbers generated depend on the enum definition. They are not
part of the style spec.
-rw-r--r-- | include/mbgl/style/conversion_impl.hpp | 2 | ||||
-rw-r--r-- | test/map/map.test.cpp | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/include/mbgl/style/conversion_impl.hpp b/include/mbgl/style/conversion_impl.hpp index 3e4236949..3e1b8455e 100644 --- a/include/mbgl/style/conversion_impl.hpp +++ b/include/mbgl/style/conversion_impl.hpp @@ -327,7 +327,7 @@ struct ValueFactory<T, typename std::enable_if<(!std::is_enum<T>::value && !is_l template <typename T> struct ValueFactory<T, typename std::enable_if<std::is_enum<T>::value>::type> { - static Value make(T arg) { return {int64_t(arg)}; } + static Value make(T arg) { return {Enum<T>::toString(arg)}; } }; template <typename T> diff --git a/test/map/map.test.cpp b/test/map/map.test.cpp index 5872f4ecd..6f0f126d3 100644 --- a/test/map/map.test.cpp +++ b/test/map/map.test.cpp @@ -1006,6 +1006,6 @@ TEST(Map, UniversalStyleGetter) { StyleProperty lineCap = lineLayer->getProperty("line-cap"); ASSERT_TRUE(lineCap.value); EXPECT_EQ(StyleProperty::Kind::Constant, lineCap.kind); - ASSERT_TRUE(lineCap.value.getInt()); - EXPECT_EQ(mbgl::underlying_type(mbgl::style::LineCapType::Butt), *lineCap.value.getInt()); -}
\ No newline at end of file + ASSERT_TRUE(lineCap.value.getString()); + EXPECT_EQ(std::string("butt"), *lineCap.value.getString()); +} |