TypeTraits.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright Benoit Blanchon 2014-2017
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://bblanchon.github.io/ArduinoJson/
  6. // If you like this project, please add a star!
  7. #include <ArduinoJson.h>
  8. #include <catch.hpp>
  9. #include <sstream>
  10. using namespace ArduinoJson::TypeTraits;
  11. TEST_CASE("TypeTraits") {
  12. SECTION("IsBaseOf") {
  13. REQUIRE_FALSE(
  14. static_cast<bool>(IsBaseOf<std::istream, std::ostringstream>::value));
  15. REQUIRE(
  16. static_cast<bool>(IsBaseOf<std::istream, std::istringstream>::value));
  17. REQUIRE(static_cast<bool>(
  18. IsBaseOf<JsonVariantBase<JsonObjectSubscript<const char*> >,
  19. JsonObjectSubscript<const char*> >::value));
  20. }
  21. SECTION("IsArray") {
  22. REQUIRE_FALSE((IsArray<const char*>::value));
  23. REQUIRE((IsArray<const char[]>::value));
  24. REQUIRE((IsArray<const char[10]>::value));
  25. }
  26. SECTION("IsVariant") {
  27. REQUIRE(
  28. static_cast<bool>(IsVariant<JsonObjectSubscript<const char*> >::value));
  29. REQUIRE(static_cast<bool>(IsVariant<JsonVariant>::value));
  30. }
  31. SECTION("IsString") {
  32. REQUIRE((IsString<const char*>::value));
  33. REQUIRE((IsString<std::string>::value));
  34. REQUIRE_FALSE((IsString<double>::value));
  35. }
  36. }