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.mock;
31
32 import com.jcabi.github.Release;
33 import com.jcabi.github.Releases;
34 import org.hamcrest.MatcherAssert;
35 import org.hamcrest.Matchers;
36 import org.junit.Test;
37
38
39
40
41
42
43
44
45 public final class MkReleasesTest {
46
47
48
49
50 @Test
51 public void canFetchEmptyListOfReleases() throws Exception {
52 final Releases releases = new MkGithub().randomRepo().releases();
53 MatcherAssert.assertThat(
54 releases.iterate(),
55 Matchers.emptyIterable()
56 );
57 }
58
59
60
61
62
63 @Test
64 public void canFetchNonEmptyListOfReleases() throws Exception {
65 final Releases releases = new MkGithub().randomRepo().releases();
66 final String tag = "v1.0";
67 releases.create(tag);
68 MatcherAssert.assertThat(
69
70 releases.iterate().iterator().next().json().getString("tag_name"),
71 Matchers.equalTo(tag)
72 );
73 }
74
75
76
77
78
79 @Test
80 public void canFetchSingleRelease() throws Exception {
81 final Releases releases = new MkGithub().randomRepo().releases();
82 MatcherAssert.assertThat(releases.get(1), Matchers.notNullValue());
83 }
84
85
86
87
88
89 @Test
90 public void canCreateRelease() throws Exception {
91 final Releases releases = new MkGithub().randomRepo().releases();
92 final String tag = "v1.0.0";
93 final Release release = releases.create(tag);
94 MatcherAssert.assertThat(
95 release.json().getString("tag_name"),
96 Matchers.equalTo(tag)
97 );
98 }
99
100
101
102
103
104 @Test
105 public void iteratesReleases() throws Exception {
106 final Releases releases = new MkGithub().randomRepo().releases();
107 releases.create("v1.0.1");
108 releases.create("v1.0.2");
109 MatcherAssert.assertThat(
110 releases.iterate(),
111 Matchers.<Release>iterableWithSize(2)
112 );
113 }
114
115
116
117
118
119 @Test
120 public void canRemoveRelease() throws Exception {
121 final Releases releases = new MkGithub().randomRepo().releases();
122 releases.create("v1.1.1");
123 releases.create("v1.1.2");
124 MatcherAssert.assertThat(
125 releases.iterate(),
126 Matchers.<Release>iterableWithSize(2)
127 );
128 releases.remove(1);
129 MatcherAssert.assertThat(
130 releases.iterate(),
131 Matchers.<Release>iterableWithSize(1)
132 );
133 }
134
135
136
137
138
139 @Test
140 public void findsReleaseByTag() throws Exception {
141 final Releases releases = new MkGithub().randomRepo().releases();
142 final String tag = "v5.0";
143 releases.create(tag);
144 MatcherAssert.assertThat(
145 new Releases.Smart(releases).exists(tag),
146 Matchers.is(true)
147 );
148 MatcherAssert.assertThat(
149 new Release.Smart(new Releases.Smart(releases).find(tag)).tag(),
150 Matchers.equalTo(tag)
151 );
152 }
153
154
155
156
157
158
159 @Test
160 public void releaseNameIsEmpty() throws Exception {
161 final Releases releases = new MkGithub().randomRepo().releases();
162 final String tag = "tag";
163 releases.create(tag);
164 MatcherAssert.assertThat(
165 new Release.Smart(releases.iterate().iterator().next())
166 .name().isEmpty(),
167 Matchers.is(true)
168 );
169 }
170
171
172
173
174
175
176 @Test
177 public void releaseBodyIsEmpty() throws Exception {
178 final Releases releases = new MkGithub().randomRepo().releases();
179 final String tag = "tag";
180 releases.create(tag);
181 MatcherAssert.assertThat(
182 new Release.Smart(releases.iterate().iterator().next())
183 .body().isEmpty(),
184 Matchers.is(true)
185 );
186 }
187 }