public FluentMock <T> ReturnsInSequence(params TResult[] values) { var returner = new InSequenceReturner <TResult>(values); switch (m_numArgs) { case 0: m_setup.Returns(returner.NextValue); break; case 1: m_setup.Returns(new Func <Object, TResult>((arg0) => returner.NextValue())); break; case 2: m_setup.Returns(new Func <Object, Object, TResult>((arg0, arg1) => returner.NextValue())); break; case 3: m_setup.Returns(new Func <Object, Object, Object, TResult>((arg0, arg1, arg2) => returner.NextValue())); break; case 4: m_setup.Returns(new Func <Object, Object, Object, Object, TResult>((arg0, arg1, arg2, arg3) => returner.NextValue())); break; case 5: m_setup.Returns(new Func <Object, Object, Object, Object, Object, TResult>((arg0, arg1, arg2, arg3, arg4) => returner.NextValue())); break; case 6: m_setup.Returns(new Func <Object, Object, Object, Object, Object, Object, TResult>((arg0, arg1, arg2, arg3, arg4, arg5) => returner.NextValue())); break; default: throw new TestFirstException("This is crazy, why do you have methods with more than 6 args? Currently only support up to 6. Time to refactor!"); } return(m_mock); }
public FluentMock<T> ReturnsInSequence(params TProperty[] values) { var returner = new InSequenceReturner<TProperty>(values); return Returns(returner.NextValue); }