libmoost
|
00001 /* vim:set ts=3 sw=3 sts=3 et: */ 00028 #include <boost/test/unit_test.hpp> 00029 00030 #include "../../include/moost/posix_time/timestamp.hpp" 00031 00032 BOOST_AUTO_TEST_SUITE(moost_posix_time_timestamp) 00033 00034 namespace 00035 { 00036 00037 const time_t NOW = 1335378426; 00038 const boost::posix_time::ptime PNOW = boost::posix_time::from_time_t(NOW); 00039 00040 class test_timebase 00041 { 00042 public: 00043 static boost::posix_time::ptime now() 00044 { 00045 return boost::posix_time::from_time_t(NOW); 00046 } 00047 00048 static boost::posix_time::ptime base() 00049 { 00050 return moost::posix_time::universal_timebase::base(); 00051 } 00052 }; 00053 00054 typedef moost::posix_time::basic_timestamp<test_timebase> test_timestamp; 00055 00056 } 00057 00058 BOOST_AUTO_TEST_CASE(timestamp) 00059 { 00060 BOOST_CHECK_EQUAL(test_timestamp(100).as_time_t(), 100); 00061 BOOST_CHECK_EQUAL(test_timestamp("100").as_time_t(), 100); 00062 BOOST_CHECK_EQUAL(test_timestamp("0h").as_time_t(), NOW); 00063 BOOST_CHECK_EQUAL(test_timestamp("+2h").as_time_t(), NOW + 7200); 00064 00065 BOOST_CHECK_EQUAL(test_timestamp("20120425T182706").as_time_t(), NOW); 00066 BOOST_CHECK_EQUAL(test_timestamp("2012-04-25 18:27:06").as_time_t(), NOW); 00067 BOOST_CHECK_EQUAL(test_timestamp("2012-Apr-25 18:27:06").as_time_t(), NOW); 00068 00069 // TODO more tests 00070 } 00071 00072 BOOST_AUTO_TEST_CASE(timestamp_operators) 00073 { 00074 BOOST_CHECK(test_timestamp("+24h") == test_timestamp("1d")); 00075 BOOST_CHECK(test_timestamp("+23h") != test_timestamp("1d")); 00076 BOOST_CHECK(test_timestamp("+23h") < test_timestamp("1d")); 00077 BOOST_CHECK(test_timestamp("+25h") > test_timestamp("1d")); 00078 BOOST_CHECK(test_timestamp("+24h") <= test_timestamp("1d")); 00079 BOOST_CHECK(test_timestamp("+24h") >= test_timestamp("1d")); 00080 00081 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:06") == NOW); 00082 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:07") != NOW); 00083 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:06") <= NOW); 00084 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:06") >= NOW); 00085 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:05") < NOW); 00086 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:07") > NOW); 00087 BOOST_CHECK(NOW == test_timestamp("2012-Apr-25 18:27:06")); 00088 BOOST_CHECK(NOW != test_timestamp("2012-Apr-25 18:27:07")); 00089 BOOST_CHECK(NOW >= test_timestamp("2012-Apr-25 18:27:06")); 00090 BOOST_CHECK(NOW <= test_timestamp("2012-Apr-25 18:27:06")); 00091 BOOST_CHECK(NOW > test_timestamp("2012-Apr-25 18:27:05")); 00092 BOOST_CHECK(NOW < test_timestamp("2012-Apr-25 18:27:07")); 00093 00094 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:06") == PNOW); 00095 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:07") != PNOW); 00096 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:06") <= PNOW); 00097 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:06") >= PNOW); 00098 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:05") < PNOW); 00099 BOOST_CHECK(test_timestamp("2012-Apr-25 18:27:07") > PNOW); 00100 BOOST_CHECK(PNOW == test_timestamp("2012-Apr-25 18:27:06")); 00101 BOOST_CHECK(PNOW != test_timestamp("2012-Apr-25 18:27:07")); 00102 BOOST_CHECK(PNOW >= test_timestamp("2012-Apr-25 18:27:06")); 00103 BOOST_CHECK(PNOW <= test_timestamp("2012-Apr-25 18:27:06")); 00104 BOOST_CHECK(PNOW > test_timestamp("2012-Apr-25 18:27:05")); 00105 BOOST_CHECK(PNOW < test_timestamp("2012-Apr-25 18:27:07")); 00106 } 00107 00108 BOOST_AUTO_TEST_SUITE_END()