diff options
author | Gianni Ceccarelli <gianni.ceccarelli@broadbean.com> | 2023-07-26 11:50:37 +0100 |
---|---|---|
committer | Gianni Ceccarelli <gianni.ceccarelli@broadbean.com> | 2023-07-26 11:50:37 +0100 |
commit | 0da5f0a49593bf9a24f15a8c4ff7a36ff4d04c69 (patch) | |
tree | 3e33e52d82875383749fcb6f37985da3c3505345 /t/args.t | |
parent | remove old implementation (diff) | |
download | bash-object-system-0da5f0a49593bf9a24f15a8c4ff7a36ff4d04c69.tar.gz bash-object-system-0da5f0a49593bf9a24f15a8c4ff7a36ff4d04c69.tar.bz2 bash-object-system-0da5f0a49593bf9a24f15a8c4ff7a36ff4d04c69.zip |
very rough parameter parser
Diffstat (limited to 't/args.t')
-rw-r--r-- | t/args.t | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/t/args.t b/t/args.t new file mode 100644 index 0000000..686adc6 --- /dev/null +++ b/t/args.t @@ -0,0 +1,35 @@ +#!/bin/bash + +. t/testlib.sh + +declare first_parser + +set +x + +bos-args/build-parser-code-into first_parser \ + -scalar one scalar_var \ + -array two array_var \ + -assoc three assoc_var \ + -assignment-scalar '${name}="${value}"' \ + -assignment-array '${name}+=( "${value}" )' \ + -assignment-assoc '${name}+=( ["${key}"]="${value}" )' + +should-succeed "should build parser" + +diag "$first_parser" + +declare -a array_var +declare -A assoc_var + +eval "function first-parser() { $first_parser }" +first-parser -two a -three x y -two b -one foo -three w z -unused + +is "$scalar_var" 'foo' 'scalar should be set' + +is "${array_var[0]}" 'a' 'array should get first value' +is "${array_var[1]}" 'b' 'array should get second value' + +is "${assoc_var[x]}" 'y' 'assoc should get first value' +is "${assoc_var[w]}" 'z' 'assoc should get second value' + +done-testing |