diff --git a/test/show.bats b/test/show.bats new file mode 100644 index 0000000..5caa4d6 --- /dev/null +++ b/test/show.bats @@ -0,0 +1,99 @@ +#!/usr/bin/env bats + +load test_helper + +# `hosts show` ############################################################## + +@test "\`show\` with no arguments exits with status 1." { + run "$_HOSTS" show + printf "\$status: %s\n" "$status" + printf "\$output: '%s'\n" "$output" + [[ $status -eq 1 ]] +} + +@test "\`show\` with no arguments prints help information." { + run "$_HOSTS" show + printf "\$status: %s\n" "$status" + printf "\$output: '%s'\n" "$output" + [[ "${lines[0]}" == "Usage:" ]] + [[ "${lines[1]}" == " hosts show ( | | )" ]] +} + +# `hosts show ` ######################################################### + +@test "\`show \` exits with status 0." { + { + run "$_HOSTS" add 0.0.0.0 example.com + run "$_HOSTS" add 0.0.0.0 example.net + run "$_HOSTS" add 127.0.0.2 example.com + run "$_HOSTS" disable example.com + } + + run "$_HOSTS" show 0.0.0.0 + printf "\$status: %s\n" "$status" + printf "\$output: '%s'\n" "$output" + [[ $status -eq 0 ]] +} + +@test "\`enable \` shows all matches." { + { + run "$_HOSTS" add 0.0.0.0 example.com + run "$_HOSTS" add 0.0.0.0 example.net + run "$_HOSTS" add 127.0.0.2 example.com + run "$_HOSTS" disable example.com + } + + run "$_HOSTS" show 0.0.0.0 + printf "\$status: %s\n" "$status" + printf "\$output: '%s'\n" "$output" + + [[ "${lines[0]}" == "0.0.0.0 example.net" ]] + [[ "${lines[1]}" == "disabled: 0.0.0.0 example.com" ]] +} + +# `hosts show ` ##################################################### + +@test "\`show \` exits with status 0." { + { + run "$_HOSTS" add 0.0.0.0 example.com + run "$_HOSTS" add 0.0.0.0 example.net + run "$_HOSTS" add 127.0.0.2 example.com + run "$_HOSTS" disable 0.0.0.0 + } + + run "$_HOSTS" show example.com + printf "\$status: %s\n" "$status" + printf "\$output: '%s'\n" "$output" + [[ $status -eq 0 ]] +} + +@test "\`enable \` shows all matches." { + { + run "$_HOSTS" add 0.0.0.0 example.com + run "$_HOSTS" add 0.0.0.0 example.net + run "$_HOSTS" add 127.0.0.2 example.com + run "$_HOSTS" disable 0.0.0.0 + } + + run "$_HOSTS" show example.com + printf "\$status: %s\n" "$status" + printf "\$output: '%s'\n" "$output" + + [[ "${lines[0]}" == "127.0.0.2 example.com" ]] + [[ "${lines[1]}" == "disabled: 0.0.0.0 example.com" ]] +} + +# help ######################################################################## + +@test "\`help show\` exits with status 0." { + run "$_HOSTS" help show + [[ $status -eq 0 ]] +} + +@test "\`help show\` prints help information." { + run "$_HOSTS" help show + printf "\$status: %s\n" "$status" + printf "\$output: '%s'\n" "$output" + [[ "${lines[0]}" == "Usage:" ]] + [[ "${lines[1]}" == " hosts show ( | | )" ]] +}