
set -eu

SERVER_HOST="localhost"
SERVER_PORT="2929"

DB="swordfish_test.db"

if [ "${1:-}" = "runner" ]
then
	RUNNER=1
else
	RUNNER=0
fi

Exit () {
	RET="${?}"

	if [ "${RET}" = "0" ]
	then
		if [ ${RUNNER} = 1 ]
		then
			printf "."
		else
			echo "OK."
		fi
	else
		if [ ${RUNNER} = 1 ]
		then
			printf "F"
		else
			echo "FAIL."
		fi
	fi

	exit ${RET}
}

trap Exit EXIT

Assert () {
	VAL="${1:-}"

	if [ "${RET}" = "${VAL}" ]
	then
		return 0
	fi

	if [ ${RUNNER} = 0 ]
	then
		printf 'Assertion failed: %s != %s\n' "${RET}" "${VAL}"
	fi

	return 1
}
		

POST () {
	URI="${1}"
	DATA="${2:-}"

	RET="$(wget -q -O- --post-data "${DATA}" http://${SERVER_HOST}:${SERVER_PORT}${URI})"
}

GET () {
	URI="${1}"

	RET="$(wget -q -O- http://${SERVER_HOST}:${SERVER_PORT}${URI})"
}

# Flush testing database
if ! POST /databases/${DB}/delete
then
	echo "Could not flush database; is Swordfish running?"

	return 1
fi
