Skip to content

Commit b76f593

Browse files
committed
test: Add more comprehensive tests for get-errors invalid vobj
1 parent 243afe5 commit b76f593

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

tests/get-errors-invalid-vobj-type.bats

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,17 @@ load './util/init.sh'
2727
assert_line -p 'Queried for object, but found existing string'
2828
}
2929

30+
@test "Error on get-object'ing string inside array" {
31+
declare -a SUB_ARRAY=(upsilon phi chi psi omicron)
32+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_ARRAY')
33+
34+
run bash_object.traverse-get object OBJECT '.["my_key"].[3]'
35+
36+
assert_failure
37+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
38+
assert_line -p 'Queried for object, but found existing string'
39+
}
40+
3041
@test "Error on get-object'ing array" {
3142
declare -a SUB_ARRAY=(omicron pi rho)
3243
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_ARRAY')
@@ -50,6 +61,18 @@ load './util/init.sh'
5061
assert_line -p 'Queried for object, but found existing array'
5162
}
5263

64+
@test "Error on get-object'ing array inside array" {
65+
declare -a SUB_SUB_ARRAY=(alpha beta gamma delta)
66+
declare -a SUB_ARRAY=(upsilon phi chi $'\x1C\x1Dtype=array;&SUB_SUB_ARRAY')
67+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_ARRAY')
68+
69+
run bash_object.traverse-get object OBJECT '.["my_key"].[3]'
70+
71+
assert_failure
72+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
73+
assert_line -p 'Queried for object, but found existing array'
74+
}
75+
5376
# get-array
5477
@test "Error on get-array'ing string" {
5578
declare -A OBJECT=([my_key]='string_value2')
@@ -72,6 +95,17 @@ load './util/init.sh'
7295
assert_line -p 'Queried for array, but found existing string'
7396
}
7497

98+
@test "Error on get-array'ing string in array" {
99+
declare -a SUB_ARRAY=(epsilon zeta eta)
100+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=object;&SUB_ARRAY')
101+
102+
run bash_object.traverse-get array OBJECT '.["my_key"].[2]'
103+
104+
assert_failure
105+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
106+
assert_line -p 'Queried for array, but found existing string'
107+
}
108+
75109
@test "Error on get-array'ing object" {
76110
declare -A SUB_OBJECT=([omicron]='pi')
77111
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=object;&SUB_OBJECT')
@@ -95,6 +129,18 @@ load './util/init.sh'
95129
assert_line -p 'Queried for array, but found existing object'
96130
}
97131

132+
@test "Error on get-array'ing object in array" {
133+
declare -A SUB_SUB_OBJECT=([omicron]='pi')
134+
declare -a SUB_ARRAY=(epsilon $'\x1C\x1Dtype=object;&SUB_SUB_OBJECT' zeta)
135+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_ARRAY')
136+
137+
run bash_object.traverse-get array OBJECT '.["my_key"].[1]'
138+
139+
assert_failure
140+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
141+
assert_line -p 'Queried for array, but found existing object'
142+
}
143+
98144
# get-string
99145
@test "Error on get-string'ing object" {
100146
declare -A SUB_OBJECT=([omicron]='pi')
@@ -119,6 +165,18 @@ load './util/init.sh'
119165
assert_line -p 'Queried for string, but found existing object'
120166
}
121167

168+
@test "Error on get-string'ing object in array" {
169+
declare -A SUB_SUB_OBJECT=([omicron]='pi')
170+
declare -a SUB_ARRAY=(epislon zeta eta $'\x1C\x1Dtype=object;&SUB_SUB_OBJECT')
171+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_ARRAY')
172+
173+
run bash_object.traverse-get string OBJECT '.["my_key"].[3]'
174+
175+
assert_failure
176+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
177+
assert_line -p 'Queried for string, but found existing object'
178+
}
179+
122180
@test "Error on get-string'ing array" {
123181
declare -a SUB_ARRAY=(omicron pi rho)
124182
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_ARRAY')
@@ -141,3 +199,15 @@ load './util/init.sh'
141199
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
142200
assert_line -p 'Queried for string, but found existing array'
143201
}
202+
203+
@test "Error on get-string'ing array in array" {
204+
declare -a SUB_SUB_ARRAY=(omicron pi rho)
205+
declare -a SUB_ARRAY=(omicron pi $'\x1C\x1Dtype=array;&SUB_SUB_ARRAY')
206+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_ARRAY')
207+
208+
run bash_object.traverse-get string OBJECT '.["my_key"].[2]'
209+
210+
assert_failure
211+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
212+
assert_line -p 'Queried for string, but found existing array'
213+
}

0 commit comments

Comments
 (0)