1#include "StringConstructionTest.h" 2#include "cppunit/TestCaller.h" 3#include <String.h> 4 5 6StringConstructionTest::StringConstructionTest(std::string name) : 7 BTestCase(name) 8{ 9} 10 11 12 13StringConstructionTest::~StringConstructionTest() 14{ 15} 16 17 18void 19StringConstructionTest::PerformTest(void) 20{ 21 BString *string; 22 const char *str = "Something"; 23 24 //BString() 25 NextSubTest(); 26 string = new BString; 27 CPPUNIT_ASSERT(strcmp(string->String(), "") == 0); 28 CPPUNIT_ASSERT(string->Length() == 0); 29 delete string; 30 31 //BString(const char*) 32 NextSubTest(); 33 string = new BString(str); 34 CPPUNIT_ASSERT(strcmp(string->String(), str) == 0); 35 CPPUNIT_ASSERT((unsigned)string->Length() == strlen(str)); 36 delete string; 37 38 //BString(NULL) 39 NextSubTest(); 40 string = new BString(NULL); 41 CPPUNIT_ASSERT(strcmp(string->String(), "") == 0); 42 CPPUNIT_ASSERT(string->Length() == 0); 43 delete string; 44 45 //BString(BString&) 46 NextSubTest(); 47 BString anotherString("Something Else"); 48 string = new BString(anotherString); 49 CPPUNIT_ASSERT(strcmp(string->String(), anotherString.String()) == 0); 50 CPPUNIT_ASSERT(string->Length() == anotherString.Length()); 51 delete string; 52 53 //BString(const char*, int32) 54 NextSubTest(); 55 string = new BString(str, 5); 56 CPPUNIT_ASSERT(strcmp(string->String(), str) != 0); 57 CPPUNIT_ASSERT(strncmp(string->String(), str, 5) == 0); 58 CPPUNIT_ASSERT(string->Length() == 5); 59 delete string; 60 61 NextSubTest(); 62 string = new BString(str, 255); 63 CPPUNIT_ASSERT(strcmp(string->String(), str) == 0); 64 CPPUNIT_ASSERT((unsigned)string->Length() == strlen(str)); 65 delete string; 66} 67 68 69CppUnit::Test *StringConstructionTest::suite(void) 70{ 71 typedef CppUnit::TestCaller<StringConstructionTest> 72 StringConstructionTestCaller; 73 74 return(new StringConstructionTestCaller("BString::Construction Test", &StringConstructionTest::PerformTest)); 75} 76