I am trying to use the AAA syntax in Rhino Mocks with VB.Net to validate that a method was called only one time. I can't seem to get it right. With this code, if the repository is called twice, it returns nothing on the second call, and the test passes. I would have expected the test to fail when VerifyAllExpectations was called.
<TestMethod()>
Public Sub GetDataCallsRepositoryOneTime()
Dim repository As IDataRepository = MockRepository.GenerateMock(Of IDataRepository)()
Dim cacheRepository As New CachingDataRepository(repository)
Dim results1 As IEnumerable(Of DataItem)
Dim results2 As IEnumerable(Of DataItem)
'verify that the base repository was asked for its data one time only
repository.Expect(Function(x) x.GetData(1)).Return(GetSampleData).Repeat.Once()
results1 = cacheRepository.GetData(1)
results2 = cacheRepository.GetData(1)
sdr.VerifyAllExpectations()
End Sub