stringutil_test.cpp
#include <oak/test/tmain.cpp>
//or #include <oak/test/test.h> (see docs)
#include "stringutils.h"
namespace StringUtilsTest
{
OAK_NEW_TEST(StrStrTest)
{
print();
const char* s = "StrStr Test";
const char* str1 = "Test";
const char* str2 = "Str";
const char* str3 = "Testing";
const char* str4 = "";
const char* str5 = "xyz";
const char* p1 = StringUtils::strstr(s, str1);
const char* p2 = StringUtils::strstr(s, str2);
const char* p3 = StringUtils::strstr(s, str3);
const char* p4 = StringUtils::strstr(s, str4);
const char* p5 = StringUtils::strstr(s, str5);
OAK_TEST_ASSERT_NOT_EQUAL(p1, (const char*)0);
OAK_TEST_ASSERT_NOT_EQUAL(p2, (const char*)0);
OAK_TEST_ASSERT_EQUAL(p3, (const char*)0);
OAK_TEST_ASSERT_EQUAL(p4, s);
OAK_TEST_ASSERT_EQUAL(p5, (const char*)0);
}
void print()
{
out() << "Testing StringUtils::strstr() function" << std::endl;
}
OAK_END_TEST(StrStrTest);
OAK_NEW_TEST2(ToLowerTest, "StringUtils::ToLowerTest")
{
oak::util::Properties::const_iterator iter = props.begin();
oak::util::Properties::const_iterator end = props.end();
while(iter != end)
{
const std::string& name = iter->first;
const std::string& value = iter->second;
//define a big enough array, assuming for convenience here
//that the size will not exceed the array size
char lstr[1024];
StringUtils::tolower(name.c_str(), lstr);
OAK_TEST_ASSERT_EQUAL(value, std::string(lstr));
++iter;
}
}
OAK_END_TEST(ToLowerTest);
OAK_NEW_TEST2(ToUpperTest, "StringUtils::ToUpperTest")
{
oak::util::Properties::const_iterator iter = props.begin();
oak::util::Properties::const_iterator end = props.end();
while(iter != end)
{
const std::string& name = iter->first;
const std::string& value = iter->second;
//define a big enough array, assuming for convenience here
//that the size will not exceed the array size
char ustr[1024];
StringUtils::toupper(name.c_str(), ustr);
OAK_TEST_ASSERT_EQUAL(value, std::string(ustr));
++iter;
}
}
OAK_END_TEST(ToUpperTest);
}
Notes:
- The StringUtil functions are present here
- The test must be built as a .dll (windows) or .so file (unix). See build instructions for details
- To run the test: oakte -p stringutils_test.xml.
- Note that the tests have "props" variable available to get the properties. Similarly user can call out() member function to get the output stream.
- See document "OakUT - C++ unit test framework" for details