1
2
3
4
5 package com.jcabi.github.mock;
6
7 import com.jcabi.github.Coordinates;
8 import com.jcabi.github.Repo;
9 import java.io.IOException;
10 import org.hamcrest.MatcherAssert;
11 import org.hamcrest.Matchers;
12 import org.junit.jupiter.api.Test;
13 import org.xembly.Directives;
14
15
16
17
18
19 final class MkRepoCommitTest {
20
21
22
23
24 private static final String SHA1 =
25 "6dcb09b5b57875f334f61aebed695e2e4193db5e";
26
27
28
29
30 private static final String SHA2 =
31 "51cabb8e759852a6a40a7a2a76ef0afd4beef96d";
32
33
34
35
36
37 @Test
38 void getRepo() throws IOException {
39 final MkStorage storage = new MkStorage.InFile();
40 final Repo repo = MkRepoCommitTest.repo(storage);
41 MatcherAssert.assertThat(
42 "Values are not equal",
43 new MkRepoCommit(
44 storage, repo, MkRepoCommitTest.SHA1
45 ).repo(), Matchers.equalTo(repo)
46 );
47 }
48
49
50
51
52
53 @Test
54 void getSha() throws IOException {
55 final MkStorage storage = new MkStorage.InFile();
56 MatcherAssert.assertThat(
57 "Values are not equal",
58 new MkRepoCommit(storage, MkRepoCommitTest.repo(storage), MkRepoCommitTest.SHA2).sha(),
59 Matchers.equalTo(MkRepoCommitTest.SHA2)
60 );
61 }
62
63 @Test
64 void canCompareInstances() throws IOException {
65 final MkStorage storage = new MkStorage.InFile();
66 final Repo repoa = new MkRepo(
67 storage, "login1",
68 new Coordinates.Simple("test_login1", "test_repo1")
69 );
70 final Repo repob = new MkRepo(
71 storage, "login2",
72 new Coordinates.Simple("test_login2", "test_repo2")
73 );
74 final MkRepoCommit less = new MkRepoCommit(
75 storage, repoa, MkRepoCommitTest.SHA1
76 );
77 final MkRepoCommit greater = new MkRepoCommit(
78 storage, repob, MkRepoCommitTest.SHA2
79 );
80 MatcherAssert.assertThat(
81 "Value is not less than expected",
82 less.compareTo(greater),
83 Matchers.lessThan(0)
84 );
85 MatcherAssert.assertThat(
86 "Value is not greater than expected",
87 greater.compareTo(less),
88 Matchers.greaterThan(0)
89 );
90 }
91
92 @Test
93 void canGetJson() throws IOException {
94 final MkStorage storage = new MkStorage.InFile();
95 storage.apply(
96 new Directives().xpath("/github").add("repos")
97 .add("repo").attr("coords", "test_login/test_repo")
98 .add("commits").add("commit").add("sha").set(MkRepoCommitTest.SHA1)
99 );
100 final MkRepoCommit commit = new MkRepoCommit(
101 storage, MkRepoCommitTest.repo(storage), MkRepoCommitTest.SHA1
102 );
103 MatcherAssert.assertThat(
104 "Value is null",
105 commit.json(), Matchers.notNullValue()
106 );
107 }
108
109 @Test
110 void compareEqual() throws IOException {
111 final String sha = "c2c53d66948214258a26ca9ca845d7ac0c17f8e7";
112 final MkStorage storage = new MkStorage.InFile();
113 final Repo repo = MkRepoCommitTest.repo(storage);
114 final MkRepoCommit commit = new MkRepoCommit(storage, repo, sha);
115 final MkRepoCommit other = new MkRepoCommit(storage, repo, sha);
116 MatcherAssert.assertThat(
117 "Values are not equal",
118 commit.compareTo(other), Matchers.equalTo(0)
119 );
120 MatcherAssert.assertThat(
121 "Values are not equal",
122 other.compareTo(commit), Matchers.equalTo(0)
123 );
124 }
125
126 @Test
127 void compareDifferent() throws IOException {
128 final MkStorage storage = new MkStorage.InFile();
129 final Repo repo = MkRepoCommitTest.repo(storage);
130 final MkRepoCommit commit = new MkRepoCommit(
131 storage, repo, "6dcd4ce23d88e2ee9568ba546c007c63d9131c1b"
132 );
133 final MkRepoCommit other = new MkRepoCommit(
134 storage, repo, "e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98"
135 );
136 MatcherAssert.assertThat(
137 "Assertion failed",
138 commit.compareTo(other), Matchers.not(0)
139 );
140 MatcherAssert.assertThat(
141 "Assertion failed",
142 other.compareTo(commit), Matchers.not(0)
143 );
144 }
145
146
147
148
149
150
151 private static Repo repo(final MkStorage storage) {
152 final String login = "test_login";
153 return new MkRepo(
154 storage,
155 login,
156 new Coordinates.Simple(login, "test_repo")
157 );
158 }
159 }