Browse Source

Checked that issue issue #628 is fixed

Benoit Blanchon 7 năm trước cách đây
mục cha
commit
6bb17d5896
1 tập tin đã thay đổi với 34 bổ sung0 xóa
  1. 34 0
      test/JsonDeserializer/deserializeJsonValue.cpp

+ 34 - 0
test/JsonDeserializer/deserializeJsonValue.cpp

@@ -87,6 +87,40 @@ TEST_CASE("deserializeJson(DynamicJsonDocument&)") {
     REQUIRE(doc.as<bool>() == false);
   }
 
+  SECTION("NaN") {
+    DeserializationError err = deserializeJson(doc, "NaN");
+    REQUIRE(err == DeserializationError::Ok);
+    REQUIRE(doc.is<float>() == true);
+    REQUIRE(Internals::isnan(doc.as<float>()));
+  }
+
+  SECTION("Infinity") {
+    DeserializationError err = deserializeJson(doc, "Infinity");
+    REQUIRE(err == DeserializationError::Ok);
+    REQUIRE(doc.is<float>() == true);
+    REQUIRE(Internals::isinf(doc.as<float>()));
+  }
+
+  SECTION("+Infinity") {
+    DeserializationError err = deserializeJson(doc, "+Infinity");
+    REQUIRE(err == DeserializationError::Ok);
+    REQUIRE(doc.is<float>() == true);
+    REQUIRE(Internals::isinf(doc.as<float>()));
+  }
+
+  SECTION("-Infinity") {
+    DeserializationError err = deserializeJson(doc, "-Infinity");
+    REQUIRE(err == DeserializationError::Ok);
+    REQUIRE(doc.is<float>() == true);
+    REQUIRE(Internals::isinf(doc.as<float>()));
+  }
+
+  SECTION("issue #628") {
+    DeserializationError err = deserializeJson(doc, "null");
+    REQUIRE(err == DeserializationError::Ok);
+    REQUIRE(doc.is<float>() == false);
+  }
+
   SECTION("Should clear the JsonVariant") {
     deserializeJson(doc, "[1,2,3]");
     deserializeJson(doc, "{}");