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.github.mock.MkGitHub;
8   import com.jcabi.http.Request;
9   import com.jcabi.http.mock.MkAnswer;
10  import com.jcabi.http.mock.MkContainer;
11  import com.jcabi.http.mock.MkGrizzlyContainer;
12  import com.jcabi.http.request.ApacheRequest;
13  import jakarta.json.Json;
14  import jakarta.json.JsonObject;
15  import java.io.IOException;
16  import java.net.HttpURLConnection;
17  import org.hamcrest.MatcherAssert;
18  import org.hamcrest.Matchers;
19  import org.junit.jupiter.api.Test;
20  import org.junit.jupiter.api.extension.ExtendWith;
21  
22  /**
23   * Testcase for RtCommits.
24   * @since 0.1
25   * @checkstyle MultipleStringLiterals (500 lines)
26   */
27  @ExtendWith(RandomPort.class)
28  final class RtCommitsTest {
29  
30      /**
31       * The rule for skipping test if there's BindException.
32       * @checkstyle VisibilityModifierCheck (3 lines)
33       */
34      @Test
35      void createsCommit() throws IOException {
36          try (
37              MkContainer container = new MkGrizzlyContainer().next(
38                  new MkAnswer.Simple(
39                      HttpURLConnection.HTTP_CREATED,
40                      "{\"sha\":\"0abcd89jcabitest\"}"
41                  )
42              ).start(RandomPort.port())) {
43              final Commits commits = new RtCommits(
44                  new ApacheRequest(container.home()),
45                  new MkGitHub().randomRepo()
46              );
47              final JsonObject author = Json.createObjectBuilder()
48                  .add("name", "Scott").add("email", "scott@gmail.com")
49                  .add("date", "2011-06-17T14:53:35-07:00").build();
50              final JsonObject input = Json.createObjectBuilder()
51                  .add("message", "initial version")
52                  .add("author", author).build();
53              final Commit commit = commits.create(input);
54              MatcherAssert.assertThat(
55                  "Object is not of expected type",
56                  commit,
57                  Matchers.instanceOf(Commit.class)
58              );
59              MatcherAssert.assertThat(
60                  "Values are not equal",
61                  container.take().method(),
62                  Matchers.equalTo(Request.POST)
63              );
64              MatcherAssert.assertThat(
65                  "Values are not equal",
66                  commit.sha(),
67                  Matchers.equalTo("0abcd89jcabitest")
68              );
69          }
70      }
71  }