summaryrefslogtreecommitdiff
path: root/tests/cli-opts.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cli-opts.sh')
-rwxr-xr-xtests/cli-opts.sh106
1 files changed, 105 insertions, 1 deletions
diff --git a/tests/cli-opts.sh b/tests/cli-opts.sh
index 39f01f4..1d7cab8 100755
--- a/tests/cli-opts.sh
+++ b/tests/cli-opts.sh
@@ -4,6 +4,85 @@ set -eu
. tests/lib.sh
+test_unsupported_flags() {
+ testing 'unsupported flags'
+
+ N="$LINENO"
+ OUT="$(mkstemp)"
+ ERR="$(mkstemp)"
+ trap 'rm -f "$OUT" "$ERR"' EXIT
+ STATUS=0
+ ./uuid.bin -x 1>"$OUT" 2>"$ERR" || STATUS=$?
+ assert_status 2
+ assert_empty_stdout
+ assert_grep_stderr '^Usage:$'
+ rm "$OUT" "$ERR"
+
+ test_ok
+}
+
+test_flag_without_required_arguments() {
+ testing 'flag without required arguments'
+
+ N="$LINENO"
+ OUT="$(mkstemp)"
+ ERR="$(mkstemp)"
+ trap 'rm -f "$OUT" "$ERR"' EXIT
+ STATUS=0
+ ./uuid.bin -v 1>"$OUT" 2>"$ERR" || STATUS=$?
+ assert_status 2
+ assert_empty_stdout
+ assert_grep_stderr '^Usage:$'
+ rm "$OUT" "$ERR"
+
+ test_ok
+}
+
+test_flag_with_bad_argument_value() {
+ testing 'flag without required arguments'
+
+ N="$LINENO"
+ OUT="$(mkstemp)"
+ ERR="$(mkstemp)"
+ trap 'rm -f "$OUT" "$ERR"' EXIT
+ STATUS=0
+ ./uuid.bin -v 1 1>"$OUT" 2>"$ERR" || STATUS=$?
+ assert_status 2
+ assert_empty_stdout
+ assert_grep_stderr '^Usage:$'
+ rm "$OUT" "$ERR"
+
+ test_ok
+}
+
+test_generates_uuid_with_custom_version() {
+ testing 'UUID with custom version'
+
+ N="$LINENO"
+ OUT="$(mkstemp)"
+ ERR="$(mkstemp)"
+ trap 'rm -f "$OUT" "$ERR"' EXIT
+ STATUS=0
+ ./uuid.bin -v 4 1>"$OUT" 2>"$ERR" || STATUS=$?
+ assert_status 0
+ assert_grep_stdout '^.{,14}4'
+ assert_empty_stderr
+ rm "$OUT" "$ERR"
+
+ N="$LINENO"
+ OUT="$(mkstemp)"
+ ERR="$(mkstemp)"
+ trap 'rm -f "$OUT" "$ERR"' EXIT
+ STATUS=0
+ ./uuid.bin -v 7 1>"$OUT" 2>"$ERR" || STATUS=$?
+ assert_status 0
+ assert_grep_stdout '^.{,14}7'
+ assert_empty_stderr
+ rm "$OUT" "$ERR"
+
+ test_ok
+}
+
test_generates_uuid_with_0_args() {
testing 'generates UUID with 0 arguments'
@@ -28,7 +107,8 @@ test_checks_string_with_1_arg() {
ERR="$(mkstemp)"
trap 'rm -f "$OUT" "$ERR"' EXIT
STATUS=0
- ./uuid.bin 'cac94e13-41fa-40c4-bd46-5b7b3b46c09e' 1>"$OUT" 2>"$ERR" || STATUS=$?
+ ID='cac94e13-41fa-40c4-bd46-5b7b3b46c09e'
+ ./uuid.bin "$ID" 1>"$OUT" 2>"$ERR" || STATUS=$?
assert_status 0
assert_empty_stdout
assert_empty_stderr
@@ -48,7 +128,31 @@ test_checks_string_with_1_arg() {
test_ok
}
+test_checks_string_with_1_arg_ignores_options() {
+ testing 'checks string with 1 arg ignores options'
+
+ N="$LINENO"
+ OUT="$(mkstemp)"
+ ERR="$(mkstemp)"
+ trap 'rm -f "$OUT" "$ERR"' EXIT
+ STATUS=0
+ ID='cac94e13-41fa-40c4-bd46-5b7b3b46c09e'
+ ID='76600ea2-0282-4b38-9bc9-dd69125445f3'
+ ./uuid.bin -v 4 "$ID" 1>"$OUT" 2>"$ERR" || STATUS=$?
+ assert_status 0
+ assert_empty_stdout
+ assert_empty_stderr
+ rm "$OUT" "$ERR"
+
+ test_ok
+}
+
+test_unsupported_flags
+test_flag_without_required_arguments
test_generates_uuid_with_0_args
+test_flag_with_bad_argument_value
+test_generates_uuid_with_custom_version
test_checks_string_with_1_arg
+test_checks_string_with_1_arg_ignores_options