1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package com.jcabi.github;
31
32 import com.jcabi.aspects.Tv;
33 import com.jcabi.github.OAuthScope.Scope;
34 import org.apache.commons.lang3.RandomStringUtils;
35 import org.hamcrest.MatcherAssert;
36 import org.hamcrest.Matchers;
37 import org.junit.AfterClass;
38 import org.junit.BeforeClass;
39 import org.junit.Test;
40
41
42
43
44
45
46
47 @OAuthScope(Scope.REPO)
48 public final class RtReleasesITCase {
49
50
51
52
53 private static Repos repos;
54
55
56
57
58 private static Repo repo;
59
60
61
62
63
64 private static RepoRule rule = new RepoRule();
65
66
67
68
69
70 @BeforeClass
71 public static void setUp() throws Exception {
72 final Github github = new GithubIT().connect();
73 repos = github.repos();
74 repo = rule.repo(repos);
75 }
76
77
78
79
80
81 @AfterClass
82 public static void tearDown() throws Exception {
83 if (repos != null && repo != null) {
84 repos.remove(repo.coordinates());
85 }
86 }
87
88
89
90
91
92 @Test
93 public void canFetchAllReleases() throws Exception {
94 final Releases releases = repo.releases();
95 final Release release = releases.create(
96 RandomStringUtils.randomAlphanumeric(Tv.TEN)
97 );
98 try {
99 MatcherAssert.assertThat(
100 releases.iterate(),
101 Matchers.not(Matchers.emptyIterableOf(Release.class))
102 );
103 } finally {
104 releases.remove(release.number());
105 }
106 }
107
108
109
110
111
112 @Test
113 public void canFetchRelease() throws Exception {
114 final Releases releases = repo.releases();
115 final String tag = "v1.0";
116 final Release release = releases.create(tag);
117 MatcherAssert.assertThat(
118 releases.get(release.number()).number(),
119 Matchers.equalTo(release.number())
120 );
121 MatcherAssert.assertThat(
122 new Release.Smart(releases.get(release.number())).tag(),
123 Matchers.equalTo(tag)
124 );
125 releases.remove(release.number());
126 }
127
128
129
130
131
132 @Test
133 public void canCreateRelease() throws Exception {
134 final Releases releases = repo.releases();
135 final Release created = releases.create("0.1");
136 final int number = created.number();
137 try {
138 final Release obtained = releases.get(number);
139 MatcherAssert.assertThat(
140 created,
141 Matchers.is(obtained)
142 );
143 MatcherAssert.assertThat(
144 new Release.Smart(created).tag(),
145 Matchers.equalTo(new Release.Smart(obtained).tag())
146 );
147 } finally {
148 releases.remove(number);
149 }
150 }
151
152
153
154
155
156 @Test
157 public void canRemoveRelease() throws Exception {
158 final Releases releases = repo.releases();
159 final Release release = releases.create(
160 RandomStringUtils.randomAlphanumeric(Tv.TEN)
161 );
162 MatcherAssert.assertThat(
163 releases.iterate(),
164 Matchers.hasItem(release)
165 );
166 releases.remove(release.number());
167 MatcherAssert.assertThat(
168 releases.iterate(),
169 Matchers.not(Matchers.hasItem(release))
170 );
171 }
172
173
174
175
176
177 @Test
178 public void canEditTag() throws Exception {
179 final Releases releases = repo.releases();
180 final Release release = releases.create(
181 RandomStringUtils.randomAlphanumeric(Tv.TEN)
182 );
183 final String tag = RandomStringUtils.randomAlphanumeric(Tv.FIFTEEN);
184 new Release.Smart(release).tag(tag);
185 MatcherAssert.assertThat(
186 new Release.Smart(releases.get(release.number())).tag(),
187 Matchers.equalTo(tag)
188 );
189 releases.remove(release.number());
190 }
191
192
193
194
195
196 @Test
197 public void canEditBody() throws Exception {
198 final Releases releases = repo.releases();
199 final Release release = releases.create(
200 RandomStringUtils.randomAlphanumeric(Tv.TEN)
201 );
202 final String body = "Description of the release";
203 new Release.Smart(release).body(body);
204 MatcherAssert.assertThat(
205 new Release.Smart(releases.get(release.number())).body(),
206 Matchers.equalTo(body)
207 );
208 releases.remove(release.number());
209 }
210 }