Exemplo n.º 1
0
        public async Task GetCommitsRange_ShouldCallCorrectUrlAndGetResult()
        {
            var sourceBranch = new Branch()
            {
                Name = "sourcebranch", Target = new Commit()
                {
                    Hash = "firstHash"
                }
            };
            var destBranch = new Branch()
            {
                Name = "destBranch", Target = new Commit()
                {
                    Hash = "secondHash"
                }
            };

            var responseJson = Utilities.LoadFile(Paths.GetStandardDataPath("GetCommitsRangeResponse.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.GetCommitsRange("reponame", "owner", sourceBranch, destBranch)).ToList();

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.Multiple(() =>
            {
                Assert.AreEqual("repositories/owner/reponame/commits/sourcebranch", args.arg1);
                Assert.AreEqual(50, args.arg2);
                Assert.AreEqual("?exclude=destBranch", args.arg3.ToString());

                var firstCommit = resultData[0];

                Assert.AreEqual("NEWFILE created online with Bitbucket", firstCommit.Message);
                Assert.AreEqual("a35d9f3a6642da77a66674fb77cbb9d4fae3f8c1", firstCommit.Hash);
            });
        }