@@ -27,6 +27,17 @@ load './util/init.sh'
27
27
assert_line -p ' Queried for object, but found existing string'
28
28
}
29
29
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\x1D type=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
+
30
41
@test " Error on get-object'ing array" {
31
42
declare -a SUB_ARRAY=(omicron pi rho)
32
43
declare -A OBJECT=([my_key]=$' \x1C\x1D type=array;&SUB_ARRAY' )
@@ -50,6 +61,18 @@ load './util/init.sh'
50
61
assert_line -p ' Queried for object, but found existing array'
51
62
}
52
63
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\x1D type=array;&SUB_SUB_ARRAY' )
67
+ declare -A OBJECT=([my_key]=$' \x1C\x1D type=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
+
53
76
# get-array
54
77
@test " Error on get-array'ing string" {
55
78
declare -A OBJECT=([my_key]=' string_value2' )
@@ -72,6 +95,17 @@ load './util/init.sh'
72
95
assert_line -p ' Queried for array, but found existing string'
73
96
}
74
97
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\x1D type=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
+
75
109
@test " Error on get-array'ing object" {
76
110
declare -A SUB_OBJECT=([omicron]=' pi' )
77
111
declare -A OBJECT=([my_key]=$' \x1C\x1D type=object;&SUB_OBJECT' )
@@ -95,6 +129,18 @@ load './util/init.sh'
95
129
assert_line -p ' Queried for array, but found existing object'
96
130
}
97
131
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\x1D type=object;&SUB_SUB_OBJECT' zeta)
135
+ declare -A OBJECT=([my_key]=$' \x1C\x1D type=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
+
98
144
# get-string
99
145
@test " Error on get-string'ing object" {
100
146
declare -A SUB_OBJECT=([omicron]=' pi' )
@@ -119,6 +165,18 @@ load './util/init.sh'
119
165
assert_line -p ' Queried for string, but found existing object'
120
166
}
121
167
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\x1D type=object;&SUB_SUB_OBJECT' )
171
+ declare -A OBJECT=([my_key]=$' \x1C\x1D type=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
+
122
180
@test " Error on get-string'ing array" {
123
181
declare -a SUB_ARRAY=(omicron pi rho)
124
182
declare -A OBJECT=([my_key]=$' \x1C\x1D type=array;&SUB_ARRAY' )
@@ -141,3 +199,15 @@ load './util/init.sh'
141
199
assert_line -p " ERROR_VALUE_INCORRECT_TYPE"
142
200
assert_line -p ' Queried for string, but found existing array'
143
201
}
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\x1D type=array;&SUB_SUB_ARRAY' )
206
+ declare -A OBJECT=([my_key]=$' \x1C\x1D type=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