More tests for BString

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1352 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2002-10-03 06:42:01 +00:00
parent 7e1d70ff27
commit eee13b4d9a
9 changed files with 359 additions and 97 deletions
@@ -0,0 +1,116 @@
#include "StringAppendTest.h"
#include "cppunit/TestCaller.h"
#include <String.h>
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<StringAppendTest>
StringAppendTestCaller;
return(new StringAppendTestCaller("BString::Append Test", &StringAppendTest::PerformTest));
}
@@ -0,0 +1,22 @@
#ifndef StringAppendTest_H
#define StringAppendTest_H
#include "TestCase.h"
#include <String.h>
class StringAppendTest : public BTestCase
{
private:
protected:
public:
static Test *suite(void);
void PerformTest(void);
StringAppendTest(std::string name = "");
virtual ~StringAppendTest();
};
#endif
@@ -0,0 +1,103 @@
#include "StringAssignTest.h"
#include "cppunit/TestCaller.h"
#include <String.h>
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<StringAssignTest>
StringAssignTestCaller;
return(new StringAssignTestCaller("BString::Assign Test", &StringAssignTest::PerformTest));
}
@@ -0,0 +1,22 @@
#ifndef StringAssignTest_H
#define StringAssignTest_H
#include "TestCase.h"
#include <String.h>
class StringAssignTest : public BTestCase
{
private:
protected:
public:
static Test *suite(void);
void PerformTest(void);
StringAssignTest(std::string name = "");
virtual ~StringAssignTest();
};
#endif
@@ -0,0 +1,64 @@
#include "StringCaseTest.h"
#include "cppunit/TestCaller.h"
#include <String.h>
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<StringCaseTest>
StringCaseTestCaller;
return(new StringCaseTestCaller("BString::Case Test", &StringCaseTest::PerformTest));
}
@@ -0,0 +1,22 @@
#ifndef StringCaseTest_H
#define StringCaseTest_H
#include "TestCase.h"
#include <String.h>
class StringCaseTest : public BTestCase
{
private:
protected:
public:
static Test *suite(void);
void PerformTest(void);
StringCaseTest(std::string name = "");
virtual ~StringCaseTest();
};
#endif
@@ -1,73 +0,0 @@
#include "StringOperatorsTest.h"
#include "cppunit/TestCaller.h"
#include <String.h>
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<StringOperatorsTest>
StringOperatorsTestCaller;
return(new StringOperatorsTestCaller("BString::Operators Test", &StringOperatorsTest::PerformTest));
}
@@ -1,22 +0,0 @@
#ifndef StringOperatorsTest_H
#define StringOperatorsTest_H
#include "TestCase.h"
#include <String.h>
class StringOperatorsTest : public BTestCase
{
private:
protected:
public:
static Test *suite(void);
void PerformTest(void);
StringOperatorsTest(std::string name = "");
virtual ~StringOperatorsTest();
};
#endif
+10 -2
View File
@@ -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);
}