public async Task GetRepositoryUsers_ShouldCallCorrectUrlAndGetResult()
        {
            var responseJson = Utilities.LoadFile(Paths.GetStandardDataPath("GetRepositoryUsersResponse.json"));
            var responseData = new NewtonsoftJsonSerializer().Deserialize <List <User> >(responseJson);

            var response = MockRepository.GenerateMock <IRestResponse <List <User> > >();

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

            var result = _webClient
                         .Capture()
                         .Args <IRestRequest, IRestResponse <List <User> > >(
                (s, req) => s.ExecuteTaskAsync <List <User> >(req), response);

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

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.Multiple(() =>
            {
                Assert.AreEqual("mentions/repositories/owner/reponame", args.Resource);
                Assert.AreEqual(Method.GET, args.Method);


                var firstUser = resultData.First();

                Assert.AreEqual("Zibi", firstUser.DisplayName);
                Assert.AreEqual(null, firstUser.Email);
                Assert.AreEqual("mistyku", firstUser.UserName);
            });
        }
        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);
            });
        }
Exemplo n.º 3
0
        public async Task CreateRepository_ShouldCallCorrectUrlAndMethod()
        {
            var inputRepository = new Repository()
            {
                IsPrivate = true,
                Name      = "Test111"
            };


            var responseJson = Utilities.LoadFile(Paths.GetStandardDataPath("CreateRepositoryResponse.json"));
            var responseData = new NewtonsoftJsonSerializer().Deserialize <Repository>(responseJson);

            var response = MockRepository.GenerateMock <IRestResponse <Repository> >();

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

            var result = _restClient
                         .Capture()
                         .Args <IRestRequest, IRestResponse <Repository> >((s, req) => s.ExecuteTaskAsync <Repository>(req), response);

            var repository = await _sut.CreateRepository(inputRepository, false);

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.Multiple(() =>
            {
                Assert.AreEqual("repositories/Login/Test111", args.Resource);
                Assert.AreEqual(Method.POST, args.Method);

                var body             = args.Parameters.First(x => x.Type == ParameterType.RequestBody);
                var expectedJsonBody = Utilities.LoadFile(Paths.GetStandardDataPath("CreateRepositoryRequest.json"));

                Assert.AreEqual(expectedJsonBody, body.Value.ToString());

                Assert.AreEqual("terere", repository.Name);
                Assert.AreEqual(true, repository.IsPrivate);
            });
        }
Exemplo n.º 4
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);
            });
        }
        public async Task ApprovePullRequest_ShouldReturnValidParticipant()
        {
            var responseJson = Utilities.LoadFile(Paths.GetStandardDataPath("ApprovePullRequestResponse.json"));
            var responseData = new NewtonsoftJsonSerializer().Deserialize <Participant>(responseJson);

            var response = MockRepository.GenerateMock <IRestResponse <Participant> >();

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

            var result = _restClient
                         .Capture()
                         .Args <IRestRequest, IRestResponse <Participant> >((s, req) => s.ExecuteTaskAsync <Participant>(req), response);

            var participant = await _sut.ApprovePullRequest("repoName", "owner", 1);

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.Multiple(() =>
            {
                Assert.AreEqual("repositories/owner/repoName/pullrequests/1/approve", args.Resource);
                Assert.AreEqual(Method.POST, args.Method);

                Assert.AreEqual(true, participant.Approved);
                Assert.AreEqual("PARTICIPANT", participant.Role);
                Assert.AreEqual("mistyku", participant.User.UserName);
                Assert.AreEqual("Zibi", participant.User.DisplayName);
            });
        }