| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #include "CppUnitTest.h"
- #include "StringBuilder.h"
- #include "JsonValue.h"
- using namespace Microsoft::VisualStudio::CppUnitTestFramework;
- using namespace ArduinoJson::Generator;
- namespace JsonGeneratorTests
- {
- TEST_CLASS(JsonValueTests)
- {
- char buffer[1024];
- size_t returnValue;
- public:
- TEST_METHOD(Null)
- {
- write((char*)0);
- assertResultIs("null");
- }
- TEST_METHOD(EmptyString)
- {
- write("");
- assertResultIs("\"\"");
- }
- TEST_METHOD(QuotationMark)
- {
- write("\"");
- assertResultIs("\"\\\"\"");
- }
- TEST_METHOD(ReverseSolidus)
- {
- write("\\");
- assertResultIs("\"\\\\\"");
- }
- TEST_METHOD(Solidus)
- {
- write("/");
- assertResultIs("\"/\""); // but the JSON format allows \/
- }
- TEST_METHOD(Backspace)
- {
- write("\b");
- assertResultIs("\"\\b\"");
- }
- TEST_METHOD(Formfeed)
- {
- write("\f");
- assertResultIs("\"\\f\"");
- }
- TEST_METHOD(Newline)
- {
- write("\n");
- assertResultIs("\"\\n\"");
- }
- TEST_METHOD(CarriageReturn)
- {
- write("\r");
- assertResultIs("\"\\r\"");
- }
- TEST_METHOD(HorizontalTab)
- {
- write("\t");
- assertResultIs("\"\\t\"");
- }
- TEST_METHOD(DoubleDefaultDigits)
- {
- write(3.14159265358979323846);
- assertResultIs("3.14");
- }
- TEST_METHOD(DoubleZeroDigits)
- {
- write(3.14159265358979323846, 0);
- assertResultIs("3");
- }
- TEST_METHOD(DoubleOneDigit)
- {
- write(3.14159265358979323846, 1);
- assertResultIs("3.1");
- }
- TEST_METHOD(DoubleTwoDigits)
- {
- write(3.14159265358979323846, 2);
- assertResultIs("3.14");
- }
- TEST_METHOD(Integer)
- {
- write(314);
- assertResultIs("314");
- }
- TEST_METHOD(Short)
- {
- write((short)314);
- assertResultIs("314");
- }
- TEST_METHOD(Long)
- {
- write(314L);
- assertResultIs("314");
- }
- template<typename T>
- void write(T value)
- {
- StringBuilder sb(buffer, sizeof(buffer));
- returnValue = JsonValue(value).printTo(sb);
- }
- void write(double value, int digits)
- {
- StringBuilder sb(buffer, sizeof(buffer));
- returnValue = JsonValue(value, digits).printTo(sb);
- }
- void assertResultIs(const char* expected)
- {
- Assert::AreEqual(expected, buffer);
- Assert::AreEqual(strlen(expected), returnValue);
- }
- };
- }
|