public async Task GetPullRequestCommits_ShouldCallCorrectUrlAndGetResult() { var responseJson = Utilities.LoadFile(Paths.GetStandardDataPath("GetPullRequestCommitsResponse.json")); var responseData = new NewtonsoftJsonSerializer().Deserialize <IteratorBasedPage <Commit> >(responseJson); var result = _restClient .Capture() .Args <string, int, QueryString, IEnumerable <Commit> >((s, url, limit, queryString) => s.GetAllPages <Commit>(url, limit, queryString), responseData.Values); var resultData = (await _sut.GetPullRequestCommits("reponame", "owner", 1)).ToList(); Assert.AreEqual(1, result.CallCount); var args = result.Args[0]; Assert.Multiple(() => { Assert.AreEqual("repositories/owner/reponame/pullrequests/1/commits", args.arg1); Assert.AreEqual(50, args.arg2); Assert.IsNull(args.arg3); Assert.AreEqual(responseData.Values.Count, resultData.Count); var firstCommit = resultData.First(); Assert.AreEqual("https://bitbucket.org/account/mistyku/avatar/32/", firstCommit.Author.User.Links.Avatar.Href); Assert.AreEqual("http://url.com/owner/reponame/commits/b6988a77079d7f96127c085b5c34077d24e4f096", firstCommit.CommitHref); Assert.AreEqual("b6988a77079d7f96127c085b5c34077d24e4f096", firstCommit.Hash); Assert.AreEqual("2017-04-07T20:10:54+00:00", firstCommit.Date); Assert.AreEqual("short message", firstCommit.Message); }); }