Did you mean to call mockFoo3 in the third pair of calls?
Or am I misunderstanding?

On Aug 24, 10:06 pm, Tim Barcz <[email protected]> wrote:
> 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
> ASPInsiderhttp://timbarcz.devlicio.ushttp://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
-~----------~----~----~----~------~----~------~--~---

Reply via email to