Ejemplo n.º 1
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);
            }
        }
Ejemplo n.º 2
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");
            }
        }
Ejemplo n.º 3
0
        public async void GetStatusesForCommit()
        {
            string gitlabServer = "http://fake-gitlab.com/";
            string projectId    = "id";
            string sha          = "6104942438c14ec7bd21c6cd5bd995272b3faff6";
            string Name         = "name1";
            string url          = $"/projects/id/repository/commits/{sha}/statuses?name={Name}&per_page=100&page=1";

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

            A.CallTo(() => handler.SendAsync(HttpMethod.Get, url))
            .ReturnsLazily(() => HttpResponseMessageProducer.Success(
                               $"[  {{\"id\":1,\"sha\":\"{sha}\",\"ref \":\"\",\"status\":\"success\",\"name\":\"name1\",\"target_url\":\"target_url1\",\"description\":\"success\",\"created_at\":\"2020-04-08T11:57:49.136+05:30\",\"started_at\":\"2020-04-08T11:58:00.362+05:30\",\"finished_at\":\"2020-04-08T11:58:06.121+05:30\",\"allow_failure\":false,\"coverage\":null,\"author\":{{\"id\":1,\"name\":\"name\",\"username\":\"username\",\"state\":\"active\",\"avatar_url\":\"avatar_url1\",\"web_url\":\"web_url1\"}} }},{{\"id\":2,\"sha\":\"{sha}\",\"ref \":\"\",\"status\":\"success\",\"name\":\"name2\",\"target_url\":\"target_url2\",\"description\":\"success\",\"created_at\":\"2020-04-08T11:57:49.136+05:30\",\"started_at\":\"2020-04-08T11:58:00.362+05:30\",\"finished_at\":\"2020-04-08T11:58:06.121+05:30\",\"allow_failure\":false,\"coverage\":null,\"author\":{{\"id\":2,\"name\":\"name2\",\"username\":\"username2\",\"state\":\"activ2\",\"avatar_url2\":\"avatar_url2\",\"web_url\":\"web_url2\"}} }}]"));
            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 statusesFromClient = await commitsClient.GetStatusesAsync(projectId, sha, o => o.Name = Name);

                statusesFromClient[0].Status.Should().BeEquivalentTo("success");
                statusesFromClient[0].Name.Should().BeEquivalentTo("name1");
                statusesFromClient[0].Target_url.Should().BeEquivalentTo("target_url1");
                statusesFromClient[0].Id.Should().BeEquivalentTo("1");

                statusesFromClient[1].Status.Should().BeEquivalentTo("success");
                statusesFromClient[1].Name.Should().BeEquivalentTo("name2");
                statusesFromClient[1].Target_url.Should().BeEquivalentTo("target_url2");
                statusesFromClient[1].Id.Should().BeEquivalentTo("2");
            }
        }
Ejemplo n.º 4
0
        public async void GetDiffsForCommit()
        {
            string gitlabServer = "http://fake-gitlab.com/";
            string projectId    = "id";
            string sha          = "6104942438c14ec7bd21c6cd5bd995272b3faff6";
            string url          = $"/projects/id/repository/commits/{sha}/diff?per_page=100&page=1";

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

            A.CallTo(() => handler.SendAsync(HttpMethod.Get, url))
            .ReturnsLazily(() => HttpResponseMessageProducer.Success(
                               $"[  {{ \"diff\": \"diff1\", \"new_path\": \"new_path1\", \"old_path\": \"old_path1\", \"a_mode\": \"a_mode1\", \"b_mode\": \"b_mode1\", \"new_file\": \"true\", \"renamed_file\": \"false\", \"deleted_file\": \"false\" }},\n  {{\"diff\": \"diff2\", \"new_path\": \"new_path2\", \"old_path\": \"old_path2\", \"a_mode\": \"a_mode2\", \"b_mode\": \"b_mode2\", \"new_file\": \"false\", \"renamed_file\": \"true\", \"deleted_file\": \"true\"}}]"));
            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 diffsFromClient = await commitsClient.GetDiffsAsync(projectId, sha);

                diffsFromClient[0].DiffText.Should().BeEquivalentTo("diff1");
                diffsFromClient[0].NewPath.Should().BeEquivalentTo("new_path1");
                diffsFromClient[0].OldPath.Should().BeEquivalentTo("old_path1");
                diffsFromClient[0].AMode.Should().BeEquivalentTo("a_mode1");
                diffsFromClient[0].BMode.Should().BeEquivalentTo("b_mode1");
                diffsFromClient[0].IsNewFile.Should().BeTrue();
                diffsFromClient[0].IsRenamedFile.Should().BeFalse();
                diffsFromClient[0].IsDeletedFile.Should().BeFalse();

                diffsFromClient[1].DiffText.Should().BeEquivalentTo("diff2");
                diffsFromClient[1].NewPath.Should().BeEquivalentTo("new_path2");
                diffsFromClient[1].OldPath.Should().BeEquivalentTo("old_path2");
                diffsFromClient[1].AMode.Should().BeEquivalentTo("a_mode2");
                diffsFromClient[1].BMode.Should().BeEquivalentTo("b_mode2");
                diffsFromClient[1].IsNewFile.Should().BeFalse();
                diffsFromClient[1].IsRenamedFile.Should().BeTrue();
                diffsFromClient[1].IsDeletedFile.Should().BeTrue();
            }
        }