Fixes #342 - AssertExpectationsForObjects takes *Mock

pull/355/head
Ernesto Jiménez 2016-09-24 18:04:24 +01:00
parent 63b388178e
commit 92787b8c71
2 changed files with 15 additions and 4 deletions

View File

@ -341,17 +341,26 @@ func (m *Mock) Called(arguments ...interface{}) Arguments {
Assertions Assertions
*/ */
type assertExpectationser interface {
AssertExpectations(TestingT) bool
}
// AssertExpectationsForObjects asserts that everything specified with On and Return // AssertExpectationsForObjects asserts that everything specified with On and Return
// of the specified objects was in fact called as expected. // of the specified objects was in fact called as expected.
// //
// Calls may have occurred in any order. // Calls may have occurred in any order.
func AssertExpectationsForObjects(t TestingT, testObjects ...interface{}) bool { func AssertExpectationsForObjects(t TestingT, testObjects ...interface{}) bool {
var success = true
for _, obj := range testObjects { for _, obj := range testObjects {
mockObj := obj.(Mock) if m, ok := obj.(Mock); ok {
success = success && mockObj.AssertExpectations(t) t.Logf("Deprecated mock.AssertExpectationsForObjects(myMock.Mock) use mock.AssertExpectationsForObjects(myMock)")
obj = &m
} }
return success m := obj.(assertExpectationser)
if !m.AssertExpectations(t) {
return false
}
}
return true
} }
// AssertExpectations asserts that everything specified with On and Return was // AssertExpectations asserts that everything specified with On and Return was

View File

@ -727,6 +727,7 @@ func Test_AssertExpectationsForObjects_Helper(t *testing.T) {
mockedService3.Called(3) mockedService3.Called(3)
assert.True(t, AssertExpectationsForObjects(t, mockedService1.Mock, mockedService2.Mock, mockedService3.Mock)) assert.True(t, AssertExpectationsForObjects(t, mockedService1.Mock, mockedService2.Mock, mockedService3.Mock))
assert.True(t, AssertExpectationsForObjects(t, mockedService1, mockedService2, mockedService3))
} }
@ -745,6 +746,7 @@ func Test_AssertExpectationsForObjects_Helper_Failed(t *testing.T) {
tt := new(testing.T) tt := new(testing.T)
assert.False(t, AssertExpectationsForObjects(tt, mockedService1.Mock, mockedService2.Mock, mockedService3.Mock)) assert.False(t, AssertExpectationsForObjects(tt, mockedService1.Mock, mockedService2.Mock, mockedService3.Mock))
assert.False(t, AssertExpectationsForObjects(tt, mockedService1, mockedService2, mockedService3))
} }