private TestRequest CreateTestRequestWthStatus(RequestStatus desiredStatus) { var request = new TestRequest(); if (desiredStatus == RequestStatus.New) { return(request); } request.Submit(); switch (desiredStatus) { case RequestStatus.Submitted: break; case RequestStatus.Confirmed: request.Confirm(); break; case RequestStatus.Cancelled: request.Cancel(); break; case RequestStatus.Approved: request.Confirm(); request.Approve(); break; case RequestStatus.Rejected: request.Confirm(); request.Disapprove(); break; case RequestStatus.Concluded: request.Confirm(); request.Disapprove(); request.Conclude(); break; case RequestStatus.Removed: request.Confirm(); request.Disapprove(); request.Conclude(); request.Remove(); break; default: // New throws exception throw new ArgumentOutOfRangeException(nameof(desiredStatus), desiredStatus, null); } return(request); }