diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-03-19 21:46:01 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-03-19 21:46:01 +0000 |
| commit | 7702e5d643440e75369078863b34f8a574ee4143 (patch) | |
| tree | e01edc51718fd6c475b449748ff7fa6e5c526bc9 /test/local_time_test.cc | |
| parent | c91aa27e13703874c944fed763b5b039ceae71d2 (diff) | |
Considerable re-work of KDM class to express the difference between encrypted and unencrypted KDMs.
Diffstat (limited to 'test/local_time_test.cc')
| -rw-r--r-- | test/local_time_test.cc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/test/local_time_test.cc b/test/local_time_test.cc new file mode 100644 index 00000000..b7f49a32 --- /dev/null +++ b/test/local_time_test.cc @@ -0,0 +1,63 @@ +/* + Copyright (C) 2014 Carl Hetherington <cth@carlh.net> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include <boost/test/unit_test.hpp> +#include "local_time.h" +#include "exceptions.h" + +/** Check that dcp::LocalTime works */ +BOOST_AUTO_TEST_CASE (local_time_test) +{ + /* Badly-formatted times */ + BOOST_CHECK_THROW (dcp::LocalTime (""), dcp::TimeFormatError); + BOOST_CHECK_THROW (dcp::LocalTime ("XXX"), dcp::TimeFormatError); + BOOST_CHECK_THROW (dcp::LocalTime ("2013-01-05T18:06:59+04:0"), dcp::TimeFormatError); + BOOST_CHECK_THROW (dcp::LocalTime ("2013-01-05T18:06:59X04:00"), dcp::TimeFormatError); + BOOST_CHECK_THROW (dcp::LocalTime ("2013-01-05T18-06:59+04:00"), dcp::TimeFormatError); + BOOST_CHECK_THROW (dcp::LocalTime ("2013!01-05T18:06:59+04:00"), dcp::TimeFormatError); + + /* Correctly-formatted */ + + { + dcp::LocalTime t ("2013-01-05T18:06:59+04:00"); + BOOST_CHECK_EQUAL (t._year, 2013); + BOOST_CHECK_EQUAL (t._month, 1); + BOOST_CHECK_EQUAL (t._day, 5); + BOOST_CHECK_EQUAL (t._hour, 18); + BOOST_CHECK_EQUAL (t._minute, 6); + BOOST_CHECK_EQUAL (t._second, 59); + BOOST_CHECK_EQUAL (t._tz_hour, 4); + BOOST_CHECK_EQUAL (t._tz_minute, 0); + BOOST_CHECK_EQUAL (t.as_string(), "2013-01-05T18:06:59+04:00"); + } + + { + dcp::LocalTime t ("2011-11-20T01:06:59-09:30"); + BOOST_CHECK_EQUAL (t._year, 2011); + BOOST_CHECK_EQUAL (t._month, 11); + BOOST_CHECK_EQUAL (t._day, 20); + BOOST_CHECK_EQUAL (t._hour, 1); + BOOST_CHECK_EQUAL (t._minute, 6); + BOOST_CHECK_EQUAL (t._second, 59); + BOOST_CHECK_EQUAL (t._tz_hour, -9); + BOOST_CHECK_EQUAL (t._tz_minute, 30); + BOOST_CHECK_EQUAL (t.as_string(), "2011-11-20T01:06:59-09:30"); + } +} + |
