blob: 0e52411a4955665585c86acb9faff8e8d36b732c [file] [log] [blame]
-module(meck_on_load_tests).
-include_lib("eunit/include/eunit.hrl").
on_load_test_() ->
{foreach, fun setup/0, fun teardown/1,
[fun no_enable_on_load/0,
fun enable_on_load/0]}.
setup() ->
ok.
teardown(_) ->
meck:unload().
no_enable_on_load() ->
% We _don't_ want on_load to be called. Listen out for it.
register(on_load_listener, self()),
meck:new(meck_on_load_module, [passthrough]),
?assertEqual(pong, meck_on_load_module:ping()),
receive
on_load_called -> erlang:error(unexpected_call_to_on_load)
after 100 ->
% Use a relatively short timeout, because the happy path goes
% through here.
ok
end.
enable_on_load() ->
% We _do_ want on_load to be called.
register(on_load_listener, self()),
meck:new(meck_on_load_module, [passthrough, enable_on_load]),
?assertEqual(pong, meck_on_load_module:ping()),
receive
on_load_called -> ok
after 200 ->
% Use a longer timeout, because testing for not-called is harder,
% and this is the sad path.
erlang:error(expected_call_to_on_load)
end.