datetimeparsertest.cpp
来自「C++ class libraries for network-centric,」· C++ 代码 · 共 552 行 · 第 1/2 页
CPP
552 行
assert (dt.minute() == 1); assert (dt.second() == 12); assert (tzd == 7200);}void DateTimeParserTest::testRFC1036(){ int tzd; DateTime dt = DateTimeParser::parse(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 GMT", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 12); assert (dt.minute() == 30); assert (dt.second() == 0); assert (tzd == 0); dt = DateTimeParser::parse(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 +0100", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 12); assert (dt.minute() == 30); assert (dt.second() == 0); assert (tzd == 3600); dt = DateTimeParser::parse(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 -0100", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 12); assert (dt.minute() == 30); assert (dt.second() == 0); assert (tzd == -3600);}void DateTimeParserTest::testASCTIME(){ int tzd; DateTime dt = DateTimeParser::parse(DateTimeFormat::ASCTIME_FORMAT, "Sat Jan 8 12:30:00 2005", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 12); assert (dt.minute() == 30); assert (dt.second() == 0); assert (tzd == 0);}void DateTimeParserTest::testSORTABLE(){ int tzd; DateTime dt = DateTimeParser::parse(DateTimeFormat::SORTABLE_FORMAT, "2005-01-08 12:30:00", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 12); assert (dt.minute() == 30); assert (dt.second() == 0); assert (tzd == 0); dt = DateTimeParser::parse(DateTimeFormat::SORTABLE_FORMAT, "2005-01-08", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 0); assert (dt.minute() == 0); assert (dt.second() == 0); assert (tzd == 0);}void DateTimeParserTest::testCustom(){ int tzd; DateTime dt = DateTimeParser::parse("%d-%b-%Y", "18-Jan-2005", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 18); assert (dt.hour() == 0); assert (dt.minute() == 0); assert (dt.second() == 0); assert (tzd == 0); dt = DateTimeParser::parse("%m/%d/%y", "01/18/05", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 18); assert (dt.hour() == 0); assert (dt.minute() == 0); assert (dt.second() == 0); assert (tzd == 0); dt = DateTimeParser::parse("%h:%M %a", "12:30 am", tzd); assert (dt.hour() == 0); assert (dt.minute() == 30); assert (dt.second() == 0); dt = DateTimeParser::parse("%h:%M %a", "12:30 PM", tzd); assert (dt.hour() == 12); assert (dt.minute() == 30); assert (dt.second() == 0);}void DateTimeParserTest::testGuess(){ int tzd; DateTime dt = DateTimeParser::parse("2005-01-08T12:30:00Z", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 12); assert (dt.minute() == 30); assert (dt.second() == 0); assert (tzd == 0); dt = DateTimeParser::parse("Sat, 8 Jan 05 12:30:00 +0100", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 12); assert (dt.minute() == 30); assert (dt.second() == 0); assert (tzd == 3600); dt = DateTimeParser::parse("Sat Jan 8 12:30:00 2005", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 12); assert (dt.minute() == 30); assert (dt.second() == 0); assert (tzd == 0); dt = DateTimeParser::parse("2005-01-08 12:30:00", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 12); assert (dt.minute() == 30); assert (dt.second() == 0); assert (tzd == 0); dt = DateTimeParser::parse("2005-01-08", tzd); assert (dt.year() == 2005); assert (dt.month() == 1); assert (dt.day() == 8); assert (dt.hour() == 0); assert (dt.minute() == 0); assert (dt.second() == 0); assert (tzd == 0);}void DateTimeParserTest::testParseMonth(){ std::string str = "January"; std::string::const_iterator it = str.begin(); int month = DateTimeParser::parseMonth(it, str.end()); assert (month == 1); str = "February"; it = str.begin(); month = DateTimeParser::parseMonth(it, str.end()); assert (month == 2); str = "December"; it = str.begin(); month = DateTimeParser::parseMonth(it, str.end()); assert (month == 12); str = "Jan"; it = str.begin(); month = DateTimeParser::parseMonth(it, str.end()); assert (month == 1); str = "Feb"; it = str.begin(); month = DateTimeParser::parseMonth(it, str.end()); assert (month == 2); str = "jan"; it = str.begin(); month = DateTimeParser::parseMonth(it, str.end()); assert (month == 1); str = "feb"; it = str.begin(); month = DateTimeParser::parseMonth(it, str.end()); assert (month == 2); try { str = "ja"; it = str.begin(); month = DateTimeParser::parseMonth(it, str.end()); fail("Not a valid month name - must throw"); } catch (SyntaxException&) { }}void DateTimeParserTest::testParseDayOfWeek(){ std::string str = "Sunday"; std::string::const_iterator it = str.begin(); int dow = DateTimeParser::parseDayOfWeek(it, str.end()); assert (dow == 0); str = "Monday"; it = str.begin(); dow = DateTimeParser::parseDayOfWeek(it, str.end()); assert (dow == 1); str = "Saturday"; it = str.begin(); dow = DateTimeParser::parseDayOfWeek(it, str.end()); assert (dow == 6); str = "Sun"; it = str.begin(); dow = DateTimeParser::parseDayOfWeek(it, str.end()); assert (dow == 0); str = "Mon"; it = str.begin(); dow = DateTimeParser::parseDayOfWeek(it, str.end()); assert (dow == 1); str = "sun"; it = str.begin(); dow = DateTimeParser::parseDayOfWeek(it, str.end()); assert (dow == 0); str = "mon"; it = str.begin(); dow = DateTimeParser::parseDayOfWeek(it, str.end()); assert (dow == 1); try { str = "su"; it = str.begin(); dow = DateTimeParser::parseDayOfWeek(it, str.end()); fail("Not a valid weekday name - must throw"); } catch (SyntaxException&) { }}void DateTimeParserTest::setUp(){}void DateTimeParserTest::tearDown(){}CppUnit::Test* DateTimeParserTest::suite(){ CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("DateTimeParserTest"); CppUnit_addTest(pSuite, DateTimeParserTest, testISO8601); CppUnit_addTest(pSuite, DateTimeParserTest, testRFC822); CppUnit_addTest(pSuite, DateTimeParserTest, testRFC1123); CppUnit_addTest(pSuite, DateTimeParserTest, testHTTP); CppUnit_addTest(pSuite, DateTimeParserTest, testRFC850); CppUnit_addTest(pSuite, DateTimeParserTest, testRFC1036); CppUnit_addTest(pSuite, DateTimeParserTest, testASCTIME); CppUnit_addTest(pSuite, DateTimeParserTest, testSORTABLE); CppUnit_addTest(pSuite, DateTimeParserTest, testCustom); CppUnit_addTest(pSuite, DateTimeParserTest, testGuess); CppUnit_addTest(pSuite, DateTimeParserTest, testParseMonth); CppUnit_addTest(pSuite, DateTimeParserTest, testParseDayOfWeek); return pSuite;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?