public async Task ApprovePullRequest_ShouldReturnValidParticipant() { var responseJson = Utilities.LoadFile(Paths.GetStandardDataPath("ApprovePullRequestResponse.json")); var responseData = new NewtonsoftJsonSerializer().Deserialize <Participant>(responseJson); var response = MockRepository.GenerateMock <IRestResponse <Participant> >(); response.Stub(x => x.Data).Return(responseData); var result = _restClient .Capture() .Args <IRestRequest, IRestResponse <Participant> >((s, req) => s.ExecuteTaskAsync <Participant>(req), response); var participant = await _sut.ApprovePullRequest("repoName", "owner", 1); Assert.AreEqual(1, result.CallCount); var args = result.Args[0]; Assert.Multiple(() => { Assert.AreEqual("repositories/owner/repoName/pullrequests/1/approve", args.Resource); Assert.AreEqual(Method.POST, args.Method); Assert.AreEqual(true, participant.Approved); Assert.AreEqual("PARTICIPANT", participant.Role); Assert.AreEqual("mistyku", participant.User.UserName); Assert.AreEqual("Zibi", participant.User.DisplayName); }); }