stiank81
stiank81

Reputation: 25686

RhinoMocks - Specifying return for functions called later

Using RhinoMocks - how can I say "whenever some function is called from now on - it should return some value".

I'd like to say something like this:

fakeCalculator.WhenCalled(factory => factory.AddNumbers(1, 2)).Return(3); 

And then - when the AddNumbers function is called with 1 and 2 - it will return 3. I.e. I want to define this ahead, and then trigger the function. The reason is that I depend on this behavior for my mock which is injected into another class - which will again call the AddNumbers function.

Upvotes: 1

Views: 170

Answers (1)

jason
jason

Reputation: 241641

Something like this:

MockRepository mocks = new MockRepository();
IFactory factory = mocks.DynamicMock<IFactory>();

using(mocks.Record()) {
    factory.AddNumbers(1, 2);
    LastCall.Return(3);

    factory.AddNumbers(2, 3);
    LastCall.Return(5);
}

int result = factory.AddNumbers(1, 2);
Assert.AreEqual(3, result);

result = factory.AddNumbers(2, 3);
Assert.AreEqual(5, result);

Upvotes: 1

Related Questions