diff --git a/test/JsonVariant_Invalid_Tests.cpp b/test/JsonVariant_Invalid_Tests.cpp new file mode 100644 index 00000000..4858b439 --- /dev/null +++ b/test/JsonVariant_Invalid_Tests.cpp @@ -0,0 +1,78 @@ +// Copyright Benoit Blanchon 2014 +// MIT License +// +// Arduino JSON library +// https://github.com/bblanchon/ArduinoJson + +#include +#include +#include +#include "Printers.hpp" + +using namespace ArduinoJson; + +class JsonVariant_Invalid_Tests : public ::testing::Test { + public: + JsonVariant_Invalid_Tests() : variant(JsonVariant::invalid()) {} + + protected: + JsonVariant variant; +}; + +TEST_F(JsonVariant_Invalid_Tests, SuccessReturnsFalse) { + EXPECT_FALSE(variant.success()); +} + +TEST_F(JsonVariant_Invalid_Tests, AsLongReturns0) { + EXPECT_EQ(0, variant.as()); +} + +TEST_F(JsonVariant_Invalid_Tests, AsStringReturnsNull) { + EXPECT_EQ(0, variant.asString()); +} + +TEST_F(JsonVariant_Invalid_Tests, AsDoubleReturns0) { + EXPECT_EQ(0, variant.as()); +} + +TEST_F(JsonVariant_Invalid_Tests, AsBoolReturnsFalse) { + EXPECT_FALSE(variant.as()); +} + +TEST_F(JsonVariant_Invalid_Tests, AsArrayReturnInvalid) { + EXPECT_EQ(JsonArray::invalid(), variant.asArray()); +} + +TEST_F(JsonVariant_Invalid_Tests, AsObjectReturnInvalid) { + EXPECT_EQ(JsonObject::invalid(), variant.asObject()); +} + +TEST_F(JsonVariant_Invalid_Tests, CanNotBeSetToLong) { + variant = 0L; + EXPECT_FALSE(variant.success()); +} + +TEST_F(JsonVariant_Invalid_Tests, CanNotBeSetToDouble) { + variant = 0.0; + EXPECT_FALSE(variant.success()); +} + +TEST_F(JsonVariant_Invalid_Tests, CanNotBeSetToString) { + variant = static_cast(NULL); + EXPECT_FALSE(variant.success()); +} + +TEST_F(JsonVariant_Invalid_Tests, CanNotBeSetToBool) { + variant = false; + EXPECT_FALSE(variant.success()); +} + +TEST_F(JsonVariant_Invalid_Tests, CanNotBeSetToArray) { + variant = JsonArray::invalid(); + EXPECT_FALSE(variant.success()); +} + +TEST_F(JsonVariant_Invalid_Tests, CanNotBeSetToObject) { + variant = JsonObject::invalid(); + EXPECT_FALSE(variant.success()); +}