[gnote] Add tests for Glib::DateTime operations
- From: Aurimas Černius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Add tests for Glib::DateTime operations
- Date: Sun, 19 Jan 2020 20:59:24 +0000 (UTC)
commit b4c58900317d2b662b72cbf0db783ca806adc717
Author: Aurimas Černius <aurisc4 gmail com>
Date: Sun Jan 19 22:55:17 2020 +0200
Add tests for Glib::DateTime operations
src/test/unit/datetimeutests.cpp | 106 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 105 insertions(+), 1 deletion(-)
---
diff --git a/src/test/unit/datetimeutests.cpp b/src/test/unit/datetimeutests.cpp
index abb8ea1e..533f003c 100644
--- a/src/test/unit/datetimeutests.cpp
+++ b/src/test/unit/datetimeutests.cpp
@@ -1,7 +1,7 @@
/*
* gnote
*
- * Copyright (C) 2017 Aurimas Cernius
+ * Copyright (C) 2017,2020 Aurimas Cernius
* Copyright (C) 2009 Hubert Figuiere
*
* This program is free software: you can redistribute it and/or modify
@@ -44,6 +44,14 @@ SUITE(DateTime)
CHECK_EQUAL("2009-03-24T07:34:35.000000Z", date_string);
}
+ TEST(date_time_to_string)
+ {
+ auto d = Glib::DateTime::create_local(1991, 7, 7, 15, 40, 34);
+ CHECK(bool(d));
+ Glib::ustring date_string = sharp::date_time_to_string(d, "%F %T");
+ CHECK_EQUAL("1991-07-07 15:40:34", date_string);
+ }
+
TEST(from_iso8601)
{
sharp::DateTime d(678901234, 67890);
@@ -54,6 +62,38 @@ SUITE(DateTime)
CHECK(d3.is_valid());
}
+ TEST(date_time_to_iso8601)
+ {
+ auto d = Glib::DateTime::create_local(2009, 3, 24, 7, 34, 35);
+ CHECK(bool(d));
+ Glib::ustring date_string = sharp::date_time_to_iso8601(d);
+ CHECK_EQUAL("2009-03-24T07:34:35.000000Z", date_string);
+
+ d = Glib::DateTime::create_local(2009, 3, 24, 7, 34, 35.54);
+ CHECK(bool(d));
+ date_string = sharp::date_time_to_iso8601(d);
+ CHECK_EQUAL("2009-03-24T07:34:35.540000Z", date_string);
+ }
+
+ TEST(date_time_from_iso8601)
+ {
+ Glib::DateTime d = sharp::date_time_from_iso8601("1991-07-07T15:40:34.067890Z");
+ CHECK(bool(d));
+ CHECK_EQUAL(1991, d.get_year());
+ CHECK_EQUAL(7, d.get_month());
+ CHECK_EQUAL(7, d.get_day_of_month());
+ CHECK_EQUAL(16, d.get_hour()); // time-zone corrected
+ CHECK_EQUAL(40, d.get_minute());
+ CHECK_EQUAL(34, d.get_second());
+ CHECK_EQUAL(67890, d.get_microsecond());
+
+ Glib::DateTime d2 = sharp::date_time_from_iso8601("2009-03-24T03:34:35.2914680-04:00");
+ CHECK(bool(d2));
+ CHECK_EQUAL(24, d2.get_day_of_month());
+ CHECK_EQUAL(7, d2.get_hour());
+ CHECK_EQUAL(291468, d2.get_microsecond());
+ }
+
TEST(pretty_print_date)
{
sharp::DateTime d = sharp::DateTime::now();
@@ -77,5 +117,69 @@ SUITE(DateTime)
CHECK(Glib::str_has_suffix(date_string.lowercase(), "5:34 pm"));
}
+ TEST(date_time_equality_operators)
+ {
+ auto d1 = Glib::DateTime::create_local(2020, 1, 2, 13, 14, 15);
+ auto d2 = d1.add_days(1);
+ auto d3 = d2.add_days(-1);
+ Glib::DateTime invalid;
+
+ CHECK(d1 == d3);
+ CHECK(d2 == d2);
+ CHECK(!(d1 == d2));
+ CHECK(!(d1 == invalid));
+ CHECK(invalid == invalid);
+
+ CHECK(d1 != d2);
+ CHECK(!(d1 != d3));
+ CHECK(d1 != invalid);
+ CHECK(!(d2 != d2));
+ CHECK(!(invalid != invalid));
+ }
+
+ TEST(date_time_less_than_operators)
+ {
+ auto d1 = Glib::DateTime::create_local(2020, 1, 2, 13, 14, 15);
+ auto d2 = d1.add_days(1);
+ auto d3 = d2.add_days(-1);
+ Glib::DateTime invalid;
+
+ CHECK(d1 < d2);
+ CHECK(d1 <= d2);
+ CHECK(!(d2 < d1));
+ CHECK(!(d2 <= d1));
+ CHECK(!(d1 < d3));
+ CHECK(d1 <= d3);
+ CHECK(d3 <= d1);
+ CHECK(invalid < d1);
+ CHECK(invalid <= d1);
+ CHECK(!(d1 < invalid));
+ CHECK(!(d1 <= invalid));
+ CHECK(!(invalid < invalid));
+ CHECK(invalid <= invalid);
+ }
+
+ TEST(date_time_greater_than_operators)
+ {
+ auto d1 = Glib::DateTime::create_local(2020, 1, 2, 13, 14, 15);
+ auto d2 = d1.add_days(1);
+ auto d3 = d2.add_days(-1);
+ Glib::DateTime invalid;
+
+ CHECK(!(d1 > d2));
+ CHECK(!(d1 >= d2));
+ CHECK(d2 > d1);
+ CHECK(d2 >= d1);
+ CHECK(!(d1 > d3));
+ CHECK(d1 >= d3);
+ CHECK(d3 >= d1);
+ CHECK(!(invalid > d1));
+ CHECK(!(invalid >= d1));
+ CHECK(d1 > invalid);
+ CHECK(d1 >= invalid);
+ CHECK(!(invalid > invalid));
+ CHECK(invalid >= invalid);
+ }
+
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]