#!/usr/bin/env bash
#
# very simple test for sshp just to verify some basic behavior
#
# Author: Dave Eddy <dave@daveeddy.com>
# Date: April 14, 2021
# License: MIT

. ./lib/helpers || exit 1

# -v should just exit 0
verify-cmd 0 sshp -v

# -h should just exit 0
verify-cmd 0 sshp -h

# no arguments is a user error
verify-cmd 2 sshp

# bad hosts file
verify-cmd 2 sshp -f / cmd
verify-cmd 2 sshp -f /should-not-exist cmd

# no hosts specified is currently an error
verify-cmd 2 sshp -f /dev/null cmd
verify-cmd 2 sshp -f ./assets/hosts/empty-hosts.txt cmd

# invalid max parallelism
verify-cmd 2 sshp -m
verify-cmd 2 sshp -m 0
verify-cmd 2 sshp -m foo
verify-cmd 2 sshp -m -17

# invalid mode combinations
verify-cmd 2 sshp -g -j

# do a dry run
hostfile='./assets/hosts/simple-hosts.txt'
verify-cmd 0 sshp -n -f "$hostfile" cmd
verify-cmd 0 sshp -n -f - cmd < "$hostfile"
verify-cmd 0 sshp -n cmd < "$hostfile"

# check host names lengths
verify-cmd 0 sshp -n -f ./assets/hosts/long-hosts-good.txt cmd
verify-cmd 2 sshp -n -f ./assets/hosts/long-hosts-bad.txt cmd

exit 0
