View Javadoc
1   /*
2    * SPDX-FileCopyrightText: Copyright (c) 2013-2025 Yegor Bugayenko
3    * SPDX-License-Identifier: MIT
4    */
5   package com.jcabi.github;
6   
7   import com.jcabi.http.request.FakeRequest;
8   import jakarta.json.Json;
9   import java.io.IOException;
10  import org.hamcrest.MatcherAssert;
11  import org.hamcrest.Matchers;
12  import org.junit.jupiter.api.Test;
13  
14  /**
15   * Test case for {@link CommitsComparison}.
16   * @since 0.8
17   * @checkstyle MultipleStringLiterals (75 lines)
18   */
19  final class CommitsComparisonTest {
20  
21      @Test
22      void fetchesCommits() throws IOException {
23          final String sha = "6dcb09b5b57875f334f61aebed695e2e4193db50";
24          final CommitsComparison.Smart comparison = new CommitsComparison.Smart(
25              new RtCommitsComparison(
26                  new FakeRequest().withBody(
27                      Json.createObjectBuilder()
28                          .add("base_commit", Json.createObjectBuilder())
29                          .add(
30                              "commits",
31                              Json.createArrayBuilder()
32                                  .add(Json.createObjectBuilder().add("sha", sha))
33                          )
34                          .add("files", Json.createArrayBuilder())
35                          .build().toString()
36                  ),
37                  CommitsComparisonTest.repo(),
38                  "6dcb09b5b57875f334f61aebed695e2e4193db51",
39                  "6dcb09b5b57875f334f61aebed695e2e4193db52"
40              )
41          );
42          MatcherAssert.assertThat(
43              "Values are not equal",
44              comparison.commits().iterator().next().sha(),
45              Matchers.equalTo(sha)
46          );
47      }
48  
49      @Test
50      void fetchesFiles() throws IOException {
51          final String filename = "file.txt";
52          final CommitsComparison.Smart comparison = new CommitsComparison.Smart(
53              new RtCommitsComparison(
54                  new FakeRequest().withBody(
55                      Json.createObjectBuilder()
56                          .add("base_commit", Json.createObjectBuilder())
57                          .add("commits", Json.createArrayBuilder())
58                          .add(
59                              "files",
60                              Json.createArrayBuilder().add(
61                                  Json.createObjectBuilder()
62                                      .add("filename", filename)
63                              )
64                          )
65                          .build().toString()
66                  ),
67                  CommitsComparisonTest.repo(),
68                  "6dcb09b5b57875f334f61aebed695e2e4193db53",
69                  "6dcb09b5b57875f334f61aebed695e2e4193db54"
70              )
71          );
72          MatcherAssert.assertThat(
73              "Values are not equal",
74              new FileChange.Smart(
75                  comparison.files().iterator().next()
76              ).filename(),
77              Matchers.equalTo(filename)
78          );
79      }
80  
81      /**
82       * Return repo for tests.
83       * @return Repository
84       */
85      private static Repo repo() {
86          return new RtGitHub().repos()
87              .get(new Coordinates.Simple("user", "repo"));
88      }
89  
90  }