TypeTraits.cpp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2023
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. using namespace ArduinoJson::Internals;
  7. TEST_CASE("TypeTraits") {
  8. SECTION("IsBaseOf") {
  9. REQUIRE_FALSE(
  10. static_cast<bool>(IsBaseOf<std::istream, std::ostringstream>::value));
  11. REQUIRE(
  12. static_cast<bool>(IsBaseOf<std::istream, std::istringstream>::value));
  13. REQUIRE(static_cast<bool>(
  14. IsBaseOf<JsonVariantBase<JsonObjectSubscript<const char*> >,
  15. JsonObjectSubscript<const char*> >::value));
  16. }
  17. SECTION("IsArray") {
  18. REQUIRE_FALSE((IsArray<const char*>::value));
  19. REQUIRE((IsArray<const char[]>::value));
  20. REQUIRE((IsArray<const char[10]>::value));
  21. }
  22. SECTION("IsVariant") {
  23. REQUIRE(
  24. static_cast<bool>(IsVariant<JsonObjectSubscript<const char*> >::value));
  25. REQUIRE(static_cast<bool>(IsVariant<JsonVariant>::value));
  26. }
  27. SECTION("IsConst") {
  28. REQUIRE_FALSE((IsConst<char>::value));
  29. REQUIRE((IsConst<const char>::value));
  30. }
  31. }