I'll take a peek and get in there. I'm sure by the time I get in there someone else will solve it.
On Mon, Aug 24, 2009 at 1:02 AM, Ayende Rahien <[email protected]> wrote: > Tim,There is a bug all right. The default behavior now is Repeat.Any > If it wasn't, I would say that it is expected, since only the first call is > expected. But 1 & 3 should be the same. > > > On Mon, Aug 24, 2009 at 2:20 AM, Tim Barcz <[email protected]> wrote: > >> There seems to be a bug in the code below however I am not sure what the >> "appropriate" behavior should be. (I came across this about a month ago >> digging into a problem on this board). I am willing to attempt a fix if >> there is one needed and I know what the proper behavior should be. The code >> is very simple and provided below. >> >> I'm testing what the difference between Stub and Expect calls are on mocks >> and what happens when you call. The output for the code below returns >> (you'll notice a "hole) where "mockFoo called" should be printed: >> >> mockFoo called >>> >>> mockFoo2 called >>> mockFoo2 called >>> mockFoo2 called >>> mockFoo2 called >> >> >> *At this point I'm not sure what the "correct" behavior should be. >> Should Expect(<method) only set up a single-use return? Is there a bug >> here?* >> >> [Test] >> public void HowManyTimesCanAFakeBeCalledAndReturnTheSameValue() >> { >> // The interesting thing here is that the first mock (mockFoo) does is >> only good for one call. >> // Something about the Arg<string>.Is.Anything causes the return value >> to be good for only one call >> // this seems to be a bug when compared to other implementations (Stub >> allows multiple calls on the object >> // while returning the same value) >> var mockFoo = MockRepository.GenerateMock<IFoo>(); >> var mockFoo2 = MockRepository.GenerateMock<IFoo>(); >> var mockFoo3 = MockRepository.GenerateMock<IFoo>(); >> >> mockFoo.Expect(x => x.Method(Arg<string>.Is.Anything)).Return("mockFoo >> called"); >> mockFoo2.Expect(x => >> x.Method(null)).IgnoreArguments().Return("mockFoo2 called"); >> mockFoo3.Expect(x => >> x.Method(Arg<string>.Is.Anything)).Return("mockFoo3 called").Repeat.Any(); >> >> Debug.WriteLine(mockFoo.Method("hello")); >> Debug.WriteLine(mockFoo.Method("hello")); >> >> Debug.WriteLine(mockFoo2.Method("hello")); >> Debug.WriteLine(mockFoo2.Method("hello")); >> >> Debug.WriteLine(mockFoo2.Method("hello")); >> Debug.WriteLine(mockFoo2.Method("hello")); >> } >> >> public interface IFoo >> { >> string Method(string arg); >> } >> >> >> -- >> Tim Barcz >> ASPInsider >> http://timbarcz.devlicio.us >> http://www.twitter.com/timbarcz >> >> >> >> > > > > -- Tim Barcz ASPInsider http://timbarcz.devlicio.us http://www.twitter.com/timbarcz --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino.Mocks" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rhinomocks?hl=en -~----------~----~----~----~------~----~------~--~---
