From 4a455b78282618c0a8767c1a793d505a44fdce27 Mon Sep 17 00:00:00 2001
From: Diego Barrios Romero <eldruin@gmail.com>
Date: Sat, 2 May 2020 12:37:47 +0200
Subject: [PATCH] Add test setting max year date

---
 tests/datetime.rs | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/tests/datetime.rs b/tests/datetime.rs
index 6e8683c..05a7b53 100644
--- a/tests/datetime.rs
+++ b/tests/datetime.rs
@@ -222,19 +222,33 @@ macro_rules! invalid_dt_test {
         mod $name {
             use super::*;
             #[test]
-            fn too_small() {
+            fn datetime_too_small() {
                 let dt = NaiveDate::from_ymd(1999, 1, 2).and_hms(3, 4, 5);
                 let mut dev = $create_method(&[]);
                 assert_invalid_input_data!(dev.set_datetime(&dt));
                 $destroy_method(dev);
             }
             #[test]
-            fn too_big() {
+            fn datetime_too_big() {
                 let dt = NaiveDate::from_ymd(2101, 1, 2).and_hms(3, 4, 5);
                 let mut dev = $create_method(&[]);
                 assert_invalid_input_data!(dev.set_datetime(&dt));
                 $destroy_method(dev);
             }
+            #[test]
+            fn date_too_small() {
+                let d = NaiveDate::from_ymd(1999, 1, 2);
+                let mut dev = $create_method(&[]);
+                assert_invalid_input_data!(dev.set_date(&d));
+                $destroy_method(dev);
+            }
+            #[test]
+            fn date_too_big() {
+                let d = NaiveDate::from_ymd(2101, 1, 2);
+                let mut dev = $create_method(&[]);
+                assert_invalid_input_data!(dev.set_date(&d));
+                $destroy_method(dev);
+            }
         }
     };
 }
@@ -318,6 +332,17 @@ macro_rules! dt_test {
                 $destroy_method(dev);
             }
 
+            #[test]
+            fn set_date_century() {
+                let d = NaiveDate::from_ymd(2100, 8, 13);
+                let mut dev = $create_method(&$mac_trans_write!(
+                    DOW,
+                    [0b0000_0110, 0b0001_0011, 0b1000_1000, 0]
+                ));
+                dev.set_date(&d).unwrap();
+                $destroy_method(dev);
+            }
+
             #[test]
             fn get_time() {
                 let t = NaiveTime::from_hms(23, 59, 58);