Current section
Files
Jump to
Current section
Files
lib/stitch/call.ex
defmodule Stitch.Call do
alias Stitch.Call
def function_was_called?(call_tuple, module, function) do
if elem(call_tuple, 0) == module and elem(call_tuple, 1) == function do
true
else
false
end
end
def get_last(module, function) do
module
|> :meck.history()
|> Enum.filter(fn item ->
Call.function_was_called?(elem(item, 1), module, function)
end)
|> List.last()
end
def get_arguments(module, function) do
case Call.get_last(module, function) do
nil -> []
last_call -> elem(elem(last_call, 1), 2)
end
end
def assert_called(module, f, expected_args) do
if :meck.called(module, f, expected_args) do
true
else
call_args = Call.get_arguments(module, f)
raise Stitch.Errors.CallArguments, [expected_args, call_args]
end
end
end