/* * Arduino JSON library * Benoit Blanchon 2014 - MIT License */ #include "CppUnitTest.h" #include "JsonParser.h" using namespace Microsoft::VisualStudio::CppUnitTestFramework; using namespace ArduinoJson::Parser; namespace ArduinoJsonParserTests { TEST_CLASS(JsonStringTests) { const char* actual; char json[256]; JsonParser<32> parser; public: TEST_METHOD(EmptyString) { whenInputIs(""); outputMustBe(0); } TEST_METHOD(JustOneQuote) { whenInputIs("\""); outputMustBe(0); } TEST_METHOD(SimpleString) { whenInputIs("\"Hi!\""); outputMustBe("Hi!"); } TEST_METHOD(EscapedQuote) { whenInputIs("\"12\\\"34\""); // ie 12\"34 outputMustBe("12\"34"); } TEST_METHOD(EscapedReverseSolidus) { whenInputIs("\"12\\\\34\""); // ie 12\\34 outputMustBe("12\\34"); } TEST_METHOD(EscapedSolidus) { whenInputIs("\"12\\/34\""); outputMustBe("12/34"); } TEST_METHOD(EscapedBackspace) { whenInputIs("\"12\\b34\""); outputMustBe("12\b34"); } TEST_METHOD(EscapedFormfeed) { whenInputIs("\"12\\f34\""); outputMustBe("12\f34"); } TEST_METHOD(EscapedNewline) { whenInputIs("\"12\\n34\""); outputMustBe("12\n34"); } TEST_METHOD(EscapedCarriageReturn) { whenInputIs("\"12\\r34\""); outputMustBe("12\r34"); } TEST_METHOD(EscapedTab) { whenInputIs("\"12\\t34\""); outputMustBe("12\t34"); } TEST_METHOD(AllEscapedCharsTogether) { whenInputIs("\"1\\\"2\\\\3\\/4\\b5\\f6\\n7\\r8\\t9\""); outputMustBe("1\"2\\3/4\b5\f6\n7\r8\t9"); } private: void whenInputIs(const char* input) { strcpy(json, input); actual = parser.parse(json); } void outputMustBe(const char* expected) { Assert::AreEqual(expected, actual); } }; }