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

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

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

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

            var resultPullRequest = await _sut.GetPullRequest("repoName", "owner", 1);

            Assert.AreEqual(1, result.CallCount);

            var args = result.Args[0];

            Assert.Multiple(() =>
            {
                Assert.AreEqual("projects/owner/repos/repoName/pull-requests/1", args.Resource);
                Assert.AreEqual(Method.GET, args.Method);

                Assert.AreEqual("04/03/2017 19:43:51", resultPullRequest.CreatedOn);
                Assert.AreEqual("04/03/2017 19:43:51", resultPullRequest.UpdatedOn);
                Assert.AreEqual(null, resultPullRequest.CloseSourceBranch);
                Assert.AreEqual("* asd\r\n* asd", resultPullRequest.Description);
                Assert.AreEqual("cccccccccccc", resultPullRequest.Title);
                Assert.AreEqual(48, resultPullRequest.Id);
                Assert.AreEqual(PullRequestOptions.OPEN, resultPullRequest.State);
                Assert.AreEqual("refs/heads/cccccccccccc", resultPullRequest.Source.Branch.Name);
                Assert.AreEqual("refs/heads/12", resultPullRequest.Destination.Branch.Name);
            });
        }