Пример #1
0
        public async void GetCommitsByRefName()
        {
            string gitlabServer = "http://fake-gitlab.com/";
            string projectId    = "id";
            string refName      = "6104942438c14ec7bd21c6cd5bd995272b3faff6";
            string url          = $"/projects/id/repository/commits?ref_name={refName}&per_page=100&page=1";

            var handler = A.Fake <MockHandler>(opt => opt.CallsBaseMethods());

            A.CallTo(() => handler.SendAsync(HttpMethod.Get, url))
            .ReturnsLazily(() => HttpResponseMessageProducer.Success(
                               $"[  {{ \"id\": \"id1\",}},\n  {{\"id\": \"id2\",}}]"));
            using (var client = new HttpClient(handler)
            {
                BaseAddress = new Uri(gitlabServer)
            })
            {
                var gitlabHttpFacade = new GitLabHttpFacade(new RequestsJsonSerializer(), client);
                var commitsClient    = new CommitsClient(gitlabHttpFacade, new CommitQueryBuilder(), new CommitRefsQueryBuilder(), new CommitStatusesQueryBuilder());

                var commitsFromClient = await commitsClient.GetAsync(projectId, o => o.RefName = refName);

                commitsFromClient[0].Id.Should().BeEquivalentTo("id1");
                commitsFromClient[1].Id.Should().BeEquivalentTo("id2");
            }
        }
Пример #2
0
        public async void GetCommitBySha()
        {
            string gitlabServer = "http://fake-gitlab.com/";
            string projectId    = "id";
            string sha          = "6104942438c14ec7bd21c6cd5bd995272b3faff6";
            string url          = $"/projects/{projectId}/repository/commits/{sha}";

            var handler = A.Fake <MockHandler>(opt => opt.CallsBaseMethods());

            A.CallTo(() => handler.SendAsync(HttpMethod.Get, url))
            .ReturnsLazily(() => HttpResponseMessageProducer.Success(
                               $"{{\"id\": \"{sha}\", }}"));
            using (var client = new HttpClient(handler)
            {
                BaseAddress = new Uri(gitlabServer)
            })
            {
                var gitlabHttpFacade = new GitLabHttpFacade(new RequestsJsonSerializer(), client);
                var commitsClient    = new CommitsClient(gitlabHttpFacade, new CommitQueryBuilder(), new CommitRefsQueryBuilder(), new CommitStatusesQueryBuilder());

                var commitFromClient = await commitsClient.GetAsync(projectId, sha);

                commitFromClient.Id.Should().BeEquivalentTo(sha);
            }
        }