mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Extracted class StringBuilderTests
This commit is contained in:
		| @@ -89,6 +89,7 @@ | ||||
|     <ClCompile Include="JsonArrayTests.cpp" /> | ||||
|     <ClCompile Include="JsonHashTableTests.cpp" /> | ||||
|     <ClCompile Include="JsonValueTests.cpp" /> | ||||
|     <ClCompile Include="StringBuilderTests.cpp" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <ClInclude Include="..\JsonGenerator\JsonArray.h" /> | ||||
|   | ||||
| @@ -30,6 +30,9 @@ | ||||
|     <ClCompile Include="..\JsonGenerator\StringBuilder.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="StringBuilderTests.cpp"> | ||||
|       <Filter>Source Files</Filter> | ||||
|     </ClCompile> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <ClInclude Include="..\JsonGenerator\JsonArray.h"> | ||||
|   | ||||
| @@ -8,22 +8,11 @@ namespace JsonGeneratorTests | ||||
| { | ||||
|     TEST_CLASS(JsonValueTests) | ||||
|     { | ||||
|         char buffer[20]; | ||||
|         StringBuilder* sb; | ||||
|         char buffer[1024]; | ||||
|         size_t returnValue; | ||||
|  | ||||
|     public: | ||||
|  | ||||
|         TEST_METHOD_INITIALIZE(Initialize) | ||||
|         { | ||||
|             sb = new StringBuilder(buffer, sizeof(buffer)); | ||||
|         } | ||||
|                  | ||||
|         TEST_METHOD(InitialState) | ||||
|         { | ||||
|             assertResultIs(""); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(Null) | ||||
|         { | ||||
|             write((char*)0); | ||||
| @@ -40,35 +29,6 @@ namespace JsonGeneratorTests | ||||
|             assertResultIs("\"\""); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(OneString) | ||||
|         { | ||||
|             write("ABCD"); | ||||
|             assertReturns(6); | ||||
|             assertResultIs("\"ABCD\""); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(OneTwoStrings) | ||||
|         { | ||||
|             write("ABCD"); | ||||
|             assertReturns(6); | ||||
|  | ||||
|             write("EFGH"); | ||||
|             assertReturns(6); | ||||
|              | ||||
|             assertResultIs("\"ABCD\"\"EFGH\""); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(OverCapacity) | ||||
|         { | ||||
|             write("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); | ||||
|             assertReturns(19); | ||||
|             assertResultIs("\"ABCDEFGHIJKLMNOPQR"); | ||||
|  | ||||
|             write("ABC"); | ||||
|             assertReturns(0); | ||||
|             assertResultIs("\"ABCDEFGHIJKLMNOPQR"); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(SpecialChars) | ||||
|         { | ||||
|             write("\\\"\b\f\n\r\t"); | ||||
| @@ -107,7 +67,8 @@ namespace JsonGeneratorTests | ||||
|         template<typename T> | ||||
|         void write(T value) | ||||
|         { | ||||
|             returnValue = JsonValue(value).printTo(*sb); | ||||
|             StringBuilder sb(buffer, sizeof(buffer)); | ||||
|             returnValue = JsonValue(value).printTo(sb); | ||||
|         } | ||||
|  | ||||
|         void assertResultIs(const char* expected) | ||||
|   | ||||
							
								
								
									
										80
									
								
								JsonGeneratorTests/StringBuilderTests.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								JsonGeneratorTests/StringBuilderTests.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,80 @@ | ||||
| #include "CppUnitTest.h" | ||||
| #include "StringBuilder.h" | ||||
|  | ||||
| using namespace Microsoft::VisualStudio::CppUnitTestFramework; | ||||
|  | ||||
| namespace JsonGeneratorTests | ||||
| { | ||||
| 	TEST_CLASS(StringBuilderTests) | ||||
| 	{ | ||||
|         char buffer[20]; | ||||
|         Print* sb; | ||||
|         size_t returnValue; | ||||
|  | ||||
| 	public: | ||||
| 		 | ||||
|         TEST_METHOD_INITIALIZE(Initialize) | ||||
|         { | ||||
|             sb = new StringBuilder(buffer, sizeof(buffer)); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(InitialState) | ||||
|         { | ||||
|             assertResultIs(""); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(OverCapacity) | ||||
|         { | ||||
|             write("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); | ||||
|             assertReturns(19); | ||||
|             assertResultIs("ABCDEFGHIJKLMNOPQRS"); | ||||
|  | ||||
|             write("ABC"); | ||||
|             assertReturns(0); | ||||
|             assertResultIs("ABCDEFGHIJKLMNOPQRS"); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(EmptyString) | ||||
|         { | ||||
|             write(""); | ||||
|  | ||||
|             assertReturns(0); | ||||
|             assertResultIs(""); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(OneString) | ||||
|         { | ||||
|             write("ABCD"); | ||||
|             assertReturns(4); | ||||
|             assertResultIs("ABCD"); | ||||
|         } | ||||
|  | ||||
|         TEST_METHOD(TwoStrings) | ||||
|         { | ||||
|             write("ABCD"); | ||||
|             assertReturns(4); | ||||
|  | ||||
|             write("EFGH"); | ||||
|             assertReturns(4); | ||||
|  | ||||
|             assertResultIs("ABCDEFGH"); | ||||
|         } | ||||
|  | ||||
|     private: | ||||
|  | ||||
|         void write(const char* value) | ||||
|         { | ||||
|             returnValue = sb->write(value); | ||||
|         } | ||||
|  | ||||
|         void assertResultIs(const char* expected) | ||||
|         { | ||||
|             Assert::AreEqual(expected, buffer); | ||||
|         } | ||||
|  | ||||
|         void assertReturns(size_t expected) | ||||
|         { | ||||
|             Assert::AreEqual(expected, returnValue); | ||||
|         } | ||||
| 	}; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user