#include "break.h"
#define TWO_HOURS 7200
+#define TWO_HOURS_FIFTEEN_MINUTES 8100
+#define FIFTEEN_MINUTES 900
int get_break_time(long worktime)
{
+ if (worktime > TWO_HOURS_FIFTEEN_MINUTES)
+ return FIFTEEN_MINUTES;
+
if (worktime > TWO_HOURS)
- return 1;
+ return worktime - TWO_HOURS;
return 0;
}
\ No newline at end of file
void two_hours_zero_break()
{
- const long TWO_HOURS = 7200;
- long worktime = TWO_HOURS;
+ long worktime = 7200;
int breaktime = get_break_time(worktime);
void two_hours_and_one_minutes_one_minute_break()
{
- const long TWO_HOURS = 7260;
- long worktime = TWO_HOURS;
+ long worktime = 7260;
int breaktime = get_break_time(worktime);
- assert_int_equal(breaktime, 1);
+ assert_int_equal(breaktime, 60);
+}
+
+void two_hours_and_two_minutes_two_minute_break()
+{
+ long worktime = 7320;
+
+ int breaktime = get_break_time(worktime);
+
+ assert_int_equal(breaktime, 120);
+}
+
+void two_hours_and_fifteen_minutes_fifteen_minute_break()
+{
+ long worktime = 8100;
+
+ int breaktime = get_break_time(worktime);
+
+ assert_int_equal(breaktime, 900);
+}
+
+void two_hours_and_fifteen_one_minutes_fifteen_minute_break()
+{
+ long worktime = 8160;
+
+ int breaktime = get_break_time(worktime);
+
+ assert_int_equal(breaktime, 900);
}
int main()
{
const struct CMUnitTest tests[] = {
cmocka_unit_test(two_hours_zero_break),
- cmocka_unit_test(two_hours_and_one_minutes_one_minute_break)
+ cmocka_unit_test(two_hours_and_one_minutes_one_minute_break),
+ cmocka_unit_test(two_hours_and_two_minutes_two_minute_break),
+ cmocka_unit_test(two_hours_and_fifteen_minutes_fifteen_minute_break),
+ cmocka_unit_test(two_hours_and_fifteen_one_minutes_fifteen_minute_break)
};
return cmocka_run_group_tests(tests, NULL, NULL);