// Copyright Benoit Blanchon 2014-2016 // MIT License // // Arduino JSON library // https://github.com/bblanchon/ArduinoJson // If you like this project, please add a star! #include #include #define SUITE JsonVariant_Is_Tests using namespace ArduinoJson::Internals; template void assertIsNot(TFrom value) { JsonVariant variant = value; ASSERT_FALSE(variant.is()); } template void assertIsNot(JsonArray& value) { JsonVariant variant = value; ASSERT_FALSE(variant.is()); } template void assertIs(TFrom value) { JsonVariant variant = value; ASSERT_TRUE(variant.is()); } template void assertIs(JsonArray& value) { JsonVariant variant = value; ASSERT_TRUE(variant.is()); } TEST(SUITE, ArrayIsArry) { assertIs(JsonArray::invalid()); } TEST(SUITE, ArrayIsBool) { assertIsNot(JsonArray::invalid()); } TEST(SUITE, ArrayIsDouble) { assertIsNot(JsonArray::invalid()); } TEST(SUITE, ArrayIsFloat) { assertIsNot(JsonArray::invalid()); } TEST(SUITE, ArrayIsInt) { assertIsNot(JsonArray::invalid()); } TEST(SUITE, ArrayIsLong) { assertIsNot(JsonArray::invalid()); } TEST(SUITE, ArrayIsString) { assertIsNot(JsonArray::invalid()); } TEST(SUITE, BoolIsArray) { assertIsNot(true); } TEST(SUITE, BoolIsBool) { assertIs(true); } TEST(SUITE, BoolIsDouble) { assertIsNot(true); } TEST(SUITE, BoolIsFloat) { assertIsNot(true); } TEST(SUITE, BoolIsInt) { assertIsNot(true); } TEST(SUITE, BoolIsLong) { assertIsNot(true); } TEST(SUITE, BoolIsString) { assertIsNot(true); } TEST(SUITE, DoubleIsArray) { assertIsNot(4.2); } TEST(SUITE, DoubleIsBool) { assertIsNot(4.2); } TEST(SUITE, DoubleIsDouble) { assertIs(4.2); } TEST(SUITE, DoubleIsFloat) { assertIs(4.2); } TEST(SUITE, DoubleIsInt) { assertIsNot(4.2); } TEST(SUITE, DoubleIsLong) { assertIsNot(4.2); } TEST(SUITE, DoubleIsString) { assertIsNot(4.2); } TEST(SUITE, LongIsArray) { assertIsNot(42L); } TEST(SUITE, LongIsBool) { assertIsNot(42L); } TEST(SUITE, LongIsDouble) { assertIsNot(42L); } TEST(SUITE, LongIsFloat) { assertIsNot(42L); } TEST(SUITE, LongIsInt) { assertIs(42L); } TEST(SUITE, LongIsLong) { assertIs(42L); } TEST(SUITE, LongIsString) { assertIsNot(42L); } TEST(SUITE, StringIsArray) { assertIsNot("42"); } TEST(SUITE, StringIsBool) { assertIsNot("42"); } TEST(SUITE, StringIsDouble) { assertIsNot("42"); } TEST(SUITE, StringIsFloat) { assertIsNot("42"); } TEST(SUITE, StringIsInt) { assertIsNot("42"); } TEST(SUITE, StringIsLong) { assertIsNot("42"); } TEST(SUITE, StringIsString) { assertIs("42"); } TEST(SUITE, UnparsedTrueIsArra) { assertIsNot(Unparsed("true")); } TEST(SUITE, UnparsedTrueIsBool) { assertIs(Unparsed("true")); } TEST(SUITE, UnparsedTrueIsDouble) { assertIsNot(Unparsed("true")); } TEST(SUITE, UnparsedTrueIsFloat) { assertIsNot(Unparsed("true")); } TEST(SUITE, UnparsedTrueIsInt) { assertIsNot(Unparsed("true")); } TEST(SUITE, UnparsedTrueIsLong) { assertIsNot(Unparsed("true")); } TEST(SUITE, UnparsedTrueIsString) { assertIsNot(Unparsed("true")); } TEST(SUITE, UnparsedFalseIsArra) { assertIsNot(Unparsed("false")); } TEST(SUITE, UnparsedFalseIsBool) { assertIs(Unparsed("false")); } TEST(SUITE, UnparsedFalseIsDouble) { assertIsNot(Unparsed("false")); } TEST(SUITE, UnparsedFalseIsFloat) { assertIsNot(Unparsed("false")); } TEST(SUITE, UnparsedFalseIsInt) { assertIsNot(Unparsed("false")); } TEST(SUITE, UnparsedFalseIsLong) { assertIsNot(Unparsed("false")); } TEST(SUITE, UnparsedFalseIsString) { assertIsNot(Unparsed("false")); } TEST(SUITE, UnparsedIntIsArra) { assertIsNot(Unparsed("42")); } TEST(SUITE, UnparsedIntIsBool) { assertIsNot(Unparsed("42")); } TEST(SUITE, UnparsedIntIsDouble) { assertIsNot(Unparsed("42")); } TEST(SUITE, UnparsedIntIsFloat) { assertIsNot(Unparsed("42")); } TEST(SUITE, UnparsedIntIsInt) { assertIs(Unparsed("42")); } TEST(SUITE, UnparsedIntIsLong) { assertIs(Unparsed("42")); } TEST(SUITE, UnparsedIntIsString) { assertIsNot(Unparsed("42")); } TEST(SUITE, UnparsedFloatIsBool) { assertIsNot(Unparsed("4.2e-10")); } TEST(SUITE, UnparsedFloatIsDouble) { assertIs(Unparsed("4.2e-10")); } TEST(SUITE, UnparsedFloatIsFloat) { assertIs(Unparsed("4.2e-10")); } TEST(SUITE, UnparsedFloatIsInt) { assertIsNot(Unparsed("4.2e-10")); } TEST(SUITE, UnparsedFloatIsLong) { assertIsNot(Unparsed("4.2e-10")); } TEST(SUITE, UnparsedFloatIsStr) { assertIsNot(Unparsed("4.2")); }