Selaa lähdekoodia

Added a test that adds a string value in a hash

Benoît Blanchon 11 vuotta sitten
vanhempi
sitoutus
ff4060f5d1
2 muutettua tiedostoa jossa 44 lisäystä ja 5 poistoa
  1. 32 5
      JsonGeneratorTests/JsonHashTable.h
  2. 12 0
      JsonGeneratorTests/JsonHashTableTests.cpp

+ 32 - 5
JsonGeneratorTests/JsonHashTable.h

@@ -12,27 +12,54 @@ class JsonHashTable : public JsonObjectBase
 {
 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;
 
 private:
 
-   /* struct KeyValuePair
+    struct KeyValuePair
     {
         const char* key;
         ObjectContainer value;
-    };*/
+    };
+
+    KeyValuePair items[N];
+    int itemCount;
 
     virtual void writeTo(StringBuilder& sb)
     {
         sb.append("{");
 
-        /*for (int i = 0; i < itemCount; i++)
+        for (int i = 0; i < itemCount; i++)
         {
             if (i>0) sb.append(",");
-            writeObjectTo(items[i], sb);
-        }*/
+            sb.appendEscaped(items[i].key);
+            sb.append(":");
+            writeObjectTo(items[i].value, sb);
+        }
 
         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++;
+    }
 };
 

+ 12 - 0
JsonGeneratorTests/JsonHashTableTests.cpp

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