public async Task GetAuthors_ShouldCallCorrectUrlAndResult() { var responseJson = Utilities.LoadFile(Paths.GetStandardDataPath("GetAuthorsResponse.json")); var responseData = new NewtonsoftJsonSerializer().Deserialize <IteratorBasedPage <User> >(responseJson); var result = _internalClient .Capture() .Args <string, int, QueryString, IEnumerable <User> >((s, url, limit, queryString) => s.GetAllPages <User>(url, limit, queryString), responseData.Values); var resultAuthors = (await _sut.GetAuthors("reponame", "owner")).ToList(); Assert.AreEqual(1, result.CallCount); var args = result.Args[0]; Assert.AreEqual("repositories/owner/reponame/pr-authors/", args.arg1); Assert.AreEqual(100, args.arg2); Assert.IsNull(args.arg3); var firstResultAuthor = resultAuthors.First(); Assert.Multiple(() => { Assert.AreEqual(responseData.Values.Count, resultAuthors.Count); Assert.AreEqual("bitbucketvsextension", firstResultAuthor.DisplayName); Assert.AreEqual("bitbucketvsextension", firstResultAuthor.UserName); Assert.AreEqual("https://bitbucket.org/!api/2.0/users/bitbucketvsextension", firstResultAuthor.Links.Self.Href); }); }