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 + -
显示快捷键?