summaryrefslogtreecommitdiff
path: root/test/ParameterizedStringParserTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-04-20 00:50:22 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-04-20 00:50:22 +0000
commit3505201f3333c937b5b870d70019d400c722a69f (patch)
treedef64ac6be50375e43da5e3e91eb443dd4c171fc /test/ParameterizedStringParserTest.cc
parent99733a84e2102739ee7c9de08ffae9e9216b6003 (diff)
2008-04-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten SharedHandle. Now copy constructor taking raw pointer has keyword explicit and SharedHandle's default constructor initializes its internal obj to null, old implementation initializes it using obj's default constructor. To assign null, write SharedHandle<T> x(...); x.reset(); TODO: test/SharedHandleTest.cc needs more tests. * src/SharedHandle.h
Diffstat (limited to 'test/ParameterizedStringParserTest.cc')
-rw-r--r--test/ParameterizedStringParserTest.cc25
1 files changed, 14 insertions, 11 deletions
diff --git a/test/ParameterizedStringParserTest.cc b/test/ParameterizedStringParserTest.cc
index f89e350f..4d0cd79c 100644
--- a/test/ParameterizedStringParserTest.cc
+++ b/test/ParameterizedStringParserTest.cc
@@ -54,7 +54,7 @@ CPPUNIT_TEST_SUITE_REGISTRATION( ParameterizedStringParserTest );
void ParameterizedStringParserTest::testParse_select()
{
SharedHandle<PStringDatum> ls = ParameterizedStringParser().parse("{alpha, bravo, charlie}");
- SharedHandle<PStringSelect> select = ls;
+ SharedHandle<PStringSelect> select(dynamic_pointer_cast<PStringSelect>(ls));
CPPUNIT_ASSERT(!select.isNull());
std::deque<std::string> values = select->getValues();
@@ -94,7 +94,7 @@ void ParameterizedStringParserTest::testParse_select_missingParen()
void ParameterizedStringParserTest::testParse_segment()
{
SharedHandle<PStringDatum> ls = ParameterizedStringParser().parse("hello world");
- SharedHandle<PStringSegment> segment = ls;
+ SharedHandle<PStringSegment> segment(dynamic_pointer_cast<PStringSegment>(ls));
CPPUNIT_ASSERT(!segment.isNull());
CPPUNIT_ASSERT_EQUAL(std::string("hello world"), segment->getValue());
}
@@ -103,19 +103,22 @@ void ParameterizedStringParserTest::testParse_segment_select()
{
SharedHandle<PStringDatum> ls = ParameterizedStringParser().parse("file:///{alpha, bravo, charlie}/tango");
- SharedHandle<PStringSegment> segment1 = ls;
+ SharedHandle<PStringSegment> segment1
+ (dynamic_pointer_cast<PStringSegment>(ls));
CPPUNIT_ASSERT(!segment1.isNull());
CPPUNIT_ASSERT_EQUAL(std::string("file:///"), segment1->getValue());
- SharedHandle<PStringSelect> select1 = segment1->getNext();
+ SharedHandle<PStringSelect> select1
+ (dynamic_pointer_cast<PStringSelect>(segment1->getNext()));
CPPUNIT_ASSERT(!select1.isNull());
std::deque<std::string> selectValues = select1->getValues();
CPPUNIT_ASSERT_EQUAL((size_t)3, selectValues.size());
CPPUNIT_ASSERT_EQUAL(std::string("alpha"), selectValues[0]);
CPPUNIT_ASSERT_EQUAL(std::string("bravo"), selectValues[1]);
CPPUNIT_ASSERT_EQUAL(std::string("charlie"), selectValues[2]);
-
- SharedHandle<PStringSegment> segment2 = select1->getNext();
+
+ SharedHandle<PStringSegment> segment2
+ (dynamic_pointer_cast<PStringSegment>(select1->getNext()));
CPPUNIT_ASSERT(!segment2.isNull());
CPPUNIT_ASSERT_EQUAL(std::string("/tango"), segment2->getValue());
}
@@ -124,7 +127,7 @@ void ParameterizedStringParserTest::testParse_loop()
{
SharedHandle<PStringDatum> ls = ParameterizedStringParser().parse("[1-10:2]");
- SharedHandle<PStringNumLoop> loop1 = ls;
+ SharedHandle<PStringNumLoop> loop1(dynamic_pointer_cast<PStringNumLoop>(ls));
CPPUNIT_ASSERT(!loop1.isNull());
CPPUNIT_ASSERT_EQUAL(1U, loop1->getStartValue());
CPPUNIT_ASSERT_EQUAL(10U, loop1->getEndValue());
@@ -187,7 +190,7 @@ void ParameterizedStringParserTest::testParse_alphaLoop()
{
SharedHandle<PStringDatum> ls = ParameterizedStringParser().parse("[a-z:2]");
- SharedHandle<PStringNumLoop> loop1 = ls;
+ SharedHandle<PStringNumLoop> loop1(dynamic_pointer_cast<PStringNumLoop>(ls));
CPPUNIT_ASSERT(!loop1.isNull());
CPPUNIT_ASSERT_EQUAL(0U, loop1->getStartValue());
CPPUNIT_ASSERT_EQUAL(25U, loop1->getEndValue());
@@ -224,17 +227,17 @@ void ParameterizedStringParserTest::testParse_segment_loop()
{
SharedHandle<PStringDatum> ls = ParameterizedStringParser().parse("http://server[1-3]/file");
- SharedHandle<PStringSegment> segment1 = ls;
+ SharedHandle<PStringSegment> segment1(dynamic_pointer_cast<PStringSegment>(ls));
CPPUNIT_ASSERT(!segment1.isNull());
CPPUNIT_ASSERT_EQUAL(std::string("http://server"), segment1->getValue());
- SharedHandle<PStringNumLoop> loop1 = segment1->getNext();
+ SharedHandle<PStringNumLoop> loop1(dynamic_pointer_cast<PStringNumLoop>(segment1->getNext()));
CPPUNIT_ASSERT(!loop1.isNull());
CPPUNIT_ASSERT_EQUAL(1U, loop1->getStartValue());
CPPUNIT_ASSERT_EQUAL(3U, loop1->getEndValue());
CPPUNIT_ASSERT_EQUAL(1U, loop1->getStep());
- SharedHandle<PStringSegment> segment2 = loop1->getNext();
+ SharedHandle<PStringSegment> segment2(dynamic_pointer_cast<PStringSegment>(loop1->getNext()));
CPPUNIT_ASSERT(!segment2.isNull());
CPPUNIT_ASSERT_EQUAL(std::string("/file"), segment2->getValue());
}