diff --git a/test/should_receive_test.rb b/test/should_receive_test.rb index 8cbed9b..e346a6c 100644 --- a/test/should_receive_test.rb +++ b/test/should_receive_test.rb @@ -452,6 +452,31 @@ def test_with_kw_matching end end + def test_with_kw_args_matches_values_separately + FlexMock.use('greeter') do |m| + m.should_receive(:hi).with_kw_args(a: on { |v| v == 1 }, b: 2).once + m.hi(a: 1, b: 2) + end + end + + def test_with_kw_args_raises_if_an_expected_key_is_missing + assert_raises(FlexMock::CheckFailedError) do + FlexMock.use('greeter') do |m| + m.should_receive(:hi).with_kw_args(a: on { |v| v == 1 }, b: 2).once + m.hi(a: 1) + end + end + end + + def test_with_kw_args_raises_if_there_is_an_actual_key_too_much + assert_raises(FlexMock::CheckFailedError) do + FlexMock.use('greeter') do |m| + m.should_receive(:hi).with_kw_args(a: on { |v| v == 1 }, b: 2).once + m.hi(a: 1, b: 2, c: 3) + end + end + end + def test_with_kw_not_matching FlexMock.use('greeter') do |m| m.should_receive(:hi).with(1, a: 2)