00001 #include "util/tokenize_piece.hh"
00002 #include "util/string_piece.hh"
00003
00004 #define BOOST_TEST_MODULE TokenIteratorTest
00005 #include <boost/test/unit_test.hpp>
00006
00007 #include <iostream>
00008
00009 namespace util {
00010 namespace {
00011
00012 BOOST_AUTO_TEST_CASE(pipe_pipe_none) {
00013 const char str[] = "nodelimit at all";
00014 TokenIter<MultiCharacter> it(str, MultiCharacter("|||"));
00015 BOOST_REQUIRE(it);
00016 BOOST_CHECK_EQUAL(StringPiece(str), *it);
00017 ++it;
00018 BOOST_CHECK(!it);
00019 }
00020 BOOST_AUTO_TEST_CASE(pipe_pipe_two) {
00021 const char str[] = "|||";
00022 TokenIter<MultiCharacter> it(str, MultiCharacter("|||"));
00023 BOOST_REQUIRE(it);
00024 BOOST_CHECK_EQUAL(StringPiece(), *it);
00025 ++it;
00026 BOOST_REQUIRE(it);
00027 BOOST_CHECK_EQUAL(StringPiece(), *it);
00028 ++it;
00029 BOOST_CHECK(!it);
00030 }
00031
00032 BOOST_AUTO_TEST_CASE(remove_empty) {
00033 const char str[] = "|||";
00034 TokenIter<MultiCharacter, true> it(str, MultiCharacter("|||"));
00035 BOOST_CHECK(!it);
00036 }
00037
00038 BOOST_AUTO_TEST_CASE(remove_empty_keep) {
00039 const char str[] = " |||";
00040 TokenIter<MultiCharacter, true> it(str, MultiCharacter("|||"));
00041 BOOST_REQUIRE(it);
00042 BOOST_CHECK_EQUAL(StringPiece(" "), *it);
00043 ++it;
00044 BOOST_CHECK(!it);
00045 }
00046
00047 }
00048 }