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 @Test
77 public void checksLabelExistenceByName() {
78 final Label first = Mockito.mock(Label.class);
79 Mockito.doReturn("first").when(first).name();
80 final Label second = Mockito.mock(Label.class);
81 Mockito.doReturn("second").when(second).name();
82 final IssueLabels labels = Mockito.mock(IssueLabels.class);
83 Mockito.doReturn(Arrays.asList(first, second)).when(labels).iterate();
84 MatcherAssert.assertThat(
85 new IssueLabels.Smart(labels).contains("first"),
86 Matchers.is(true)
87 );
88 MatcherAssert.assertThat(
89 new IssueLabels.Smart(labels).contains("third"),
90 Matchers.is(false)
91 );
92 }
93
94
95
96
97 @Test
98 public void getsLabelByName() {
99 final Label first = Mockito.mock(Label.class);
100 Mockito.doReturn("a").when(first).name();
101 final Label second = Mockito.mock(Label.class);
102 Mockito.doReturn("b").when(second).name();
103 final IssueLabels labels = Mockito.mock(IssueLabels.class);
104 Mockito.doReturn(Arrays.asList(first, second)).when(labels).iterate();
105 MatcherAssert.assertThat(
106 new IssueLabels.Smart(labels).get("a").name(),
107 Matchers.equalTo("a")
108 );
109 }
110
111
112
113
114 @Test(expected = IllegalArgumentException.class)
115 public void throwsWhenLabelIsAbsent() {
116 final IssueLabels labels = Mockito.mock(IssueLabels.class);
117 Mockito.doReturn(Collections.emptyList()).when(labels).iterate();
118 new IssueLabels.Smart(labels).get("something");
119 }
120
121 }