Ejemplo n.º 1
0
        public async Task GetBranches_ShouldCallCorrectUrlAndGetResult()
        {
            var responseDefaultBranchJson = Utilities.LoadFile(Paths.GetStandardDataPath("GetDefaultBranchResponse.json"));
            var responseDefaultBranchData = new NewtonsoftJsonSerializer().Deserialize <Branch>(responseDefaultBranchJson);
            var response = MockRepository.GenerateMock <IRestResponse <Branch> >();

            response.Stub(x => x.Data).Return(responseDefaultBranchData);

            var responseJson = Utilities.LoadFile(Paths.GetStandardDataPath("GetBranchesResponse.json"));
            var responseData = new NewtonsoftJsonSerializer().Deserialize <IteratorBasedPage <Branch> >(responseJson);

            var result = _restClient
                         .Capture()
                         .Args <string, int, QueryString, IEnumerable <Branch> >((s, url, limit, queryString) => s.GetAllPages <Branch>(url, limit, queryString), responseData.Values);

            var defaultBranchResult = _versionOneClient
                                      .Capture()
                                      .Args <IRestRequest, IRestResponse <Branch> >((s, req) => s.ExecuteTaskAsync <Branch>(req), response);

            var resultData = (await _sut.GetBranches("reponame", "owner")).ToList();

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.Multiple(() =>
            {
                Assert.AreEqual("repositories/owner/reponame/refs/branches", args.arg1);
                Assert.AreEqual(50, args.arg2);
                Assert.IsNull(args.arg3);

                var firstBranch = resultData[0];

                Assert.AreEqual(false, firstBranch.IsDefault);
                Assert.AreEqual("ASD-ASD", firstBranch.Name);
                Assert.AreEqual(null, firstBranch.Target.CommitHref);
                Assert.AreEqual("f2fd0045b8ff7ed824b7cd84ae2c9f0d9d2ec91c", firstBranch.Target.Hash);
            });
        }