]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
add worktime with first test eight hour
authorBastian Dehn <hhaalo@arcor.de>
Sun, 9 Jun 2024 10:26:06 +0000 (12:26 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 9 Jun 2024 10:26:06 +0000 (12:26 +0200)
src/worktime.c [new file with mode: 0644]
src/worktime.h [new file with mode: 0644]
tests/CMakeLists.txt
tests/worktime_tests.c [new file with mode: 0644]

diff --git a/src/worktime.c b/src/worktime.c
new file mode 100644 (file)
index 0000000..d8f1b33
--- /dev/null
@@ -0,0 +1,32 @@
+#include "worktime.h"
+#include "break.h"
+
+#define EIGHT_HOURS 28800
+
+time_t get_current_worktime(time_t begin, time_t now)
+{
+       return 0;
+}
+
+time_t get_current_worktime_diff_to_end_eight_hour(time_t begin, time_t now)
+{
+       return 0;
+}
+
+time_t get_current_worktime_diff_to_end_ten_hour(time_t begin, time_t now)
+{
+       return 0;
+}
+
+time_t get_eight_hour_end_worktime(time_t begin)
+{
+       time_t worktime = begin + EIGHT_HOURS;
+       worktime += get_break_time(worktime);
+
+       return worktime;
+}
+
+time_t get_ten_hour_end_worktime(time_t begin)
+{
+       return 0;
+}
\ No newline at end of file
diff --git a/src/worktime.h b/src/worktime.h
new file mode 100644 (file)
index 0000000..2fe99c1
--- /dev/null
@@ -0,0 +1,11 @@
+#ifndef WORKTIME_H
+#define WORKTIME_H
+#include <time.h>
+
+time_t get_current_worktime(time_t begin, time_t now);
+time_t get_current_worktime_diff_to_end_eight_hour(time_t begin, time_t now);
+time_t get_current_worktime_diff_to_end_ten_hour(time_t begin, time_t now);
+time_t get_eight_hour_end_worktime(time_t begin);
+time_t get_ten_hour_end_worktime(time_t begin);
+
+#endif
\ No newline at end of file
index 9ec8b45a81026247a62431d321acbc8ac14c7944..222d096905a3ca49388b7206ffe0bb5c0951503a 100644 (file)
@@ -8,9 +8,18 @@ ADD_EXECUTABLE(break_tests
 TARGET_LINK_LIBRARIES(break_tests
        ${CMOCKA})
 
+ADD_EXECUTABLE(worktime_tests
+       worktime_tests.c
+       ../src/worktime.c
+       ../src/break.c)
+TARGET_LINK_LIBRARIES(worktime_tests
+       ${CMOCKA})
+
 INCLUDE(CTest)
 ADD_TEST(NAME break_tests
        COMMAND break_tests)
+ADD_TEST(NAME worktime_tests
+       COMMAND worktime_tests)
 
 ADD_CUSTOM_TARGET(run-tests
        ALL "ctest" "--verbose"
diff --git a/tests/worktime_tests.c b/tests/worktime_tests.c
new file mode 100644 (file)
index 0000000..721db48
--- /dev/null
@@ -0,0 +1,25 @@
+#define UNIT_TESTING
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <setjmp.h>
+#include <cmocka.h>
+#include "../src/worktime.h"
+
+void get_eigth_hour_end_time_test()
+{
+       time_t begin = 23400;
+
+       time_t result = get_eight_hour_end_worktime(begin);
+
+       assert_int_equal(result, 54900);
+}
+
+int main()
+{
+       const struct CMUnitTest tests[] = {
+               cmocka_unit_test(get_eigth_hour_end_time_test)
+       };
+
+       return cmocka_run_group_tests(tests, NULL, NULL);
+}
\ No newline at end of file