mirror of
https://github.com/jimeh/stub.sh.git
synced 2026-02-19 05:36:39 +00:00
Change when called state is reset
This allows checking if a stub was called even after it's been restored to it's original. Called state is only reset when a new stub is created for the same command.
This commit is contained in:
7
stub.sh
7
stub.sh
@@ -95,6 +95,10 @@ stub_and_eval() {
|
||||
STUB_ACTIVE_STUBS+=("$cmd")
|
||||
fi
|
||||
|
||||
# Remove stub from list of called stubs, as we are now creating a new stub
|
||||
# which hasn't been called yet.
|
||||
STUB_CALLED_STUBS=(${STUB_CALLED_STUBS[@]/$cmd/})
|
||||
|
||||
# Create the stub.
|
||||
eval "$(echo -e "${cmd}() {\n __stub_call \"${cmd}\"\n $2\n}")"
|
||||
}
|
||||
@@ -204,9 +208,6 @@ restore() {
|
||||
# Remove stub from list of active stubs.
|
||||
STUB_ACTIVE_STUBS=(${STUB_ACTIVE_STUBS[@]/$cmd/})
|
||||
|
||||
# Remove stub from list of called stubs.
|
||||
STUB_CALLED_STUBS=(${STUB_CALLED_STUBS[@]/$cmd/})
|
||||
|
||||
# If stub was for a function, restore the original function.
|
||||
if type "non_stubbed_${cmd}" &>/dev/null; then
|
||||
local original_type="$(type "non_stubbed_${cmd}" | head -1)"
|
||||
|
||||
@@ -19,20 +19,24 @@ uname
|
||||
assert_raises 'stub_called "uname"' 0
|
||||
restore "uname"
|
||||
|
||||
# Returns 1 after called stub has been restored.
|
||||
# Stub called state is reset by creating a new stub, not by restore.
|
||||
stub "uname"
|
||||
uname
|
||||
restore "uname"
|
||||
assert_raises 'stub_called "uname"' 0
|
||||
stub "uname"
|
||||
assert_raises 'stub_called "uname"' 1
|
||||
restore "uname"
|
||||
|
||||
# Restoring only resets called state of restored stub.
|
||||
# Recreating a stub only resets called state of recreated stub.
|
||||
stub "uname"
|
||||
stub "top"
|
||||
uname
|
||||
top
|
||||
restore "uname"
|
||||
stub "uname"
|
||||
assert_raises 'stub_called "uname"' 1
|
||||
assert_raises 'stub_called "top"' 0
|
||||
restore "uname"
|
||||
restore "top"
|
||||
|
||||
|
||||
|
||||
@@ -19,12 +19,15 @@ uname
|
||||
assert 'stub_called_times "uname"' "3"
|
||||
restore "uname"
|
||||
|
||||
# Echoes 0 after a called stub has been restored.
|
||||
# Echoes 0 after a called stub has been recreated.
|
||||
stub "uname"
|
||||
uname
|
||||
assert 'stub_called_times "uname"' "1"
|
||||
restore "uname"
|
||||
assert 'stub_called_times "uname"' "1"
|
||||
stub "uname"
|
||||
assert 'stub_called_times "uname"' "0"
|
||||
restore "uname"
|
||||
|
||||
# When given a second argument, asserts stub called X number of times.
|
||||
stub "uname"
|
||||
|
||||
Reference in New Issue
Block a user