TypeTraits.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  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 <gtest/gtest.h>
  9. #include <sstream>
  10. using namespace ArduinoJson::TypeTraits;
  11. TEST(TypeTraits, IsBaseOf) {
  12. ASSERT_FALSE((IsBaseOf<std::istream, std::ostringstream>::value));
  13. ASSERT_TRUE((IsBaseOf<std::istream, std::istringstream>::value));
  14. ASSERT_TRUE((IsBaseOf<JsonVariantBase<JsonObjectSubscript<const char*> >,
  15. JsonObjectSubscript<const char*> >::value));
  16. }
  17. TEST(TypeTraits, IsArray) {
  18. ASSERT_FALSE((IsArray<const char*>::value));
  19. ASSERT_TRUE((IsArray<const char[]>::value));
  20. ASSERT_TRUE((IsArray<const char[10]>::value));
  21. }
  22. TEST(TypeTraits, IsVariant) {
  23. ASSERT_TRUE((IsVariant<JsonObjectSubscript<const char*> >::value));
  24. ASSERT_TRUE((IsVariant<JsonVariant>::value));
  25. }
  26. TEST(TypeTraits, IsString) {
  27. ASSERT_TRUE((IsString<const char*>::value));
  28. ASSERT_TRUE((IsString<std::string>::value));
  29. ASSERT_FALSE((IsString<double>::value));
  30. }