From 02a77f67971b1f0304be773bd69bb3fc1a12fa90 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 4 Dec 2014 07:23:06 +0100 Subject: test/test_util: add unit test for DivideString --- test/DivideStringTest.hxx | 44 ++++++++++++++++++++++++++++++++++++++++++++ test/test_util.cxx | 2 ++ 2 files changed, 46 insertions(+) create mode 100644 test/DivideStringTest.hxx (limited to 'test') diff --git a/test/DivideStringTest.hxx b/test/DivideStringTest.hxx new file mode 100644 index 000000000..83c54dc56 --- /dev/null +++ b/test/DivideStringTest.hxx @@ -0,0 +1,44 @@ +/* + * Unit tests for src/util/ + */ + +#include "check.h" +#include "util/DivideString.hxx" + +#include +#include + +#include + +class DivideStringTest : public CppUnit::TestFixture { + CPPUNIT_TEST_SUITE(DivideStringTest); + CPPUNIT_TEST(TestBasic); + CPPUNIT_TEST(TestEmpty); + CPPUNIT_TEST(TestFail); + CPPUNIT_TEST_SUITE_END(); + +public: + void TestBasic() { + constexpr char input[] = "foo.bar"; + const DivideString ds(input, '.'); + CPPUNIT_ASSERT(ds.IsDefined()); + CPPUNIT_ASSERT(!ds.IsEmpty()); + CPPUNIT_ASSERT_EQUAL(0, strcmp(ds.GetFirst(), "foo")); + CPPUNIT_ASSERT_EQUAL(input + 4, ds.GetSecond()); + } + + void TestEmpty() { + constexpr char input[] = ".bar"; + const DivideString ds(input, '.'); + CPPUNIT_ASSERT(ds.IsDefined()); + CPPUNIT_ASSERT(ds.IsEmpty()); + CPPUNIT_ASSERT_EQUAL(0, strcmp(ds.GetFirst(), "")); + CPPUNIT_ASSERT_EQUAL(input + 1, ds.GetSecond()); + } + + void TestFail() { + constexpr char input[] = "foo!bar"; + const DivideString ds(input, '.'); + CPPUNIT_ASSERT(!ds.IsDefined()); + } +}; diff --git a/test/test_util.cxx b/test/test_util.cxx index a40963918..e9b49c4da 100644 --- a/test/test_util.cxx +++ b/test/test_util.cxx @@ -3,6 +3,7 @@ */ #include "config.h" +#include "DivideStringTest.hxx" #include "UriUtilTest.hxx" #include "TestCircularBuffer.hxx" @@ -13,6 +14,7 @@ #include +CPPUNIT_TEST_SUITE_REGISTRATION(DivideStringTest); CPPUNIT_TEST_SUITE_REGISTRATION(UriUtilTest); CPPUNIT_TEST_SUITE_REGISTRATION(TestCircularBuffer); -- cgit v1.2.3