1 #include "fidogate.h"
2 #include <cgreen/cgreen.h>
3 #include <stdio.h>
4 
5 
Ensure(date_handles_via_format)6 Ensure(date_handles_via_format)
7 {
8     char *res;
9 
10     res = date(DATE_VIA, NULL);
11 
12     assert_that(res, is_not_null);
13 }
14 
Ensure(parsedate_handles_rfc822)15 Ensure(parsedate_handles_rfc822)
16 {
17     char *src = "Wed, 11 Mar 2020 05:45:29 -0700";
18     time_t exp = 1583930729;
19     time_t res;
20     TIMEINFO *default_now = NULL;
21 
22     res = parsedate(src, default_now);
23 
24     assert_that(res, is_equal_to(exp));
25 }
26 
Ensure(parsedate_handles_google)27 Ensure(parsedate_handles_google)
28 {
29     char *src = "Wed, 11 Mar 2020 05:45:29 -0700 (PDT)";
30     time_t exp = 1583930729;
31     time_t res;
32     TIMEINFO *default_now = NULL;
33 
34     res = parsedate(src, default_now);
35 
36     assert_that(res, is_equal_to(exp));
37 }
38 
Ensure(date_tz_converts_positive_tz)39 Ensure(date_tz_converts_positive_tz)
40 {
41     time_t src = 1583930729;
42     char *exp = "11 Mar 20  14:45:29";
43     char *tz = "0200";
44     char *res;
45 
46     res = date_tz(DATE_FTS_0001, &src, tz);
47 
48     assert_that(res, is_equal_to_string(exp));
49 }
50 
Ensure(date_tz_converts_negative_tz)51 Ensure(date_tz_converts_negative_tz)
52 {
53     time_t src = 1583930729;
54     char *exp = "11 Mar 20  05:45:29";
55     char *tz = "-0700";
56     char *res;
57 
58     res = date_tz(DATE_FTS_0001, &src, tz);
59 
60     assert_that(res, is_equal_to_string(exp));
61 }
62 
create_suite(void)63 static TestSuite *create_suite(void)
64 {
65     TestSuite *suite = create_named_test_suite("Date suite");
66 
67     add_test(suite, date_handles_via_format);
68     add_test(suite, parsedate_handles_rfc822);
69     add_test(suite, parsedate_handles_google);
70     add_test(suite, date_tz_converts_positive_tz);
71     add_test(suite, date_tz_converts_negative_tz);
72 
73     return suite;
74 }
75 
main(int argc,char ** argv)76 int main(int argc, char **argv) {
77     TestSuite *suite = create_suite();
78 
79     if (argc > 1)
80 	return run_single_test(suite, argv[1], create_text_reporter());
81 
82     return run_test_suite(suite, create_text_reporter());
83 }
84