1#include "StringCaseTest.h"
2#include "cppunit/TestCaller.h"
3#include <String.h>
4
5
6StringCaseTest::StringCaseTest(std::string name)
7		: BTestCase(name)
8{
9}
10
11
12StringCaseTest::~StringCaseTest()
13{
14}
15
16
17void
18StringCaseTest::PerformTest(void)
19{
20	BString *string;
21
22	// Capitalize
23	NextSubTest();
24	string = new BString("this is a sentence");
25	string->Capitalize();
26	CPPUNIT_ASSERT(strcmp(string->String(), "This is a sentence") == 0);
27	delete string;
28
29	NextSubTest();
30	string = new BString("134this is a sentence");
31	string->Capitalize();
32	CPPUNIT_ASSERT(strcmp(string->String(), "134this is a sentence") == 0);
33	delete string;
34
35	NextSubTest();
36	string = new BString;
37	string->Capitalize();
38	CPPUNIT_ASSERT(strcmp(string->String(), "") == 0);
39	delete string;
40
41	// ToLower
42	NextSubTest();
43	string = new BString("1a2B3c4d5e6f7G");
44	string->ToLower();
45	CPPUNIT_ASSERT(strcmp(string->String(), "1a2b3c4d5e6f7g") == 0);
46	delete string;
47
48	NextSubTest();
49	string = new BString;
50	string->ToLower();
51	CPPUNIT_ASSERT(strcmp(string->String(), "") == 0);
52	delete string;
53
54	// ToUpper
55	NextSubTest();
56	string = new BString("1a2b3c4d5E6f7g");
57	string->ToUpper();
58	CPPUNIT_ASSERT(strcmp(string->String(), "1A2B3C4D5E6F7G") == 0);
59	delete string;
60
61	NextSubTest();
62	string = new BString;
63	string->ToUpper();
64	CPPUNIT_ASSERT(strcmp(string->String(), "") == 0);
65	delete string;
66
67	// CapitalizeEachWord
68	NextSubTest();
69	string = new BString("each wOrd 3will_be >capiTalized");
70	string->CapitalizeEachWord();
71	CPPUNIT_ASSERT(strcmp(string->String(), "Each Word 3Will_Be >Capitalized") == 0);
72	delete string;
73
74	NextSubTest();
75	string = new BString;
76	string->CapitalizeEachWord();
77	CPPUNIT_ASSERT(strcmp(string->String(), "") == 0);
78	delete string;
79}
80
81
82CppUnit::Test *StringCaseTest::suite(void)
83{
84	typedef CppUnit::TestCaller<StringCaseTest>
85		StringCaseTestCaller;
86
87	return(new StringCaseTestCaller("BString::Case Test",
88		&StringCaseTest::PerformTest));
89}
90