forked from gruntwork-io/bash-commons
-
Notifications
You must be signed in to change notification settings - Fork 0
/
array.bats
124 lines (103 loc) · 2.85 KB
/
array.bats
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/usr/bin/env bats
source "$BATS_TEST_DIRNAME/../modules/bash-commons/src/array.sh"
load "test-helper"
@test "array_contains on empty array" {
run array_contains "foo"
assert_failure
}
@test "array_contains on array of length 1 for non matching item" {
run array_contains "foo" "bar"
assert_failure
}
@test "array_contains on array of length 1 for matching item" {
run array_contains "foo" "foo"
assert_success
}
@test "array_contains on array of length 3 for non matching item" {
run array_contains "foo" "bar" "baz" "blah"
assert_failure
}
@test "array_contains on array of length 3 for matching item" {
run array_contains "foo" "bar" "foo" "blah"
assert_success
}
@test "array_contains on array of length 3 for multiple matches" {
run array_contains "foo" "bar" "foo" "foo"
assert_success
}
@test "array_contains on array of length 3 with spaces in array values" {
run array_contains "foo" "foo bar" "baz blah"
assert_failure
}
@test "array_split on empty string" {
local ary=( $(array_split "" "") )
status="$?"
assert_success
assert_equal "" "${ary[0]}"
}
@test "array_split on single element string" {
local ary=( $(array_split "," "test") )
status="$?"
assert_success
assert_equal "test" "${ary[0]}"
}
@test "array_split on multi element string" {
local ary=( $(array_split "," "test0,test1") )
status="$?"
assert_success
assert_equal "test0" "${ary[0]}"
assert_equal "test1" "${ary[1]}"
}
@test "array_split on multi element string with multi character separator" {
local ary=( $(array_split "==" "test0==test1") )
status="$?"
assert_success
assert_equal "test0" "${ary[0]}"
assert_equal "test1" "${ary[1]}"
}
@test "array_join on empty array" {
run array_join ","
assert_success
assert_output ""
}
@test "array_join on array of length 1" {
run array_join "," "foo"
assert_success
assert_output "foo"
}
@test "array_join on array of length 3" {
run array_join "," "foo" "bar" "baz"
assert_success
assert_output "foo,bar,baz"
}
@test "array_join on array of length 3 with multi character separator" {
run array_join " == " "foo" "bar" "baz"
assert_success
assert_output "foo == bar == baz"
}
@test "array_prepend on empty string" {
local ary=( $(array_prepend "test" "") )
status="$?"
assert_success
assert_equal "" "${ary[0]}"
}
@test "array_prepend on empty prepend string" {
local ary=( $(array_prepend "" "test0" "test1") )
status="$?"
assert_success
assert_equal "test0" "${ary[0]}"
assert_equal "test1" "${ary[1]}"
}
@test "array_prepend on single element string" {
local ary=( $(array_prepend "test" "0") )
status="$?"
assert_success
assert_equal "test0" "${ary[0]}"
}
@test "array_prepend on multi element string" {
local ary=( $(array_prepend "test" "0" "1") )
status="$?"
assert_success
assert_equal "test0" "${ary[0]}"
assert_equal "test1" "${ary[1]}"
}