1
2
3
4
5 package com.jcabi.github.mock;
6
7 import com.jcabi.github.Release;
8 import com.jcabi.github.Releases;
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
16
17
18
19 @SuppressWarnings("PMD.AvoidDuplicateLiterals")
20 final class MkReleasesTest {
21 @Test
22 void canFetchEmptyListOfReleases() throws IOException {
23 final Releases releases = new MkGitHub().randomRepo().releases();
24 MatcherAssert.assertThat(
25 "Collection is not empty",
26 releases.iterate(),
27 Matchers.emptyIterable()
28 );
29 }
30
31
32
33
34 @Test
35 void canFetchNonEmptyListOfReleases() throws IOException {
36 final Releases releases = new MkGitHub().randomRepo().releases();
37 final String tag = "v1.0";
38 releases.create(tag);
39 MatcherAssert.assertThat(
40 "Values are not equal",
41
42 releases.iterate().iterator().next().json().getString("tag_name"),
43 Matchers.equalTo(tag)
44 );
45 }
46
47 @Test
48 void canFetchSingleRelease() throws IOException {
49 final Releases releases = new MkGitHub().randomRepo().releases();
50 MatcherAssert.assertThat(
51 "Value is null", releases.get(1), Matchers.notNullValue()
52 );
53 }
54
55 @Test
56 void canCreateRelease() throws IOException {
57 final Releases releases = new MkGitHub().randomRepo().releases();
58 final String tag = "v1.0.0";
59 final Release release = releases.create(tag);
60 MatcherAssert.assertThat(
61 "Values are not equal",
62 release.json().getString("tag_name"),
63 Matchers.equalTo(tag)
64 );
65 }
66
67 @Test
68 void iteratesReleases() throws IOException {
69 final Releases releases = new MkGitHub().randomRepo().releases();
70 releases.create("v1.0.1");
71 releases.create("v1.0.2");
72 MatcherAssert.assertThat(
73 "Collection size is incorrect",
74 releases.iterate(),
75 Matchers.iterableWithSize(2)
76 );
77 }
78
79 @Test
80 void canRemoveRelease() throws IOException {
81 final Releases releases = new MkGitHub().randomRepo().releases();
82 releases.create("v1.1.1");
83 releases.create("v1.1.2");
84 MatcherAssert.assertThat(
85 "Collection size is incorrect",
86 releases.iterate(),
87 Matchers.iterableWithSize(2)
88 );
89 releases.remove(1);
90 MatcherAssert.assertThat(
91 "Collection size is incorrect",
92 releases.iterate(),
93 Matchers.iterableWithSize(1)
94 );
95 }
96
97 @Test
98 void findsReleaseByTag() throws IOException {
99 final Releases releases = new MkGitHub().randomRepo().releases();
100 final String tag = "v5.0";
101 releases.create(tag);
102 MatcherAssert.assertThat(
103 "Values are not equal",
104 new Releases.Smart(releases).exists(tag),
105 Matchers.is(true)
106 );
107 MatcherAssert.assertThat(
108 "Values are not equal",
109 new Release.Smart(new Releases.Smart(releases).find(tag)).tag(),
110 Matchers.equalTo(tag)
111 );
112 }
113
114
115
116
117 @Test
118 void releaseNameIsEmpty() throws IOException {
119 final Releases releases = new MkGitHub().randomRepo().releases();
120 final String tag = "tag";
121 releases.create(tag);
122 MatcherAssert.assertThat(
123 "Values are not equal",
124 new Release.Smart(releases.iterate().iterator().next())
125 .name().isEmpty(),
126 Matchers.is(true)
127 );
128 }
129
130
131
132
133 @Test
134 void releaseBodyIsEmpty() throws IOException {
135 final Releases releases = new MkGitHub().randomRepo().releases();
136 final String tag = "tag";
137 releases.create(tag);
138 MatcherAssert.assertThat(
139 "Values are not equal",
140 new Release.Smart(releases.iterate().iterator().next())
141 .body().isEmpty(),
142 Matchers.is(true)
143 );
144 }
145 }