summaryrefslogtreecommitdiff
path: root/test/local_time_test.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-03-19 21:46:01 +0000
committerCarl Hetherington <cth@carlh.net>2014-03-19 21:46:01 +0000
commit7702e5d643440e75369078863b34f8a574ee4143 (patch)
treee01edc51718fd6c475b449748ff7fa6e5c526bc9 /test/local_time_test.cc
parentc91aa27e13703874c944fed763b5b039ceae71d2 (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.cc63
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");
+ }
+}
+