Skip to content

Commit 0dec3fb

Browse files
committed
test: Rename and better categorize (move) tests
1 parent 1c59352 commit 0dec3fb

File tree

10 files changed

+83
-72
lines changed

10 files changed

+83
-72
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ assert [ "$REPLY" = rho ]
4747

4848
## Installation
4949

50-
STATUS: ALPHA
50+
STATUS: BETA
5151

5252
```sh
5353
echo "dependencies = [ 'hyperupcall/bash-object' ]" > 'bpm.toml'

tests/get-errors.bats

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1-
#!/usr/bin/env bash
1+
#!/usr/bin/env bats
22

33
load './util/init.sh'
4+
5+
@test "Error if getting more than a string" {
6+
declare -A OBJECT=()
7+
str='golf'
8+
9+
bobject set-string --ref OBJECT '.foxtrot' str
10+
run bobject get-string --ref OBJECT '.foxtrot.omega'
11+
12+
assert_failure
13+
assert_line -p 'ERROR_NOT_FOUND'
14+
assert_line -p "The passed querytree implies that 'foxtrot' accesses an object or array, but a string with a value of 'golf' was found instead"
15+
}
File renamed without changes.

tests/get-value.bats

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env bats
2+
3+
load './util/init.sh'
4+
5+
@test "Correctly gets object" {
6+
declare -A inner_object=([cool]='Wolf 359')
7+
declare -A OBJ=([stars]=$'\x1C\x1Dtype=object;&inner_object')
8+
9+
bobject set-object --value
10+
bobject get-object --value 'OBJ' '.stars'
11+
assert [ "${REPLY[cool]}" = 'Wolf 359' ]
12+
13+
bobject get-string --value 'OBJ' '.stars.cool'
14+
assert [ "$REPLY" = 'Wolf 359' ]
15+
}
File renamed without changes.
File renamed without changes.

tests/set-array.bats

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

tests/set-object.bats

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

tests/set-string.bats renamed to tests/set-ref.bats

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,47 @@
22

33
load './util/init.sh'
44

5+
# object
6+
@test "Correctly sets object" {
7+
declare -A obj=([omicron]=pi [rho]=sigma [tau]=upsilon)
8+
declare -A OBJECT=()
9+
10+
bobject set-object --ref 'OBJECT' '.obj' obj
11+
12+
bobject get-object --value 'OBJECT' '.obj'
13+
assert [ ${#REPLY[@]} -eq 3 ]
14+
assert [ "${REPLY[omicron]}" = pi ]
15+
assert [ "${REPLY[rho]}" = sigma ]
16+
assert [ "${REPLY[tau]}" = upsilon ]
17+
18+
bobject get-string --value 'OBJECT' '.obj.rho'
19+
assert [ "$REPLY" = sigma ]
20+
}
21+
22+
# array
23+
@test "Correctly sets array" {
24+
declare -a arr=(omicron pi rho)
25+
declare -A OBJECT=()
26+
27+
bobject set-array --ref 'OBJECT' '.arr' arr
28+
29+
bobject get-array --value 'OBJECT' '.arr'
30+
assert [ ${#REPLY[@]} -eq 3 ]
31+
assert [ "${REPLY[0]}" = omicron ]
32+
assert [ "${REPLY[1]}" = pi ]
33+
assert [ "${REPLY[2]}" = rho ]
34+
35+
bobject get-string --value 'OBJECT' '.["arr"].[0]'
36+
assert [ "$REPLY" = omicron ]
37+
38+
bobject get-string --value 'OBJECT' '.["arr"].[1]'
39+
assert [ "$REPLY" = pi ]
40+
41+
bobject get-string --value 'OBJECT' '.["arr"].[2]'
42+
assert [ "$REPLY" = rho ]
43+
}
44+
45+
# string
546
@test "Correctly sets string at root" {
647
declare -A OBJECT=()
748
str='my_value'

tests/set.bats

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
1-
# shellcheck shell=bash
1+
#!/usr/bin/env bats
22

33
load './util/init.sh'
44

5+
@test "Error if setting more than a string" {
6+
declare -A OBJECT=()
7+
str='golf'
8+
9+
bobject set-string --ref OBJECT '.foxtrot' str
10+
run bobject set-string --ref OBJECT '.foxtrot.omega' str
11+
12+
assert_failure
13+
assert_line -p 'ERROR_NOT_FOUND'
14+
assert_line -p "The passed querytree implies that 'foxtrot' accesses an object or array, but a string with a value of 'golf' was found instead"
15+
}
16+
517
@test "Error if random variable already exists for set-object" {
618
declare -A OBJECT=()
719
declare -A obj=()
@@ -33,28 +45,3 @@ load './util/init.sh'
3345
assert_output -p 'ERROR_INTERNAL'
3446
assert_output -p "Variable 'some_other_var' exists, but it shouldn't"
3547
}
36-
37-
@test "Error if setting more than a string" {
38-
declare -A OBJECT=()
39-
str='golf'
40-
41-
bobject set-string --ref OBJECT '.foxtrot' str
42-
run bobject set-string --ref OBJECT '.foxtrot.omega' str
43-
44-
assert_failure
45-
assert_line -p 'ERROR_NOT_FOUND'
46-
assert_line -p "The passed querytree implies that 'foxtrot' accesses an object or array, but a string with a value of 'golf' was found instead"
47-
}
48-
49-
# TODO: move
50-
@test "Error if getting more than a string" {
51-
declare -A OBJECT=()
52-
str='golf'
53-
54-
bobject set-string --ref OBJECT '.foxtrot' str
55-
run bobject get-string --ref OBJECT '.foxtrot.omega'
56-
57-
assert_failure
58-
assert_line -p 'ERROR_NOT_FOUND'
59-
assert_line -p "The passed querytree implies that 'foxtrot' accesses an object or array, but a string with a value of 'golf' was found instead"
60-
}

0 commit comments

Comments
 (0)