From 7865ba54386d473636203f91c0018c12ffbd1df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cs=C3=B3k=C3=A1s=20Michal?= Date: Tue, 27 Apr 2021 11:37:56 +0200 Subject: [PATCH 1/3] assert_array_contains() method created --- assert.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/assert.sh b/assert.sh index 48c6f16..274c66c 100755 --- a/assert.sh +++ b/assert.sh @@ -145,6 +145,29 @@ assert_array_not_eq() { return "$return_code" } +assert_array_contains() { + + declare -n map_name="$1" + local element="$2" + local expected="$3" + local msg="${4-}" + local contains="1" + + for i in "${!map_name[@]}" + do + if [[ "${map_name[$i]}" = "$element" ]]; then + contains="0" + fi + done + + if [ "$contains" != "$expected" ]; then + [ "${#msg}" -gt 0 ] && log_failure $msg || true + fi + + [[ $contains == $expected ]] + return "$?" +} + assert_empty() { local actual=$1 local msg="${2-}" From 641df11690d75ff7a16a3230c2dc238cbcfe6411 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cs=C3=B3k=C3=A1s=20Michal?= Date: Tue, 27 Apr 2021 12:20:42 +0200 Subject: [PATCH 2/3] parameter correction --- assert.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/assert.sh b/assert.sh index 274c66c..7920757 100755 --- a/assert.sh +++ b/assert.sh @@ -149,8 +149,7 @@ assert_array_contains() { declare -n map_name="$1" local element="$2" - local expected="$3" - local msg="${4-}" + local msg="${3-}" local contains="1" for i in "${!map_name[@]}" @@ -160,12 +159,11 @@ assert_array_contains() { fi done - if [ "$contains" != "$expected" ]; then + if [ "$contains" != "0" ]; then [ "${#msg}" -gt 0 ] && log_failure $msg || true fi - [[ $contains == $expected ]] - return "$?" + return "$contains" } assert_empty() { From c86c456282befdd40159f68593ef1530650b7e4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cs=C3=B3k=C3=A1s=20Michal?= Date: Tue, 27 Apr 2021 12:21:22 +0200 Subject: [PATCH 3/3] Added tests for assert_array_contains() --- test_assert.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test_assert.sh b/test_assert.sh index bd28e16..d2d673b 100755 --- a/test_assert.sh +++ b/test_assert.sh @@ -181,6 +181,29 @@ test_assert_array_not_eq() { } +test_assert_array_contains() { + log_header "Test :: assert_array_contains" + + input=("one" "tw oo" "333") + element="one" + + assert_array_contains input $element # it can be an issue on other implementation of shell + if [ "$?" == 0 ]; then + log_success "assert_array_contains returns 0 if the arrays contains the element" + else + log_failure "assert_array_contains should return 0" + fi + + element="onee" + assert_array_contains input $element # it can be an issue on other implementation of shell + if [ "$?" == 1 ]; then + log_success "assert_array_contains returns 1 if the arrays not contains the element" + else + log_failure "assert_array_contains should return 1" + fi + +} + test_assert_empty() { log_header "Test :: assert_empty" @@ -479,6 +502,7 @@ test_assert_true test_assert_false test_assert_array_eq test_assert_array_not_eq +test_assert_array_contains test_assert_empty test_assert_not_empty test_assert_contain