mirror of https://github.com/stretchr/testify.git
The mock.IsMethodCallable function is refactored
parent
3a72ffb6d8
commit
9f1c28b404
10
mock/mock.go
10
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 {
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue