%%%============================================================================ %%% Licensed under the Apache License, Version 2.0 (the "License"); %%% you may not use this file except in compliance with the License. %%% You may obtain a copy of the License at %%% %%% http://www.apache.org/licenses/LICENSE-2.0 %%% %%% Unless required by applicable law or agreed to in writing, software %%% distributed under the License is distributed on an "AS IS" BASIS, %%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %%% See the License for the specific language governing permissions and %%% limitations under the License. %%%============================================================================ -module(meck_matcher_tests). -include_lib("eunit/include/eunit.hrl"). match_predicate_test() -> Matcher = meck_matcher:new(fun(X) -> X == 1000 end), ?assertMatch(true, meck_matcher:match_ignore(1000, Matcher)), ?assertMatch(false, meck_matcher:match_ignore(1001, Matcher)). match_predicate_not_bool_test() -> Matcher = meck_matcher:new(fun(1000) -> true; (Other) -> Other end), ?assertMatch(true, meck_matcher:match_ignore(1000, Matcher)), ?assertMatch(false, meck_matcher:match_ignore(1001, Matcher)). match_hamcrest_test() -> Matcher = meck_matcher:new(hamcrest_matchers:equal_to(1000)), ?assertMatch(true, meck_matcher:match_ignore(1000, Matcher)), ?assertMatch(false, meck_matcher:match_ignore(1001, Matcher)). match_not_matcher_test() -> ?assertMatch(true, meck_matcher:match_ignore(something, '_')), ?assertMatch(true, meck_matcher:match_ignore({1, [2, 3], undefined}, {1, [2, 3], undefined})). predicate_wrong_arity_test() -> Predicate = fun(X, Y) -> X == Y end, ?assertError(_, meck_matcher:new(Predicate)). is_matcher_test() -> ?assertMatch(true, meck_matcher:is_matcher(meck_matcher:new(fun(X) -> X == 1000 end))), ?assertMatch(false, meck_matcher:is_matcher(fun(X) -> X == 1000 end)), ?assertMatch(true, meck_matcher:is_matcher(meck_matcher:new(hamcrest_matchers:equal_to(1000)))), ?assertMatch(false, meck_matcher:is_matcher(hamcrest_matchers:equal_to(1000))), ?assertMatch(false, meck_matcher:is_matcher(blah)).