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); }); }
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); }); }
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); }); }