From eee13b4d9a4bda5ddd1b627845c43a7c905bef19 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Thu, 3 Oct 2002 06:42:01 +0000 Subject: [PATCH] More tests for BString git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1352 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kits/support/bstring/StringAppendTest.cpp | 116 ++++++++++++++++++ .../kits/support/bstring/StringAppendTest.h | 22 ++++ .../kits/support/bstring/StringAssignTest.cpp | 103 ++++++++++++++++ .../kits/support/bstring/StringAssignTest.h | 22 ++++ .../kits/support/bstring/StringCaseTest.cpp | 64 ++++++++++ .../kits/support/bstring/StringCaseTest.h | 22 ++++ .../support/bstring/StringOperatorsTest.cpp | 73 ----------- .../support/bstring/StringOperatorsTest.h | 22 ---- src/tests/kits/support/bstring/StringTest.cpp | 12 +- 9 files changed, 359 insertions(+), 97 deletions(-) create mode 100644 src/tests/kits/support/bstring/StringAppendTest.cpp create mode 100644 src/tests/kits/support/bstring/StringAppendTest.h create mode 100644 src/tests/kits/support/bstring/StringAssignTest.cpp create mode 100644 src/tests/kits/support/bstring/StringAssignTest.h create mode 100644 src/tests/kits/support/bstring/StringCaseTest.cpp create mode 100644 src/tests/kits/support/bstring/StringCaseTest.h delete mode 100644 src/tests/kits/support/bstring/StringOperatorsTest.cpp delete mode 100644 src/tests/kits/support/bstring/StringOperatorsTest.h diff --git a/src/tests/kits/support/bstring/StringAppendTest.cpp b/src/tests/kits/support/bstring/StringAppendTest.cpp new file mode 100644 index 0000000000..a652485219 --- /dev/null +++ b/src/tests/kits/support/bstring/StringAppendTest.cpp @@ -0,0 +1,116 @@ +#include "StringAppendTest.h" +#include "cppunit/TestCaller.h" +#include + +StringAppendTest::StringAppendTest(std::string name) : + BTestCase(name) +{ +} + + + +StringAppendTest::~StringAppendTest() +{ +} + + +void +StringAppendTest::PerformTest(void) +{ + BString *str1, *str2; + + NextSubTest(); + str1 = new BString("BASE"); + str2 = new BString("APPENDED"); + *str1 += *str2; + CPPUNIT_ASSERT(strcmp(str1->String(), "BASEAPPENDED") == 0); + delete str1; + delete str2; + + NextSubTest(); + str1 = new BString("Base"); + *str1 += "APPENDED"; + CPPUNIT_ASSERT(strcmp(str1->String(), "BaseAPPENDED") == 0); + delete str1; + + NextSubTest(); + str1 = new BString; + *str1 += "APPENDEDTONOTHING"; + CPPUNIT_ASSERT(strcmp(str1->String(), "APPENDEDTONOTHING") == 0); + delete str1; + + NextSubTest(); + char *tmp = NULL; + str1 = new BString("Base"); + *str1 += tmp; + CPPUNIT_ASSERT(strcmp(str1->String(), "Base") == 0); + delete str1; + + NextSubTest(); + str1 = new BString("Base"); + *str1 += 'C'; + CPPUNIT_ASSERT(strcmp(str1->String(), "BaseC") == 0); + delete str1; + + NextSubTest(); + str1 = new BString("BASE"); + str2 = new BString("APPENDED"); + str1->Append(*str2); + CPPUNIT_ASSERT(strcmp(str1->String(), "BASEAPPENDED") == 0); + delete str1; + delete str2; + + NextSubTest(); + str1 = new BString("Base"); + str1->Append("APPENDED"); + CPPUNIT_ASSERT(strcmp(str1->String(), "BaseAPPENDED") == 0); + delete str1; + + NextSubTest(); + str1 = new BString; + str1->Append("APPENDEDTONOTHING"); + CPPUNIT_ASSERT(strcmp(str1->String(), "APPENDEDTONOTHING") == 0); + delete str1; + + NextSubTest(); + str1 = new BString("Base"); + str1->Append(tmp); + CPPUNIT_ASSERT(strcmp(str1->String(), "Base") == 0); + delete str1; + + NextSubTest(); + str1 = new BString("BASE"); + str2 = new BString("APPENDED"); + str1->Append(*str2, 2); + CPPUNIT_ASSERT(strcmp(str1->String(), "BASEAP") == 0); + delete str1; + delete str2; + + NextSubTest(); + str1 = new BString("Base"); + str1->Append("APPENDED", 40); + CPPUNIT_ASSERT(strcmp(str1->String(), "BaseAPPENDED") == 0); + CPPUNIT_ASSERT(str1->Length() == strlen("BaseAPPENDED")); + delete str1; + + NextSubTest(); + str1 = new BString("BLABLA"); + str1->Append(tmp, 2); + CPPUNIT_ASSERT(strcmp(str1->String(), "BLABLA") == 0); + delete str1; + + NextSubTest(); + str1 = new BString("Base"); + str1->Append('C', 5); + CPPUNIT_ASSERT(strcmp(str1->String(), "BaseCCCCC") == 0); + delete str1; +} + + +CppUnit::Test *StringAppendTest::suite(void) +{ + typedef CppUnit::TestCaller + StringAppendTestCaller; + + return(new StringAppendTestCaller("BString::Append Test", &StringAppendTest::PerformTest)); +} diff --git a/src/tests/kits/support/bstring/StringAppendTest.h b/src/tests/kits/support/bstring/StringAppendTest.h new file mode 100644 index 0000000000..6bcd958e52 --- /dev/null +++ b/src/tests/kits/support/bstring/StringAppendTest.h @@ -0,0 +1,22 @@ +#ifndef StringAppendTest_H +#define StringAppendTest_H + +#include "TestCase.h" +#include + + +class StringAppendTest : public BTestCase +{ + +private: + +protected: + +public: + static Test *suite(void); + void PerformTest(void); + StringAppendTest(std::string name = ""); + virtual ~StringAppendTest(); + }; + +#endif diff --git a/src/tests/kits/support/bstring/StringAssignTest.cpp b/src/tests/kits/support/bstring/StringAssignTest.cpp new file mode 100644 index 0000000000..30e0db3158 --- /dev/null +++ b/src/tests/kits/support/bstring/StringAssignTest.cpp @@ -0,0 +1,103 @@ +#include "StringAssignTest.h" +#include "cppunit/TestCaller.h" +#include + + +StringAssignTest::StringAssignTest(std::string name) : + BTestCase(name) +{ +} + + + +StringAssignTest::~StringAssignTest() +{ +} + + +void +StringAssignTest::PerformTest(void) +{ + NextSubTest(); + BString string; + BString string2("Something"); + string = string2; + CPPUNIT_ASSERT(strcmp(string.String(), string2.String()) == 0); + CPPUNIT_ASSERT(strcmp(string.String(), "Something") == 0); + + NextSubTest(); + BString *str = new BString(); + *str = "Something Else"; + CPPUNIT_ASSERT(strcmp(str->String(), "Something Else") == 0); + delete str; + + NextSubTest(); + char *s = NULL; + str = new BString; + *str = s; + CPPUNIT_ASSERT(strcmp(str->String(), "") == 0); + delete str; + + NextSubTest(); + str = new BString; + str->SetTo(s); + CPPUNIT_ASSERT(strcmp(str->String(), "") == 0); + delete str; + + NextSubTest(); + str = new BString; + str->SetTo("BLA"); + CPPUNIT_ASSERT(strcmp(str->String(), "BLA") == 0); + delete str; + + NextSubTest(); + str = new BString; + str->SetTo(string); + CPPUNIT_ASSERT(strcmp(str->String(), string.String()) == 0); + delete str; + + NextSubTest(); + str = new BString; + str->SetTo('C', 10); + CPPUNIT_ASSERT(strcmp(str->String(), "CCCCCCCCCC") == 0); + delete str; + + NextSubTest(); + str = new BString("ASDSGAFA"); + str->SetTo('C', 0); + CPPUNIT_ASSERT(strcmp(str->String(), "") == 0); + delete str; + + NextSubTest(); + str = new BString; + str->SetTo("ABC", 10); + CPPUNIT_ASSERT(strcmp(str->String(), "ABC") == 0); + delete str; + + NextSubTest(); + const char *oldString2 = string2.String(); + str = new BString; + str->Adopt(string2); + CPPUNIT_ASSERT(strcmp(str->String(), oldString2) == 0); + CPPUNIT_ASSERT(strcmp(string2.String(), "") == 0); + delete str; + + NextSubTest(); + BString newstring("SomethingElseAgain"); + const char *oldString = newstring.String(); + str = new BString; + str->Adopt(newstring, 2); + CPPUNIT_ASSERT(strncmp(str->String(), oldString, 2) == 0); + CPPUNIT_ASSERT(str->Length() == 2); + CPPUNIT_ASSERT(strcmp(newstring.String(), "") == 0); + delete str; +} + + +CppUnit::Test *StringAssignTest::suite(void) +{ + typedef CppUnit::TestCaller + StringAssignTestCaller; + + return(new StringAssignTestCaller("BString::Assign Test", &StringAssignTest::PerformTest)); +} diff --git a/src/tests/kits/support/bstring/StringAssignTest.h b/src/tests/kits/support/bstring/StringAssignTest.h new file mode 100644 index 0000000000..b1f617a37c --- /dev/null +++ b/src/tests/kits/support/bstring/StringAssignTest.h @@ -0,0 +1,22 @@ +#ifndef StringAssignTest_H +#define StringAssignTest_H + +#include "TestCase.h" +#include + + +class StringAssignTest : public BTestCase +{ + +private: + +protected: + +public: + static Test *suite(void); + void PerformTest(void); + StringAssignTest(std::string name = ""); + virtual ~StringAssignTest(); +}; + +#endif diff --git a/src/tests/kits/support/bstring/StringCaseTest.cpp b/src/tests/kits/support/bstring/StringCaseTest.cpp new file mode 100644 index 0000000000..b358f4cd32 --- /dev/null +++ b/src/tests/kits/support/bstring/StringCaseTest.cpp @@ -0,0 +1,64 @@ +#include "StringCaseTest.h" +#include "cppunit/TestCaller.h" +#include + +StringCaseTest::StringCaseTest(std::string name) : + BTestCase(name) +{ +} + + + +StringCaseTest::~StringCaseTest() +{ +} + + +void +StringCaseTest::PerformTest(void) +{ + BString *string; + + //Capitalize + NextSubTest(); + string = new BString("this is a sentence"); + string->Capitalize(); + CPPUNIT_ASSERT(strcmp(string->String(), "This is a sentence") == 0); + delete string; + + NextSubTest(); + string = new BString("134this is a sentence"); + string->Capitalize(); + CPPUNIT_ASSERT(strcmp(string->String(), "134this is a sentence") == 0); + delete string; + + //ToLower + NextSubTest(); + string = new BString("1a2B3c4d5e6f7G"); + string->ToLower(); + CPPUNIT_ASSERT(strcmp(string->String(), "1a2b3c4d5e6f7g") == 0); + delete string; + + //ToUpper + NextSubTest(); + string = new BString("1a2b3c4d5E6f7g"); + string->ToUpper(); + CPPUNIT_ASSERT(strcmp(string->String(), "1A2B3C4D5E6F7G") == 0); + delete string; + + //CapitalizeEachWord + NextSubTest(); + string = new BString("each wOrd 3will_be >capiTalized"); + string->CapitalizeEachWord(); + CPPUNIT_ASSERT(strcmp(string->String(), "Each Word 3Will_Be >Capitalized") == 0); + delete string; +} + + +CppUnit::Test *StringCaseTest::suite(void) +{ + typedef CppUnit::TestCaller + StringCaseTestCaller; + + return(new StringCaseTestCaller("BString::Case Test", &StringCaseTest::PerformTest)); +} diff --git a/src/tests/kits/support/bstring/StringCaseTest.h b/src/tests/kits/support/bstring/StringCaseTest.h new file mode 100644 index 0000000000..3ddf3f6ea7 --- /dev/null +++ b/src/tests/kits/support/bstring/StringCaseTest.h @@ -0,0 +1,22 @@ +#ifndef StringCaseTest_H +#define StringCaseTest_H + +#include "TestCase.h" +#include + + +class StringCaseTest : public BTestCase +{ + +private: + +protected: + +public: + static Test *suite(void); + void PerformTest(void); + StringCaseTest(std::string name = ""); + virtual ~StringCaseTest(); + }; + +#endif diff --git a/src/tests/kits/support/bstring/StringOperatorsTest.cpp b/src/tests/kits/support/bstring/StringOperatorsTest.cpp deleted file mode 100644 index 780de940ae..0000000000 --- a/src/tests/kits/support/bstring/StringOperatorsTest.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include "StringOperatorsTest.h" -#include "cppunit/TestCaller.h" -#include - - -StringOperatorsTest::StringOperatorsTest(std::string name) : - BTestCase(name) -{ -} - - - -StringOperatorsTest::~StringOperatorsTest() -{ -} - - -void -StringOperatorsTest::PerformTest(void) -{ - NextSubTest(); - BString string; - BString string2("Something"); - string = string2; - CPPUNIT_ASSERT(strcmp(string.String(), string2.String()) == 0); - CPPUNIT_ASSERT(strcmp(string.String(), "Something") == 0); - - NextSubTest(); - BString *str = new BString(); - *str = "Something Else"; - CPPUNIT_ASSERT(strcmp(str->String(), "Something Else") == 0); - delete str; - - NextSubTest(); - char *s = NULL; - str = new BString; - *str = s; - CPPUNIT_ASSERT(strcmp(str->String(), "") == 0); - delete str; - - NextSubTest(); - str = new BString("WaitFor"); - *str += string2; - CPPUNIT_ASSERT(strcmp(str->String(), "WaitForSomething") == 0); - delete str; - - NextSubTest(); - str = new BString("Some"); - *str += "thing"; - CPPUNIT_ASSERT(strcmp(str->String(), "Something") == 0); - delete str; - - NextSubTest(); - str = new BString("Some"); - *str += (char*)NULL; - CPPUNIT_ASSERT(strcmp(str->String(), "Some") == 0); - delete str; - - NextSubTest(); - str = new BString("Somethin"); - *str += 'g'; - CPPUNIT_ASSERT(strcmp(str->String(), "Something") == 0); - delete str; -} - - -CppUnit::Test *StringOperatorsTest::suite(void) -{ - typedef CppUnit::TestCaller - StringOperatorsTestCaller; - - return(new StringOperatorsTestCaller("BString::Operators Test", &StringOperatorsTest::PerformTest)); -} diff --git a/src/tests/kits/support/bstring/StringOperatorsTest.h b/src/tests/kits/support/bstring/StringOperatorsTest.h deleted file mode 100644 index b32aaa43f0..0000000000 --- a/src/tests/kits/support/bstring/StringOperatorsTest.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef StringOperatorsTest_H -#define StringOperatorsTest_H - -#include "TestCase.h" -#include - - -class StringOperatorsTest : public BTestCase -{ - -private: - -protected: - -public: - static Test *suite(void); - void PerformTest(void); - StringOperatorsTest(std::string name = ""); - virtual ~StringOperatorsTest(); -}; - -#endif diff --git a/src/tests/kits/support/bstring/StringTest.cpp b/src/tests/kits/support/bstring/StringTest.cpp index cd6def0aee..9a48a70861 100644 --- a/src/tests/kits/support/bstring/StringTest.cpp +++ b/src/tests/kits/support/bstring/StringTest.cpp @@ -3,7 +3,11 @@ #include "StringTest.h" #include "StringConstructionTest.h" #include "StringCountCharTest.h" -#include "StringOperatorsTest.h" +#include "StringAssignTest.h" +#include "StringAppendTest.h" +#include "StringSubCopyTest.h" +#include "StringPrependTest.h" +#include "StringCaseTest.h" CppUnit::Test *StringTestSuite() { @@ -11,7 +15,11 @@ CppUnit::Test *StringTestSuite() testSuite->addTest(StringConstructionTest::suite()); testSuite->addTest(StringCountCharTest::suite()); - testSuite->addTest(StringOperatorsTest::suite()); + testSuite->addTest(StringAssignTest::suite()); + testSuite->addTest(StringAppendTest::suite()); + testSuite->addTest(StringSubCopyTest::suite()); + testSuite->addTest(StringPrependTest::suite()); + testSuite->addTest(StringCaseTest::suite()); return(testSuite); }