diff --git a/Makefile b/Makefile index 089ee47c4..d272fcdc2 100644 --- a/Makefile +++ b/Makefile @@ -32,6 +32,7 @@ test_cli: tests/cli/shunit2 ./tests/cli/rpc.sh ./tests/cli/init.sh ./tests/cli/basictx.sh + ./tests/cli/eyes.sh ./tests/cli/roles.sh ./tests/cli/counter.sh ./tests/cli/restart.sh diff --git a/tests/cli/eyes.sh b/tests/cli/eyes.sh new file mode 100755 index 000000000..800335970 --- /dev/null +++ b/tests/cli/eyes.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +# These global variables are required for common.sh +SERVER_EXE=eyes +CLIENT_EXE=eyescli + +oneTimeSetUp() { + # These are passed in as args + BASE_DIR=$HOME/.test_eyes + CHAIN_ID="eyes-cli-test" + + rm -rf $BASE_DIR 2>/dev/null + mkdir -p $BASE_DIR + + echo "Setting up genesis..." + SERVE_DIR=${BASE_DIR}/server + SERVER_LOG=${BASE_DIR}/${SERVER_EXE}.log + + echo "Starting ${SERVER_EXE} server..." + export EYE_HOME=${SERVE_DIR} + ${SERVER_EXE} init --chain-id=$CHAIN_ID >>$SERVER_LOG + startServer $SERVE_DIR $SERVER_LOG + if [ $? != 0 ]; then return 1; fi + + # Set up client - make sure you use the proper prefix if you set + # a custom CLIENT_EXE + export EYE_HOME=${BASE_DIR}/client + + initClient $CHAIN_ID + if [ $? != 0 ]; then return 1; fi + + printf "...Testing may begin!\n\n\n" +} + +oneTimeTearDown() { + quickTearDown +} + +test00SetGetRemove() { + KEY="CAFE6000" + VALUE="F00D4200" + + assertFalse "line=${LINENO} data present" "${CLIENT_EXE} query etc ${KEY}" + + # set data + TXRES=$(${CLIENT_EXE} tx set --key=${KEY} --value=${VALUE}) + txSucceeded $? "$TXRES" "set cafe" + HASH=$(echo $TXRES | jq .hash | tr -d \") + TX_HEIGHT=$(echo $TXRES | jq .height) + + # make sure it is set + DATA=$(${CLIENT_EXE} query etc ${KEY}) + assertTrue "line=${LINENO} data not set" $? + assertEquals "line=${LINENO}" "\"${VALUE}\"" $(echo $DATA | jq .data.value) + + # query the tx + TX=$(${CLIENT_EXE} query tx $HASH) + assertTrue "line=${LINENO}, found tx" $? + if [ -n "$DEBUG" ]; then echo $TX; echo; fi + + assertEquals "line=${LINENO}, proper type" "\"etc/set\"" $(echo $TX | jq .data.type) + assertEquals "line=${LINENO}, proper key" "\"${KEY}\"" $(echo $TX | jq .data.data.key) + assertEquals "line=${LINENO}, proper value" "\"${VALUE}\"" $(echo $TX | jq .data.data.value) +} + + +# Load common then run these tests with shunit2! +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #get this files directory +. $DIR/common.sh +. $DIR/shunit2 +