mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-17 20:42:24 +02:00
Generator: added a test of one string in an array
This commit is contained in:
1
JsonGeneratorTests/.gitignore
vendored
1
JsonGeneratorTests/.gitignore
vendored
@ -3,3 +3,4 @@
|
||||
/*.suo
|
||||
/Debug
|
||||
/ipch
|
||||
/*.opensdf
|
||||
|
@ -6,9 +6,3 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "JsonArray.h"
|
||||
|
||||
void JsonArray::writeTo(char* buffer, size_t bufferSize)
|
||||
{
|
||||
strncpy(buffer, "[]", bufferSize);
|
||||
|
||||
}
|
@ -5,9 +5,45 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
template<int N>
|
||||
class JsonArray
|
||||
{
|
||||
public:
|
||||
void writeTo(char* buffer, size_t bufferSize);
|
||||
JsonArray()
|
||||
{
|
||||
itemCount = 0;
|
||||
}
|
||||
|
||||
void add(const char* data)
|
||||
{
|
||||
if (itemCount <= N)
|
||||
items[itemCount++] = data;
|
||||
}
|
||||
|
||||
void writeTo(char* buffer, size_t bufferSize)
|
||||
{
|
||||
buffer[0] = 0;
|
||||
|
||||
append("[", buffer, bufferSize);
|
||||
|
||||
for (int i = 0; i < itemCount; i++)
|
||||
{
|
||||
append("'", buffer, bufferSize);
|
||||
append(items[i], buffer, bufferSize);
|
||||
append("'", buffer, bufferSize);
|
||||
}
|
||||
|
||||
append("]", buffer, bufferSize);
|
||||
}
|
||||
|
||||
private:
|
||||
const char* items[N];
|
||||
int itemCount;
|
||||
|
||||
void append(const char* source, char* dest, size_t destSize)
|
||||
{
|
||||
int len = strlen(dest);
|
||||
strncpy(dest + len, source, destSize - len);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -7,16 +7,29 @@ namespace JsonGeneratorTests
|
||||
{
|
||||
TEST_CLASS(JsonArrayTests)
|
||||
{
|
||||
JsonArray<32> arr;
|
||||
|
||||
public:
|
||||
|
||||
TEST_METHOD(EmptyArray)
|
||||
{
|
||||
JsonArray arr;
|
||||
AssertJsonIs("[]");
|
||||
}
|
||||
|
||||
TEST_METHOD(OneString)
|
||||
{
|
||||
arr.add("hello");
|
||||
|
||||
AssertJsonIs("['hello']");
|
||||
}
|
||||
|
||||
void AssertJsonIs(const char* expected)
|
||||
{
|
||||
char buffer[256];
|
||||
|
||||
arr.writeTo(buffer, sizeof(buffer));
|
||||
|
||||
Assert::AreEqual("[]", buffer);
|
||||
Assert::AreEqual(expected, buffer);
|
||||
}
|
||||
};
|
||||
}
|
1
JsonParserTests/.gitignore
vendored
1
JsonParserTests/.gitignore
vendored
@ -3,3 +3,4 @@
|
||||
/*.suo
|
||||
/Debug
|
||||
/ipch
|
||||
/*.opensdf
|
||||
|
Reference in New Issue
Block a user