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 java.util.Arrays;
33 import java.util.Collections;
34 import javax.json.Json;
35 import org.hamcrest.MatcherAssert;
36 import org.hamcrest.Matchers;
37 import org.junit.Test;
38 import org.mockito.Mockito;
39
40
41
42
43
44
45
46 public final class IssueLabelsTest {
47
48
49
50
51
52 @Test
53 public void fetchesLabelsByColor() throws Exception {
54 final Label first = Mockito.mock(Label.class);
55 Mockito.doReturn(
56 Json.createObjectBuilder().add("color", "c0c0c0").build()
57 ).when(first).json();
58 final Label second = Mockito.mock(Label.class);
59 Mockito.doReturn(
60 Json.createObjectBuilder().add("color", "fefefe").build()
61 ).when(second).json();
62 final IssueLabels labels = Mockito.mock(IssueLabels.class);
63 Mockito.doReturn(Arrays.asList(first, second)).when(labels).iterate();
64 MatcherAssert.assertThat(
65 new IssueLabels.Smart(labels).findByColor("c0c0c0"),
66 Matchers.allOf(
67 Matchers.<Label>iterableWithSize(1),
68 Matchers.hasItems(first)
69 )
70 );
71 }
72
73
74
75
76
77 @Test
78 public void checksLabelExistenceByName() throws Exception {
79 final Label first = Mockito.mock(Label.class);
80 Mockito.doReturn("first").when(first).name();
81 final Label second = Mockito.mock(Label.class);
82 Mockito.doReturn("second").when(second).name();
83 final IssueLabels labels = Mockito.mock(IssueLabels.class);
84 Mockito.doReturn(Arrays.asList(first, second)).when(labels).iterate();
85 MatcherAssert.assertThat(
86 new IssueLabels.Smart(labels).contains("first"),
87 Matchers.is(true)
88 );
89 MatcherAssert.assertThat(
90 new IssueLabels.Smart(labels).contains("third"),
91 Matchers.is(false)
92 );
93 }
94
95
96
97
98
99 @Test
100 public void getsLabelByName() throws Exception {
101 final Label first = Mockito.mock(Label.class);
102 Mockito.doReturn("a").when(first).name();
103 final Label second = Mockito.mock(Label.class);
104 Mockito.doReturn("b").when(second).name();
105 final IssueLabels labels = Mockito.mock(IssueLabels.class);
106 Mockito.doReturn(Arrays.asList(first, second)).when(labels).iterate();
107 MatcherAssert.assertThat(
108 new IssueLabels.Smart(labels).get("a").name(),
109 Matchers.equalTo("a")
110 );
111 }
112
113
114
115
116
117 @Test(expected = IllegalArgumentException.class)
118 public void throwsWhenLabelIsAbsent() throws Exception {
119 final IssueLabels labels = Mockito.mock(IssueLabels.class);
120 Mockito.doReturn(Collections.emptyList()).when(labels).iterate();
121 new IssueLabels.Smart(labels).get("something");
122 }
123
124 }