]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
add weekday tests
authorBastian Dehn <hhaalo@arcor.de>
Sun, 9 Jun 2024 15:34:12 +0000 (17:34 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 9 Jun 2024 15:34:12 +0000 (17:34 +0200)
src/time_format.c
src/time_format.h
tests/time_format_tests.c

index 1e2ad72e81e0bad06f224f34ba384e599b0d8aa7..7480426aafab8cb32acdef6611108c61d02a41d6 100644 (file)
@@ -13,4 +13,38 @@ void get_time_str(time_t time, char* timestr)
 
        gmtime_r(&time, &time_cal);
        sprintf(timestr, "%02d:%02d", time_cal.tm_hour, time_cal.tm_min);
+}
+
+void get_weekday(time_t time, char* weekday)
+{
+       struct tm weekday_num;
+       localtime_r(&time, &weekday_num);
+
+
+       switch (weekday_num.tm_wday) {
+       case 0:
+               sprintf(weekday, "%s", "Sonntag");
+               break;
+       case 1:
+               sprintf(weekday, "%s", "Montag");
+               break;
+       case 2:
+               sprintf(weekday, "%s", "Dienstag");
+               break;
+       case 3:
+               sprintf(weekday, "%s", "Mittwoch");
+               break;
+       case 4:
+               sprintf(weekday, "%s", "Donnerstag");
+               break;
+       case 5:
+               sprintf(weekday, "%s", "Freitag");
+               break;
+       case 6:
+               sprintf(weekday, "%s", "Samstag");
+               break;
+       default:
+               sprintf(weekday, "%s", "Unknown");
+               break;
+       }
 }
\ No newline at end of file
index cae614edbaabc4eca0ffd4c0e555efdd9ed548fa..8cf0e7d8ed0828c5aeb3937b1b539f6d40395659 100644 (file)
@@ -3,5 +3,6 @@
 #include <time.h>
 
 void get_time_str(time_t time, char* timestr);
+void get_weekday(time_t time, char* weekday);
 
 #endif
\ No newline at end of file
index 409639721dae18c793aa3752cf29f920cbbf7d93..2c7d664b7beaa3b51d9079b8d855dd996efbd74c 100644 (file)
@@ -4,6 +4,7 @@
 #include <stdint.h>
 #include <setjmp.h>
 #include <cmocka.h>
+#include <string.h>
 #include "../src/time_format.h"
 
 void get_zero_hour_and_fifteen_minutes()
@@ -48,12 +49,118 @@ void get_minus_five_minutes()
        timestring = NULL;
 }
 
+void get_thursday()
+{
+       char* weekday = malloc(sizeof(char) * 11);
+       memset(weekday, 0, 11);
+       time_t day = 0;
+
+       get_weekday(day, weekday);
+
+       assert_string_equal(weekday, "Donnerstag");
+
+       free(weekday);
+       weekday = NULL;
+}
+
+void get_friday()
+{
+       char* weekday = malloc(sizeof(char) * 11);
+       memset(weekday, 0, 11);
+       time_t day = 86400;
+
+       get_weekday(day, weekday);
+
+       assert_string_equal(weekday, "Freitag");
+
+       free(weekday);
+       weekday = NULL;
+}
+
+void get_saturday()
+{
+       char* weekday = malloc(sizeof(char) * 11);
+       memset(weekday, 0, 11);
+       time_t day = 172800;
+
+       get_weekday(day, weekday);
+
+       assert_string_equal(weekday, "Samstag");
+
+       free(weekday);
+       weekday = NULL;
+}
+
+void get_sunday()
+{
+       char* weekday = malloc(sizeof(char) * 11);
+       memset(weekday, 0, 11);
+       time_t day = 259200;
+
+       get_weekday(day, weekday);
+
+       assert_string_equal(weekday, "Sonntag");
+
+       free(weekday);
+       weekday = NULL;
+}
+
+void get_monday()
+{
+       char* weekday = malloc(sizeof(char) * 11);
+       memset(weekday, 0, 11);
+       time_t day = 345600;
+
+       get_weekday(day, weekday);
+
+       assert_string_equal(weekday, "Montag");
+
+       free(weekday);
+       weekday = NULL;
+}
+
+void get_thuesday()
+{
+       char* weekday = malloc(sizeof(char) * 11);
+       memset(weekday, 0, 11);
+       time_t day = 432000;
+
+       get_weekday(day, weekday);
+
+       assert_string_equal(weekday, "Dienstag");
+
+       free(weekday);
+       weekday = NULL;
+}
+
+void get_wednesday()
+{
+       char* weekday = malloc(sizeof(char) * 11);
+       memset(weekday, 0, 11);
+       time_t day = 518400;
+
+       get_weekday(day, weekday);
+
+       assert_string_equal(weekday, "Mittwoch");
+
+       free(weekday);
+       weekday = NULL;
+}
+
 int main()
 {
        const struct CMUnitTest tests[] = {
                cmocka_unit_test(get_zero_hour_and_fifteen_minutes),
                cmocka_unit_test(get_five_hour_fourty_five),
-               cmocka_unit_test(get_minus_five_minutes)
+               cmocka_unit_test(get_minus_five_minutes),
+               cmocka_unit_test(get_thursday),
+               cmocka_unit_test(get_friday),
+               cmocka_unit_test(get_saturday),
+               cmocka_unit_test(get_sunday),
+               cmocka_unit_test(get_monday),
+               cmocka_unit_test(get_thuesday),
+               cmocka_unit_test(get_wednesday),
+
        };
 
        return cmocka_run_group_tests(tests, NULL, NULL);