1
0
mirror of https://github.com/TheLocehiliosan/yadm synced 2024-10-27 20:34:27 +00:00
TheLocehiliosan_yadm/test/106_accept_config.bats
Tim Byrne d2cd3b1b26 Add tests
Tests will be run using `bats`.
2016-04-07 08:14:13 -05:00

123 lines
2.6 KiB
Bash

load common
load_fixtures
T_SECTION="test"
T_ATTRIB="attribute"
T_KEY="$T_SECTION.$T_ATTRIB"
T_VALUE="testvalue"
T_EXPECTED="[$T_SECTION]\n\t$T_ATTRIB = $T_VALUE"
setup() {
destroy_tmp
}
@test "Command 'config' (no parameters)" {
skip
echo "
When 'config' command is provided alone,
Produce instructions about supported configuration options
Exit with 1
"
#; TODO: This has not been implemented
}
@test "Command 'config' (read missing)" {
echo "
When 'config' command is provided,
and an attribute is provided
and the attribute isn't configured
Report an empty value
Exit with 0
"
#; run config
run $T_YADM_Y config $T_KEY
#; validate status and output
[ $status -eq 0 ]
[ "$output" = "" ]
}
@test "Command 'config' (write)" {
echo "
When 'config' command is provided,
and an attribute is provided
and a value is provided
Report no output
Update configuration file
Exit with 0
"
#; run config
run $T_YADM_Y config "$T_KEY" "$T_VALUE"
#; validate status and output
[ $status -eq 0 ]
[ "$output" = "" ]
#; validate configuration
local config=$(cat $T_YADM_CONFIG)
local expected=$(echo -e "$T_EXPECTED")
if [ "$config" != "$expected" ]; then
echo "ERROR: Config does not match expected"
echo "$config"
return 1
fi
}
@test "Command 'config' (read)" {
echo "
When 'config' command is provided,
and an attribute is provided
and the attribute is configured
Report the requested value
Exit with 0
"
#; manually load a value into the configuration
mkdir -p $(dirname "$T_YADM_CONFIG")
echo -e "$T_EXPECTED" > $T_YADM_CONFIG
#; run config
run $T_YADM_Y config "$T_KEY"
#; validate status and output
[ $status -eq 0 ]
if [ "$output" != "$T_VALUE" ]; then
echo "ERROR: Incorrect value returned. Expected '$T_VALUE', got '$output'"
return 1
fi
}
@test "Command 'config' (update)" {
echo "
When 'config' command is provided,
and an attribute is provided
and the attribute is already configured
Report no output
Update configuration file
Exit with 0
"
#; manually load a value into the configuration
mkdir -p $(dirname "$T_YADM_CONFIG")
echo -e "${T_EXPECTED}_with_extra_data" > $T_YADM_CONFIG
#; run config
run $T_YADM_Y config "$T_KEY" "$T_VALUE"
#; validate status and output
[ $status -eq 0 ]
[ "$output" = "" ]
#; validate configuration
local config=$(cat $T_YADM_CONFIG)
local expected=$(echo -e "$T_EXPECTED")
if [ "$config" != "$expected" ]; then
echo "ERROR: Config does not match expected"
echo "$config"
return 1
fi
}