#include "StringInsertTest.h"
#include "cppunit/TestCaller.h"
#include <String.h>
StringInsertTest::StringInsertTest(std::string name)
: BTestCase(name)
{
}
StringInsertTest::~StringInsertTest()
{
}
void
StringInsertTest::PerformTest(void)
{
BString *str1, *str2;
NextSubTest();
str1 = new BString("String");
str1->Insert("INSERTED", 3);
CPPUNIT_ASSERT(strcmp(str1->String(), "StrINSERTEDing") == 0);
delete str1;
#ifndef TEST_R5
NextSubTest();
str1 = new BString("String");
str1->Insert("INSERTED", 10);
CPPUNIT_ASSERT(strcmp(str1->String(), "String") == 0);
delete str1;
#endif
NextSubTest();
str1 = new BString;
str1->Insert("INSERTED", -1);
CPPUNIT_ASSERT(strcmp(str1->String(), "NSERTED") == 0);
delete str1;
#ifndef TEST_R5
NextSubTest();
str1 = new BString;
str1->Insert("INSERTED", -142364253);
CPPUNIT_ASSERT(strcmp(str1->String(), "") == 0);
delete str1;
#endif
NextSubTest();
str1 = new BString("string");
str1->Insert("INSERTED", 2, 2);
CPPUNIT_ASSERT(strcmp(str1->String(), "stINring") == 0);
delete str1;
#ifndef TEST_R5
NextSubTest();
str1 = new BString("string");
str1->Insert("INSERTED", 2, 30);
CPPUNIT_ASSERT(strcmp(str1->String(), "string") == 0);
delete str1;
#endif
NextSubTest();
str1 = new BString("string");
str1->Insert("INSERTED", 10, 2);
CPPUNIT_ASSERT(strcmp(str1->String(), "stINSERTEDring") == 0);
delete str1;
NextSubTest();
str1 = new BString("string");
str1->Insert("INSERTED", 4, 30, 2);
CPPUNIT_ASSERT(strcmp(str1->String(), "stRTEDring") == 0);
delete str1;
NextSubTest();
str1 = new BString("string");
str1->Insert('P', 5, 3);
CPPUNIT_ASSERT(strcmp(str1->String(), "strPPPPPing") == 0);
delete str1;
NextSubTest();
str1 = new BString("string");
str1->Insert('P', 5, -2);
CPPUNIT_ASSERT(strcmp(str1->String(), "PPPstring") == 0);
delete str1;
NextSubTest();
str1 = new BString("string");
str2 = new BString("INSERTED");
str1->Insert(*str2, 0);
CPPUNIT_ASSERT(strcmp(str1->String(), "INSERTEDstring") == 0);
delete str1;
delete str2;
NextSubTest();
str1 = new BString("string");
str1->Insert(*str1, 0);
CPPUNIT_ASSERT(strcmp(str1->String(), "string") == 0);
delete str1;
NextSubTest();
str1 = new BString;
str2 = new BString("INSERTED");
str1->Insert(*str2, -1);
CPPUNIT_ASSERT(strcmp(str1->String(), "NSERTED") == 0);
delete str1;
delete str2;
NextSubTest();
str1 = new BString("string");
str2 = new BString("INSERTED");
str1->Insert(*str2, 2, 2);
CPPUNIT_ASSERT(strcmp(str1->String(), "stINring") == 0);
delete str1;
delete str2;
NextSubTest();
str1 = new BString("string");
str2 = new BString("INSERTED");
str1->Insert(*str2, 4, 30, 2);
CPPUNIT_ASSERT(strcmp(str1->String(), "stRTEDring") == 0);
delete str1;
delete str2;
}
CppUnit::Test *StringInsertTest::suite(void)
{
typedef CppUnit::TestCaller<StringInsertTest>
StringInsertTestCaller;
return(new StringInsertTestCaller("BString::Insert Test",
&StringInsertTest::PerformTest));
}