Add tests for functions/utilities.zsh

In particular: `defined`, `set_default`, `getRelevantItem` and
`segmentShouldBeJoined`
This commit is contained in:
Dominik Ritter 2016-02-12 00:30:48 +01:00
parent d7a0f49391
commit c0c611c21d
1 changed files with 86 additions and 0 deletions

View File

@ -10,6 +10,24 @@ function oneTimeSetUp() {
source functions/utilities.zsh
}
function testDefinedFindsDefinedVariable() {
my_var='X'
assertTrue "defined 'my_var'"
unset my_var
}
function testDefinedDoesNotFindUndefinedVariable() {
assertFalse "defined 'my_var'"
}
function testSetDefaultSetsVariable() {
set_default 'my_var' 'x'
assertEquals 'x' "$my_var"
unset my_var
}
function testPrintSizeHumanReadableWithBigNumber() {
# Interesting: Currently we can't support numbers bigger than that.
assertEquals '0.87E' "$(printSizeHumanReadable 1000000000000000000)"
@ -19,4 +37,72 @@ function testPrintSizeHumanReadableWithExabytesAsBase() {
assertEquals '9.77Z' "$(printSizeHumanReadable 10000 'E')"
}
function testGetRelevantItem() {
typeset -a list
list=(a b c)
local callback='[[ "$item" == "b" ]] && echo "found"'
local result=$(getRelevantItem "$list" "$callback")
assertEquals 'found' "$result"
unset list
}
function testGetRelevantItemDoesNotReturnNotFoundItems() {
typeset -a list
list=(a b c)
local callback='[[ "$item" == "d" ]] && echo "found"'
local result=$(getRelevantItem "$list" "$callback")
assertEquals '' ''
unset list
}
function testSegmentShouldBeJoinedIfDirectPredecessingSegmentIsJoined() {
typeset -a segments
segments=(a b_joined c_joined)
# Look at the third segment
local current_index=3
local last_element_index=2
local joined
segmentShouldBeJoined $current_index $last_element_index "$segments" && joined=true || joined=false
assertTrue "$joined"
unset segments
}
function testSegmentShouldBeJoinedIfPredecessingSegmentIsJoinedTransitivley() {
typeset -a segments
segments=(a b_joined c_joined)
# Look at the third segment
local current_index=3
# The last printed segment was the first one,
# the second segmend was conditional.
local last_element_index=1
local joined
segmentShouldBeJoined $current_index $last_element_index "$segments" && joined=true || joined=false
assertTrue "$joined"
unset segments
}
function testSegmentShouldNotBeJoinedIfPredecessingSegmentIsNotJoinedButConditional() {
typeset -a segments
segments=(a b_joined c d_joined)
# Look at the fourth segment
local current_index=4
# The last printed segment was the first one,
# the second segmend was conditional.
local last_element_index=1
local joined
segmentShouldBeJoined $current_index $last_element_index "$segments" && joined=true || joined=false
assertFalse "$joined"
unset segments
}
source shunit2/source/2.1/src/shunit2