Преглед изворни кода

Changed JsonArray tests to show the issue

Benoit Blanchon пре 11 година
родитељ
комит
bc86ae800a

+ 8 - 3
JsonGenerator/JsonArrayBase.h

@@ -20,12 +20,17 @@ namespace ArduinoJson
 
             }
 
+            void add(const Printable& nestedObject)
+            {
+                if (count < capacity)
+                    items[count++] = nestedObject;
+            }
+
             template<typename T>
             void add(T value)
             {
-                if (count >= capacity) return;
-
-                items[count++] = value;
+                if (count < capacity)
+                    items[count++] = value;
             }
 
             template<int DIGITS>

+ 7 - 7
JsonGenerator/JsonValue.h

@@ -35,7 +35,7 @@ namespace ArduinoJson
                 content.asLong = value;
             }
 
-            void operator=(Printable& value)
+            void operator=(const Printable& value)
             {
                 printToImpl = &printPrintableTo;
                 content.asPrintable = &value;
@@ -89,7 +89,7 @@ namespace ArduinoJson
                 return content.asLong;
             }
 
-            operator Printable&()
+            operator const Printable&()
             {
                 return *content.asPrintable;
             }
@@ -109,11 +109,11 @@ namespace ArduinoJson
         private:
             union Content
             {
-                bool        asBool;
-                double      asDouble;
-                long        asLong;
-                Printable*  asPrintable;
-                const char* asString;
+                bool                asBool;
+                double              asDouble;
+                long                asLong;
+                const Printable*    asPrintable;
+                const char*         asString;
             };
 
             Content content;

+ 9 - 8
JsonGeneratorTests/JsonArrayTests.cpp

@@ -124,13 +124,19 @@ namespace JsonGeneratorTests
 
         TEST_METHOD(OneEmptyNestedArray)
         {
-           addNested(JsonArray<1>());
+            JsonArray<1> nestedArray;
+            
+            arr.add(nestedArray);
+
             outputMustBe("[[]]");
         }
 
         TEST_METHOD(OneEmptyNestedHash)
         {
-            addNested(JsonHashTable<1>());
+            JsonObject<1> nestedObject;
+
+            arr.add(nestedObject);
+
             outputMustBe("[{}]");
         }
 
@@ -139,18 +145,13 @@ namespace JsonGeneratorTests
             JsonArray<1> nestedArray;
             nestedArray.add(1);
 
-            addNested(nestedArray);
+            arr.add(nestedArray);
 
             outputMustBe("[[1]]");
         }
 
     private:
 
-        void addNested(Printable& value)
-        {
-            arr.add<Printable&>(value);
-        }
-
         template<typename T>
         void add(T value)
         {

+ 1 - 1
JsonGeneratorTests/JsonValue_Cast_Tests.cpp

@@ -71,7 +71,7 @@ namespace JsonGeneratorTests
         void setValueAndCheckCast(JsonArray<N>& expected)
         {
             value = expected;
-            Printable& actual = value;
+            const Printable& actual = value;
             Assert::AreEqual((void*) &expected, (void*) &actual);
         }
     };