Przeglądaj źródła

Converted StringBuilder tests to gtest

Benoit Blanchon 11 lat temu
rodzic
commit
a665fa1dec
3 zmienionych plików z 80 dodań i 0 usunięć
  1. 76 0
      tests/StringBuilderTests.cpp
  2. 1 0
      tests/tests.vcxproj
  3. 3 0
      tests/tests.vcxproj.filters

+ 76 - 0
tests/StringBuilderTests.cpp

@@ -0,0 +1,76 @@
+#include <gtest/gtest.h>
+
+#include "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");
+}

+ 1 - 0
tests/tests.vcxproj

@@ -90,6 +90,7 @@
     <ClCompile Include="JsonObjectTests.cpp" />
     <ClCompile Include="JsonValueTests.cpp" />
     <ClCompile Include="StaticJsonBufferTests.cpp" />
+    <ClCompile Include="StringBuilderTests.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\srcs\srcs.vcxproj">

+ 3 - 0
tests/tests.vcxproj.filters

@@ -39,5 +39,8 @@
     <ClCompile Include="EscapedStringTests.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="StringBuilderTests.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
 </Project>