Пример #1
0
        public async Task GetAuthors_ShouldCallCorrectUrlAndResult()
        {
            var responseJson = Utilities.LoadFile(Paths.GetEnterpriseDataPath("GetAuthorsResponse.json"));
            var responseData = new NewtonsoftJsonSerializer().Deserialize <EnterpriseIteratorBasedPage <EnterpriseUser> >(responseJson);

            var result = _restClient
                         .Capture()
                         .Args <string, int, QueryString, IEnumerable <EnterpriseUser> >((s, url, limit, queryString) => s.GetAllPages <EnterpriseUser>(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($"projects/owner/repos/reponame/participants", 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("MistyKuuuuuuuu", firstResultAuthor.DisplayName);
                Assert.AreEqual("MistyK", firstResultAuthor.UserName);
                Assert.AreEqual("*****@*****.**", firstResultAuthor.Email);
                Assert.AreEqual("http://localhost:7990/users/mistyk", firstResultAuthor.Links.Self.Href);
            });
        }