JsonVariant_PrintTo_Tests.cpp 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. // Copyright Benoit Blanchon 2014-2016
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://github.com/bblanchon/ArduinoJson
  6. // If you like this project, please add a star!
  7. #include <gtest/gtest.h>
  8. #include <ArduinoJson.h>
  9. class JsonVariant_PrintTo_Tests : public testing::Test {
  10. protected:
  11. JsonVariant variant;
  12. void outputMustBe(const char *expected) {
  13. char buffer[256] = "";
  14. size_t n = variant.printTo(buffer, sizeof(buffer));
  15. EXPECT_STREQ(expected, buffer);
  16. EXPECT_EQ(strlen(expected), n);
  17. }
  18. };
  19. TEST_F(JsonVariant_PrintTo_Tests, Empty) { outputMustBe(""); }
  20. TEST_F(JsonVariant_PrintTo_Tests, Null) {
  21. variant = static_cast<char *>(0);
  22. outputMustBe("null");
  23. }
  24. TEST_F(JsonVariant_PrintTo_Tests, String) {
  25. variant = "hello";
  26. outputMustBe("\"hello\"");
  27. }
  28. TEST_F(JsonVariant_PrintTo_Tests, DoubleZero) {
  29. variant = 0.0;
  30. outputMustBe("0.00");
  31. }
  32. TEST_F(JsonVariant_PrintTo_Tests, DoubleDefaultDigits) {
  33. variant = 3.14159265358979323846;
  34. outputMustBe("3.14");
  35. }
  36. TEST_F(JsonVariant_PrintTo_Tests, DoubleFourDigits) {
  37. variant = JsonVariant(3.14159265358979323846, 4);
  38. outputMustBe("3.1416");
  39. }
  40. TEST_F(JsonVariant_PrintTo_Tests, Integer) {
  41. variant = 42;
  42. outputMustBe("42");
  43. }
  44. TEST_F(JsonVariant_PrintTo_Tests, Long) {
  45. variant = 42L;
  46. outputMustBe("42");
  47. }
  48. TEST_F(JsonVariant_PrintTo_Tests, UnsignedLong) {
  49. variant = 4294967295UL;
  50. outputMustBe("4294967295");
  51. }
  52. TEST_F(JsonVariant_PrintTo_Tests, Char) {
  53. variant = '*';
  54. outputMustBe("42");
  55. }
  56. TEST_F(JsonVariant_PrintTo_Tests, True) {
  57. variant = true;
  58. outputMustBe("true");
  59. }
  60. TEST_F(JsonVariant_PrintTo_Tests, OneFalse) {
  61. variant = false;
  62. outputMustBe("false");
  63. }
  64. #if ARDUINOJSON_USE_LONG_LONG || ARDUINOJSON_USE_INT64
  65. TEST_F(JsonVariant_PrintTo_Tests, NegativeInt64) {
  66. variant = -9223372036854775807 - 1;
  67. outputMustBe("-9223372036854775808");
  68. }
  69. TEST_F(JsonVariant_PrintTo_Tests, PositiveInt64) {
  70. variant = 9223372036854775807;
  71. outputMustBe("9223372036854775807");
  72. }
  73. TEST_F(JsonVariant_PrintTo_Tests, UInt64) {
  74. variant = 18446744073709551615;
  75. outputMustBe("18446744073709551615");
  76. }
  77. #endif