diff --git a/src/assert.sh b/src/assert.sh index 8fa00ef7..ba5f5dca 100755 --- a/src/assert.sh +++ b/src/assert.sh @@ -318,8 +318,9 @@ function assert_greater_or_equal_than() { function assert_line_count() { local expected="$1" - local input_str="$2" - local label="${3:-$(helper::normalize_test_function_name "${FUNCNAME[1]}")}" + local input_arr=("${@:2}") + local input_str + input_str=$(printf '%s\n' "${input_arr[@]}") if [ -z "$input_str" ]; then local actual=0 @@ -331,6 +332,9 @@ function assert_line_count() { fi if [[ "$expected" != "$actual" ]]; then + local label + label="$(helper::normalize_test_function_name "${FUNCNAME[1]}")" + state::add_assertions_failed console_results::print_failed_test "${label}" "${input_str}"\ "to contain number of lines equal to" "${expected}"\ diff --git a/src/main.sh b/src/main.sh index be60cc9d..326a22f7 100644 --- a/src/main.sh +++ b/src/main.sh @@ -24,7 +24,7 @@ function main::exec_assert() { fi fi - "$assert_fn" "${args[@]}" "$assert_fn" + "$assert_fn" "${args[@]}" if [[ "$(state::get_tests_failed)" -gt 0 ]] || [[ "$(state::get_assertions_failed)" -gt 0 ]]; then exit 1 diff --git a/tests/acceptance/bashunit_direct_fn_call_test.sh b/tests/acceptance/bashunit_direct_fn_call_test.sh index 744da99e..6962aa58 100644 --- a/tests/acceptance/bashunit_direct_fn_call_test.sh +++ b/tests/acceptance/bashunit_direct_fn_call_test.sh @@ -20,6 +20,15 @@ function test_bashunit_direct_fn_call_without_assert_prefix_passes() { assert_successful_code } +function test_bashunit_assert_line_count() { + local actual="first line + \n +four line" + + ./bashunit -a line_count 4 "$actual" + assert_successful_code +} + function test_bashunit_direct_fn_call_failure() { local expected="foo" local actual="bar" diff --git a/tests/acceptance/snapshots/bashunit_direct_fn_call_test_sh.test_bashunit_direct_fn_call_failure.snapshot b/tests/acceptance/snapshots/bashunit_direct_fn_call_test_sh.test_bashunit_direct_fn_call_failure.snapshot index 31715ffc..bbbd30d6 100644 --- a/tests/acceptance/snapshots/bashunit_direct_fn_call_test_sh.test_bashunit_direct_fn_call_failure.snapshot +++ b/tests/acceptance/snapshots/bashunit_direct_fn_call_test_sh.test_bashunit_direct_fn_call_failure.snapshot @@ -1,3 +1,3 @@ -✗ Failed: assert_equals +✗ Failed: Main::exec assert Expected 'foo' but got 'bar'