mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include <gtest/gtest.h>
 | |
| #include <ArduinoJson/Internals/StringBuilder.h>
 | |
| 
 | |
| using namespace ArduinoJson::Internals;
 | |
| 
 | |
| class StringBuilderTests : public testing::Test
 | |
| {
 | |
| protected:
 | |
|     
 | |
|     virtual void SetUp()
 | |
|     {
 | |
|         sb = new StringBuilder(buffer, sizeof(buffer));
 | |
|     }
 | |
| 
 | |
|     void print(const char* value)
 | |
|     {
 | |
|         returnValue = sb->print(value);
 | |
|     }
 | |
| 
 | |
|     void outputMustBe(const char* expected)
 | |
|     {
 | |
|         EXPECT_STREQ(expected, buffer);
 | |
|     }
 | |
| 
 | |
|     void resultMustBe(size_t expected)
 | |
|     {
 | |
|         EXPECT_EQ(expected, returnValue);
 | |
|     }
 | |
| 
 | |
| private:
 | |
|     char buffer[20];
 | |
|     Print* sb;
 | |
|     size_t returnValue;
 | |
| };
 | |
| 
 | |
| TEST_F(StringBuilderTests, InitialState)
 | |
| {
 | |
|     outputMustBe("");
 | |
| }
 | |
| 
 | |
| TEST_F(StringBuilderTests, OverCapacity)
 | |
| {
 | |
|     print("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
 | |
|     resultMustBe(19);
 | |
| 
 | |
|     print("ABC");
 | |
|     resultMustBe(0);
 | |
| 
 | |
|     outputMustBe("ABCDEFGHIJKLMNOPQRS");
 | |
| }
 | |
| 
 | |
| TEST_F(StringBuilderTests, EmptyString)
 | |
| {
 | |
|     print("");
 | |
|     resultMustBe(0);
 | |
|     outputMustBe("");
 | |
| }
 | |
| 
 | |
| TEST_F(StringBuilderTests, OneString)
 | |
| {
 | |
|     print("ABCD");
 | |
|     resultMustBe(4);
 | |
|     outputMustBe("ABCD");
 | |
| }
 | |
| 
 | |
| TEST_F(StringBuilderTests, TwoStrings)
 | |
| {
 | |
|     print("ABCD");
 | |
|     resultMustBe(4);
 | |
| 
 | |
|     print("EFGH");
 | |
|     resultMustBe(4);
 | |
| 
 | |
|     outputMustBe("ABCDEFGH");
 | |
| } |