forked from bblanchon/ArduinoJson
Converted StringBuilder tests to gtest
This commit is contained in:
76
tests/StringBuilderTests.cpp
Normal file
76
tests/StringBuilderTests.cpp
Normal file
@ -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");
|
||||||
|
}
|
@ -90,6 +90,7 @@
|
|||||||
<ClCompile Include="JsonObjectTests.cpp" />
|
<ClCompile Include="JsonObjectTests.cpp" />
|
||||||
<ClCompile Include="JsonValueTests.cpp" />
|
<ClCompile Include="JsonValueTests.cpp" />
|
||||||
<ClCompile Include="StaticJsonBufferTests.cpp" />
|
<ClCompile Include="StaticJsonBufferTests.cpp" />
|
||||||
|
<ClCompile Include="StringBuilderTests.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\srcs\srcs.vcxproj">
|
<ProjectReference Include="..\srcs\srcs.vcxproj">
|
||||||
|
@ -39,5 +39,8 @@
|
|||||||
<ClCompile Include="EscapedStringTests.cpp">
|
<ClCompile Include="EscapedStringTests.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="StringBuilderTests.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
Reference in New Issue
Block a user