<p>I know I can do this:</p>

<pre><code>IDateTimeFactory dtf = MockRepository.GenerateStub&lt;IDateTimeFactory&gt;();
dtf.Now = new DateTime();
DoStuff(dtf); // dtf.Now can be called arbitrary number of times, will always return the same value
dtf.Now = new DateTime()+new TimeSpan(0,1,0);  // 1 minute later
DoStuff(dtf); //ditto from above
</code></pre>

<p>What if instead of <strong>IDateTimeFactory.Now</strong> being a property it is a method <strong>IDateTimeFactory.GetNow()</strong>, how do I do the same thing?</p>

<p>As per Judah's suggestion below I have rewritten my SetDateTime helper method as follows:</p>

<pre><code>    private void SetDateTime(DateTime dt) {
        Expect.Call(_now_factory.GetNow()).Repeat.Any();
        LastCall.Do((Func&lt;DateTime&gt;)delegate() { return dt; });
    }
</code></pre>

<p>but it still throws "The result for ICurrentDateTimeFactory.GetNow(); has already been setup." errors.</p>

<p>Plus its still not going to work with a stub....</p>

You can use Expect.Call to accomplish this. Here's an example using the record/playback model:
```
```
using (mocks.Record())
{
   Expect.Call(s.GetSomething()).Return("ABC"); // 1st call will return ABC
   Expect.Call(s.GetSomething()).Return("XYZ"); // 2nd call will return XYZ
}
using (mocks.Playback())
{
   DoStuff(s);
   DoStuff(s);
}
```
```