Skip to content

Commit d9aea7c

Browse files
committed
test: Refactor suite to better categorize tests
This makes it easier to ensure coverage is as close to 100% as possible
1 parent c0a98fa commit d9aea7c

13 files changed

+345
-328
lines changed

tests/get-array.bats

Lines changed: 0 additions & 92 deletions
This file was deleted.
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
#!/usr/bin/env bats
2+
3+
# @brief Ensures errors are thrown when the type of the vobject
4+
# does not match up with the specified type (as in get-array, get-object, etc.)
5+
6+
load './util/init.sh'
7+
8+
# get-object
9+
@test "Error on get-object'ing string" {
10+
declare -A OBJECT=([my_key]='string_value2')
11+
12+
run bash_object.traverse-get object OBJECT '.my_key'
13+
14+
assert_failure
15+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
16+
assert_line -p 'Queried for object, but found existing string'
17+
}
18+
19+
@test "Error on get-object'ing string inside object" {
20+
declare -A SUB_OBJECT=([nested]='string_value')
21+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=object;&SUB_OBJECT')
22+
23+
run bash_object.traverse-get object OBJECT '.my_key.nested'
24+
25+
assert_failure
26+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
27+
assert_line -p 'Queried for object, but found existing string'
28+
}
29+
30+
@test "Error on get-object'ing array" {
31+
declare -a SUB_ARRAY=(omicron pi rho)
32+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_ARRAY')
33+
34+
run bash_object.traverse-get object OBJECT '.my_key'
35+
36+
assert_failure
37+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
38+
assert_line -p 'Queried for object, but found existing array'
39+
}
40+
41+
@test "Error on get-object'ing array inside object" {
42+
declare -a SUB_SUB_ARRAY=(omicron pi rho)
43+
declare -A SUB_OBJECT=([nested]=$'\x1C\x1Dtype=array;&SUB_SUB_ARRAY')
44+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_OBJECT')
45+
46+
run bash_object.traverse-get object OBJECT '.my_key.nested'
47+
48+
assert_failure
49+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
50+
assert_line -p 'Queried for object, but found existing array'
51+
}
52+
53+
# get-array
54+
@test "Error on get-array'ing string" {
55+
declare -A OBJECT=([my_key]='string_value2')
56+
57+
run bash_object.traverse-get array OBJECT '.my_key'
58+
59+
assert_failure
60+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
61+
assert_line -p 'Queried for array, but found existing string'
62+
}
63+
64+
@test "Error on get-array'ing string in object" {
65+
declare -A SUB_OBJECT=([nested]='string_value')
66+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=object;&SUB_OBJECT')
67+
68+
run bash_object.traverse-get array OBJECT '.my_key.nested'
69+
70+
assert_failure
71+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
72+
assert_line -p 'Queried for array, but found existing string'
73+
}
74+
75+
@test "Error on get-array'ing object" {
76+
declare -A SUB_OBJECT=([omicron]='pi')
77+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=object;&SUB_OBJECT')
78+
79+
run bash_object.traverse-get array OBJECT '.my_key'
80+
81+
assert_failure
82+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
83+
assert_line -p 'Queried for array, but found existing object'
84+
}
85+
86+
@test "Error on get-array'ing object in object" {
87+
declare -A SUB_SUB_OBJECT=([omicron]='pi')
88+
declare -A SUB_OBJECT=([nested]=$'\x1C\x1Dtype=object;&SUB_SUB_OBJECT')
89+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=object;&SUB_OBJECT')
90+
91+
run bash_object.traverse-get array OBJECT '.my_key.nested'
92+
93+
assert_failure
94+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
95+
assert_line -p 'Queried for array, but found existing object'
96+
}
97+
98+
# get-string
99+
@test "Error on get-string'ing object" {
100+
declare -A SUB_OBJECT=([omicron]='pi')
101+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=object;&SUB_OBJECT')
102+
103+
run bash_object.traverse-get string OBJECT '.my_key'
104+
105+
assert_failure
106+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
107+
assert_line -p 'Queried for string, but found existing object'
108+
}
109+
110+
@test "Error on get-string'ing object in object" {
111+
declare -A SUB_SUB_OBJECT=([omicron]='pi')
112+
declare -A SUB_OBJECT=([nested]=$'\x1C\x1Dtype=object;&SUB_SUB_OBJECT')
113+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=object;&SUB_OBJECT')
114+
115+
run bash_object.traverse-get string OBJECT '.my_key.nested'
116+
117+
assert_failure
118+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
119+
assert_line -p 'Queried for string, but found existing object'
120+
}
121+
122+
@test "Error on get-string'ing array" {
123+
declare -a SUB_ARRAY=(omicron pi rho)
124+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_ARRAY')
125+
126+
run bash_object.traverse-get string OBJECT '.my_key'
127+
128+
assert_failure
129+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
130+
assert_line -p 'Queried for string, but found existing array'
131+
}
132+
133+
@test "Error on get-string'ing array in object" {
134+
declare -a SUB_SUB_ARRAY=(omicron pi rho)
135+
declare -A SUB_OBJECT=([nested]=$'\x1C\x1Dtype=array;&SUB_SUB_ARRAY')
136+
declare -A OBJECT=([my_key]=$'\x1C\x1Dtype=array;&SUB_OBJECT')
137+
138+
run bash_object.traverse-get string OBJECT '.my_key.nested'
139+
140+
assert_failure
141+
assert_line -p "ERROR_VALUE_INCORRECT_TYPE"
142+
assert_line -p 'Queried for string, but found existing array'
143+
}

tests/get-errors.bats renamed to tests/get-errors-param.bats

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env bats
22

3-
# @file Contains tests that ensure the positional
3+
# @brief Contains tests that ensure the positional
44
# parameters have been validated properly, when possible
55

66
load './util/init.sh'

tests/get-object.bats

Lines changed: 0 additions & 103 deletions
This file was deleted.

0 commit comments

Comments
 (0)