From 3aa8704633f5107600a1b9b9519ac201176d875d Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Mon, 17 Jun 2024 23:08:13 +0200 Subject: [PATCH 1/5] feat: successful_assert_line_count_multiline_string_in_one_line --- src/assert.sh | 20 ++++++++++++-------- tests/unit/assert_test.sh | 4 ++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/assert.sh b/src/assert.sh index 8d3bef10..7531061a 100755 --- a/src/assert.sh +++ b/src/assert.sh @@ -318,21 +318,25 @@ function assert_greater_or_equal_than() { function assert_line_count() { local expected="$1" - local actual="$2" + local input_str="$2" local label="${3:-$(helper::normalize_test_function_name "${FUNCNAME[1]}")}" - if [ -z "$actual" ]; then - local actual_line_count=0 + if [ -z "$input_str" ]; then + local actual=0 else - local actual_line_count - actual_line_count=$(echo "$actual" | wc -l | tr -d '[:blank:]') + local actual + actual=$(echo "$input_str" | wc -l | tr -d '[:blank:]') + if [[ actual -eq 1 ]]; then + actual=$(grep -o '\\n' <<< "$input_str" | wc -l | tr -d '[:blank:]') + ((actual++)) + fi fi - if [[ "$expected" != "$actual_line_count" ]]; then + if [[ "$expected" != "$actual" ]]; then state::add_assertions_failed - console_results::print_failed_test "${label}" "${actual}"\ + console_results::print_failed_test "${label}" "${input_str}"\ "to contain number of lines equal to" "${expected}"\ - "but found" "${actual_line_count}" + "but found" "${actual}" return fi diff --git a/tests/unit/assert_test.sh b/tests/unit/assert_test.sh index 2939caca..6b090fad 100644 --- a/tests/unit/assert_test.sh +++ b/tests/unit/assert_test.sh @@ -345,6 +345,10 @@ function test_successful_assert_line_count() { assert_empty "$(assert_line_count 3 "$multi_line_string")" } +function test_successful_assert_line_count_multiline_string_in_one_line() { + assert_empty "$(assert_line_count 4 "one\ntwo\nthree\nfour")" +} + function test_unsuccessful_assert_line_count() { assert_equals\ "$(console_results::print_failed_test\ From e3d2f0bb7a27aec2450a75c0941de141b8676902 Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Mon, 17 Jun 2024 23:15:37 +0200 Subject: [PATCH 2/5] feat: successful_assert_line_count_multiline_with_new_lines --- src/assert.sh | 6 ++---- tests/unit/assert_test.sh | 8 ++++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/assert.sh b/src/assert.sh index 7531061a..8fa00ef7 100755 --- a/src/assert.sh +++ b/src/assert.sh @@ -326,10 +326,8 @@ function assert_line_count() { else local actual actual=$(echo "$input_str" | wc -l | tr -d '[:blank:]') - if [[ actual -eq 1 ]]; then - actual=$(grep -o '\\n' <<< "$input_str" | wc -l | tr -d '[:blank:]') - ((actual++)) - fi + additional_new_lines=$(grep -o '\\n' <<< "$input_str" | wc -l | tr -d '[:blank:]') + ((actual+=additional_new_lines)) fi if [[ "$expected" != "$actual" ]]; then diff --git a/tests/unit/assert_test.sh b/tests/unit/assert_test.sh index 6b090fad..f4ee650e 100644 --- a/tests/unit/assert_test.sh +++ b/tests/unit/assert_test.sh @@ -349,6 +349,14 @@ function test_successful_assert_line_count_multiline_string_in_one_line() { assert_empty "$(assert_line_count 4 "one\ntwo\nthree\nfour")" } +function test_successful_assert_line_count_multiline_with_new_lines() { + local multiline_str="this\nis\nline\none + this is line 5 + this is line 6" + + assert_empty "$(assert_line_count 6 "$multiline_str")" +} + function test_unsuccessful_assert_line_count() { assert_equals\ "$(console_results::print_failed_test\ From 18cd3d5daeb225b9044a5cbf4e2769a8887dbc94 Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Mon, 17 Jun 2024 23:17:51 +0200 Subject: [PATCH 3/5] refactor: test_successful_assert_line_count --- tests/unit/assert_test.sh | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/tests/unit/assert_test.sh b/tests/unit/assert_test.sh index f4ee650e..82f56a09 100644 --- a/tests/unit/assert_test.sh +++ b/tests/unit/assert_test.sh @@ -334,15 +334,20 @@ function test_unsuccessful_assert_equals_ignore_colors() { "$(assert_equals_ignore_colors "$string" "$string")" } -function test_successful_assert_line_count() { - local one_line_string="one line" - local multi_line_string="this is line one +function test_successful_assert_line_count_empty_str() { + assert_empty "$(assert_line_count 0 "")" +} + +function test_successful_assert_line_count_one_line() { + assert_empty "$(assert_line_count 1 "one line")" +} + +function test_successful_assert_count_multiline() { + local multiline_string="this is line one this is line two this is line three" - assert_empty "$(assert_line_count 0 "")" - assert_empty "$(assert_line_count 1 "$one_line_string")" - assert_empty "$(assert_line_count 3 "$multi_line_string")" + assert_empty "$(assert_line_count 3 "$multiline_string")" } function test_successful_assert_line_count_multiline_string_in_one_line() { From d58f61a7e002c6b864da8a567947ef7dc2defa6a Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Mon, 17 Jun 2024 23:19:04 +0200 Subject: [PATCH 4/5] refactor: test_successful_assert_line_count_multiline_with_new_lines --- tests/unit/assert_test.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unit/assert_test.sh b/tests/unit/assert_test.sh index 82f56a09..1eb3e50e 100644 --- a/tests/unit/assert_test.sh +++ b/tests/unit/assert_test.sh @@ -355,11 +355,11 @@ function test_successful_assert_line_count_multiline_string_in_one_line() { } function test_successful_assert_line_count_multiline_with_new_lines() { - local multiline_str="this\nis\nline\none + local multiline_str="this \n is \n a multiline \n in one this is line 5 - this is line 6" + this is \n line seven" - assert_empty "$(assert_line_count 6 "$multiline_str")" + assert_empty "$(assert_line_count 7 "$multiline_str")" } function test_unsuccessful_assert_line_count() { From 50550c84d842d6f0c2010b0c36cbd19b8b819e08 Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Tue, 18 Jun 2024 00:28:01 +0200 Subject: [PATCH 5/5] refactor: improve test_successful_assert_line_count_multiline_with_new_lines --- tests/unit/assert_test.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/unit/assert_test.sh b/tests/unit/assert_test.sh index 1eb3e50e..4b6d886e 100644 --- a/tests/unit/assert_test.sh +++ b/tests/unit/assert_test.sh @@ -356,10 +356,12 @@ function test_successful_assert_line_count_multiline_string_in_one_line() { function test_successful_assert_line_count_multiline_with_new_lines() { local multiline_str="this \n is \n a multiline \n in one - this is line 5 - this is \n line seven" + \n + this is line 7 + this is \n line nine + " - assert_empty "$(assert_line_count 7 "$multiline_str")" + assert_empty "$(assert_line_count 10 "$multiline_str")" } function test_unsuccessful_assert_line_count() {