Просмотр исходного кода

Test custom converter for `char` (#1963)

Benoit Blanchon 2 лет назад
Родитель
Сommit
aebf042bae
1 измененных файлов с 11 добавлено и 0 удалено
  1. 11 0
      extras/tests/JsonVariant/converters.cpp

+ 11 - 0
extras/tests/JsonVariant/converters.cpp

@@ -158,6 +158,11 @@ void convertToJson(char c, JsonVariant var) {
   char buf[] = {c, 0};
   var.set(buf);
 }
+
+void convertFromJson(JsonVariantConst src, char& dst) {
+  auto p = src.as<const char*>();
+  dst = p ? p[0] : 0;
+}
 }  // namespace ArduinoJson
 
 TEST_CASE("Convert char to string") {  // issue #1922
@@ -165,3 +170,9 @@ TEST_CASE("Convert char to string") {  // issue #1922
   doc.set('a');
   REQUIRE(doc.as<std::string>() == "a");
 }
+
+TEST_CASE("Convert string to char") {  // issue #1963
+  StaticJsonDocument<64> doc;
+  doc.set("a");
+  REQUIRE(doc.as<char>() == 'a');
+}