home oakut


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:



SourceForge.net Logo