xref: /haiku/src/tests/kits/support/bstring/StringFormatAppendTest.cpp (revision ce06a3c712a966248b1005fc338e1512ce20788e)
1*ce06a3c7SStefano Ceccherini #include "StringFormatAppendTest.h"
2*ce06a3c7SStefano Ceccherini #include "cppunit/TestCaller.h"
3*ce06a3c7SStefano Ceccherini #include <String.h>
4*ce06a3c7SStefano Ceccherini 
5*ce06a3c7SStefano Ceccherini StringFormatAppendTest::StringFormatAppendTest(std::string name) :
6*ce06a3c7SStefano Ceccherini 		BTestCase(name)
7*ce06a3c7SStefano Ceccherini {
8*ce06a3c7SStefano Ceccherini }
9*ce06a3c7SStefano Ceccherini 
10*ce06a3c7SStefano Ceccherini 
11*ce06a3c7SStefano Ceccherini 
12*ce06a3c7SStefano Ceccherini StringFormatAppendTest::~StringFormatAppendTest()
13*ce06a3c7SStefano Ceccherini {
14*ce06a3c7SStefano Ceccherini }
15*ce06a3c7SStefano Ceccherini 
16*ce06a3c7SStefano Ceccherini 
17*ce06a3c7SStefano Ceccherini void
18*ce06a3c7SStefano Ceccherini StringFormatAppendTest::PerformTest(void)
19*ce06a3c7SStefano Ceccherini {
20*ce06a3c7SStefano Ceccherini 	BString *string, *string2;
21*ce06a3c7SStefano Ceccherini 
22*ce06a3c7SStefano Ceccherini 	//operator<<(const char *);
23*ce06a3c7SStefano Ceccherini 	NextSubTest();
24*ce06a3c7SStefano Ceccherini 	string = new BString("some");
25*ce06a3c7SStefano Ceccherini 	*string << " ";
26*ce06a3c7SStefano Ceccherini 	*string << "text";
27*ce06a3c7SStefano Ceccherini 	CPPUNIT_ASSERT(strcmp(string->String(), "some text") == 0);
28*ce06a3c7SStefano Ceccherini 	delete string;
29*ce06a3c7SStefano Ceccherini 
30*ce06a3c7SStefano Ceccherini 	//operator<<(const BString &);
31*ce06a3c7SStefano Ceccherini 	NextSubTest();
32*ce06a3c7SStefano Ceccherini 	string = new BString("some ");
33*ce06a3c7SStefano Ceccherini 	string2 = new BString("text");
34*ce06a3c7SStefano Ceccherini 	*string << *string2;
35*ce06a3c7SStefano Ceccherini 	CPPUNIT_ASSERT(strcmp(string->String(), "some text") == 0);
36*ce06a3c7SStefano Ceccherini 	delete string;
37*ce06a3c7SStefano Ceccherini 	delete string2;
38*ce06a3c7SStefano Ceccherini 
39*ce06a3c7SStefano Ceccherini 	//operator<<(char);
40*ce06a3c7SStefano Ceccherini 	NextSubTest();
41*ce06a3c7SStefano Ceccherini 	string = new BString("str");
42*ce06a3c7SStefano Ceccherini 	*string << 'i' << 'n' << 'g';
43*ce06a3c7SStefano Ceccherini 	CPPUNIT_ASSERT(strcmp(string->String(), "string") == 0);
44*ce06a3c7SStefano Ceccherini 	delete string;
45*ce06a3c7SStefano Ceccherini 
46*ce06a3c7SStefano Ceccherini 	//operator<<(int);
47*ce06a3c7SStefano Ceccherini 	NextSubTest();
48*ce06a3c7SStefano Ceccherini 	string = new BString("level ");
49*ce06a3c7SStefano Ceccherini 	*string << (int)42;
50*ce06a3c7SStefano Ceccherini 	CPPUNIT_ASSERT(strcmp(string->String(), "level 42") == 0);
51*ce06a3c7SStefano Ceccherini 	delete string;
52*ce06a3c7SStefano Ceccherini 
53*ce06a3c7SStefano Ceccherini 	NextSubTest();
54*ce06a3c7SStefano Ceccherini 	string = new BString("error ");
55*ce06a3c7SStefano Ceccherini 	*string << (int)-1;
56*ce06a3c7SStefano Ceccherini 	CPPUNIT_ASSERT(strcmp(string->String(), "error -1") == 0);
57*ce06a3c7SStefano Ceccherini 	delete string;
58*ce06a3c7SStefano Ceccherini 
59*ce06a3c7SStefano Ceccherini 	//operator<<(unsigned int);
60*ce06a3c7SStefano Ceccherini 	NextSubTest();
61*ce06a3c7SStefano Ceccherini 	NextSubTest();
62*ce06a3c7SStefano Ceccherini 	string = new BString("number ");
63*ce06a3c7SStefano Ceccherini 	*string << (unsigned int)296;
64*ce06a3c7SStefano Ceccherini 	CPPUNIT_ASSERT(strcmp(string->String(), "number 296") == 0);
65*ce06a3c7SStefano Ceccherini 	delete string;
66*ce06a3c7SStefano Ceccherini 
67*ce06a3c7SStefano Ceccherini 	//operator<<(uint32);
68*ce06a3c7SStefano Ceccherini 	//operator<<(int32);
69*ce06a3c7SStefano Ceccherini 	//operator<<(uint64);
70*ce06a3c7SStefano Ceccherini 	//operator<<(int64);
71*ce06a3c7SStefano Ceccherini 
72*ce06a3c7SStefano Ceccherini 	//operator<<(float);
73*ce06a3c7SStefano Ceccherini 	NextSubTest();
74*ce06a3c7SStefano Ceccherini 	string = new BString;
75*ce06a3c7SStefano Ceccherini 	*string << (float)34.542;
76*ce06a3c7SStefano Ceccherini 	CPPUNIT_ASSERT(strcmp(string->String(), "34.54") == 0);
77*ce06a3c7SStefano Ceccherini 	delete string;
78*ce06a3c7SStefano Ceccherini 
79*ce06a3c7SStefano Ceccherini 	//Misc test
80*ce06a3c7SStefano Ceccherini 	NextSubTest();
81*ce06a3c7SStefano Ceccherini 	BString s;
82*ce06a3c7SStefano Ceccherini 	s << "This" << ' ' << "is" << ' ' << 'a' << ' ' << "test" << ' ' << "sentence";
83*ce06a3c7SStefano Ceccherini 	CPPUNIT_ASSERT(strcmp(s.String(), "This is a test sentence") == 0);
84*ce06a3c7SStefano Ceccherini }
85*ce06a3c7SStefano Ceccherini 
86*ce06a3c7SStefano Ceccherini 
87*ce06a3c7SStefano Ceccherini CppUnit::Test *StringFormatAppendTest::suite(void)
88*ce06a3c7SStefano Ceccherini {
89*ce06a3c7SStefano Ceccherini 	typedef CppUnit::TestCaller<StringFormatAppendTest>
90*ce06a3c7SStefano Ceccherini 		StringFormatAppendTestCaller;
91*ce06a3c7SStefano Ceccherini 
92*ce06a3c7SStefano Ceccherini 	return(new StringFormatAppendTestCaller("BString::FormatAppend Test", &StringFormatAppendTest::PerformTest));
93*ce06a3c7SStefano Ceccherini }
94