SetupSequence in Moq

c#, mocking, moq, unit-testing

Solution

That's not particulary fancy, but I think it would work:

    var firstTime = true;

    mock.Setup(x => x.GetNumber())
        .Returns(()=>
                        {
                            if(!firstTime)
                                return 1;

                            firstTime = false;
                            return 0;
                        });

Problem

I want a mock that returns `0` the first time, then returns `1` anytime the method is called thereafter. The problem is that if the method is called 4 times, I have to write: ``` mock.SetupSequence(x => x.GetNumber()) .Returns(0) .Returns(1) .Returns(1) .Returns(1); ``` Otherwise, the method returns null. Is there any way to write that, after the initial call, the method returns `1`?

Original source