diff --git a/mock/mock.go b/mock/mock.go index 4deed04..6be8937 100644 --- a/mock/mock.go +++ b/mock/mock.go @@ -536,7 +536,6 @@ func (m *Mock) IsMethodCallable(t TestingT, methodName string, arguments ...inte m.mutex.Lock() defer m.mutex.Unlock() - var isCallable = false for _, v := range m.ExpectedCalls { if v.Method != methodName { continue @@ -548,16 +547,15 @@ func (m *Mock) IsMethodCallable(t TestingT, methodName string, arguments ...inte continue } if isArgsEqual(v.Arguments, arguments) { - isCallable = true - break + return true } } - return isCallable + return false } -// Compares arguments +// isArgsEqual compares arguments func isArgsEqual(expected Arguments, args []interface{}) bool { - if len(args) != len(args) { + if len(expected) != len(args) { return false } for i, v := range args { diff --git a/mock/mock_test.go b/mock/mock_test.go index f7fed35..bfa123f 100644 --- a/mock/mock_test.go +++ b/mock/mock_test.go @@ -1146,27 +1146,27 @@ func Test_Mock_AssertNotCalled(t *testing.T) { func Test_Mock_IsMethodCallable(t *testing.T) { var mockedService = new(TestExampleImplementation) - arg := []Call{{Repeatability: 1}, {Repeatability: 1}} - arg2 := []Call{{Repeatability: 1}, {Repeatability: 2}} + arg := []Call{{Repeatability: 1}, {Repeatability: 2}} + arg2 := []Call{{Repeatability: 1}, {Repeatability: 1}} arg3 := []Call{{Repeatability: 1}, {Repeatability: 1}} - mockedService.On("Test_Mock_IsMethodCallable", arg).Return(true).Twice() - - assert.False(t, mockedService.IsMethodCallable(t, "Test_Mock_IsMethodCallable", arg2)) - assert.True(t, mockedService.IsMethodCallable(t, "Test_Mock_IsMethodCallable", arg)) - assert.True(t, mockedService.IsMethodCallable(t, "Test_Mock_IsMethodCallable", arg3)) - - mockedService.MethodCalled("Test_Mock_IsMethodCallable", arg) - mockedService.MethodCalled("Test_Mock_IsMethodCallable", arg) + mockedService.On("Test_Mock_IsMethodCallable", arg2).Return(true).Twice() assert.False(t, mockedService.IsMethodCallable(t, "Test_Mock_IsMethodCallable", arg)) + assert.True(t, mockedService.IsMethodCallable(t, "Test_Mock_IsMethodCallable", arg2)) + assert.True(t, mockedService.IsMethodCallable(t, "Test_Mock_IsMethodCallable", arg3)) + + mockedService.MethodCalled("Test_Mock_IsMethodCallable", arg2) + mockedService.MethodCalled("Test_Mock_IsMethodCallable", arg2) + + assert.False(t, mockedService.IsMethodCallable(t, "Test_Mock_IsMethodCallable", arg2)) } func TestIsArgsEqual(t *testing.T) { var expected = Arguments{5, 3, 4, 6, 7, 2} - var args = make([]interface{}, 6) - for i := 0; i < len(expected); i++ { - args[i] = expected[i] + var args = make([]interface{}, 5) + for i := 1; i < len(expected); i++ { + args[i-1] = expected[i] } args[2] = expected[1] assert.False(t, isArgsEqual(expected, args))