#!/bin/bash setup() { source ../generatetask } test_taskl_runs_task_with_correct_parameters() { fake task 'echo "task ${FAKE_PARAMS[@]}"' expected="task rc.verbose:nothing rc.report.list.columns:id rc.report.list.labels:id list" result="$(taskl)" assert_equals "$expected" "$result" } test_taskl_runs_task_with_custom_parameters() { fake task 'echo "task ${FAKE_PARAMS[@]}"' expected="task rc.verbose:nothing rc.report.list.columns:id rc.report.list.labels:id +ACTIVE -BLOCKED list" result="$(taskl +ACTIVE -BLOCKED)" assert_equals "$expected" "$result" } test_get_active_task_count_calls_taskl_with_correct_filter() { fake taskl 'echo "taskl ${FAKE_PARAMS[@]}"' fake wc 'cat' expected="taskl +ACTIVE" result="$(get_active_task_count)" assert_equals "$expected" "$result" } test_check_active_task_returns_1_when_no_active_task() { fake task 'printf ""' expected=1 check_active_task assert_equals "$expected" "$?" } test_check_active_task_returns_0_when_one_active_task() { fake taskl 'printf "28\n"' expected=0 check_active_task assert_equals "$expected" "$?" } test_check_active_task_returns_0_when_multiple_active_tasks() { fake taskl 'printf "28\n29\n30\n"' expected=0 check_active_task assert_equals "$expected" "$?" } test_pick_random_task_id_picks_random_id() { fake taskl 'printf "28\n29\n30\n"' fake shuf 'head -n 1' expected="28" result="$(pick_random_task_id)" assert_equals "$expected" "$result" } test_generate_task_exits_1_if_task_active() { fake check_active_task 'return 0' generate_task 2>/dev/null assert_equals "1" "$?" } test_generate_task_starts_random_task_if_no_task_active() { fake check_active_task 'return 1' fake pick_random_task_id 'printf 28' fake task 'echo "task ${FAKE_PARAMS[@]}"' expected="task rc.verbose:nothing 28 start" result="$(generate_task)" assert_equals "$expected" "$result" }