Added a test that adds a string value in a hash

This commit is contained in:
Benoît Blanchon
2014-06-27 13:07:38 +02:00
parent ebb257df6e
commit ff4060f5d1
2 changed files with 44 additions and 5 deletions

View File

@ -12,27 +12,54 @@ class JsonHashTable : public JsonObjectBase
{ {
public: public:
JsonHashTable()
{
itemCount = 0;
}
void add(const char* key, const char* value)
{
ObjectValue v;
v.string = value;
addItem(key, JSON_STRING, v);
}
using JsonObjectBase::writeTo; using JsonObjectBase::writeTo;
private: private:
/* struct KeyValuePair struct KeyValuePair
{ {
const char* key; const char* key;
ObjectContainer value; ObjectContainer value;
};*/ };
KeyValuePair items[N];
int itemCount;
virtual void writeTo(StringBuilder& sb) virtual void writeTo(StringBuilder& sb)
{ {
sb.append("{"); sb.append("{");
/*for (int i = 0; i < itemCount; i++) for (int i = 0; i < itemCount; i++)
{ {
if (i>0) sb.append(","); if (i>0) sb.append(",");
writeObjectTo(items[i], sb); sb.appendEscaped(items[i].key);
}*/ sb.append(":");
writeObjectTo(items[i].value, sb);
}
sb.append("}"); sb.append("}");
} }
void addItem(const char* key, ObjectType type, ObjectValue value)
{
if (itemCount >= N) return;
items[itemCount].key = key;
items[itemCount].value.type = type;
items[itemCount].value.value = value;
itemCount++;
}
}; };

View File

@ -16,8 +16,20 @@ namespace JsonGeneratorTests
assertJsonIs("{}"); assertJsonIs("{}");
} }
TEST_METHOD(OneString)
{
add("key", "value");
assertJsonIs("{\"key\":\"value\"}");
}
private: private:
template<typename T>
void add(const char* key, T value)
{
hash.add(key, value);
}
void assertJsonIs(const char* expected) void assertJsonIs(const char* expected)
{ {
char buffer[256]; char buffer[256];