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.aspects.Tv;
33 import com.jcabi.github.Organization;
34 import com.jcabi.github.PublicMembers;
35 import com.jcabi.github.User;
36 import java.io.IOException;
37 import org.apache.commons.lang3.RandomStringUtils;
38 import org.hamcrest.MatcherAssert;
39 import org.hamcrest.Matchers;
40 import org.junit.Test;
41
42
43
44
45
46
47
48 public final class MkPublicMembersTest {
49
50
51
52
53 @Test
54 public void fetchesOrg() throws Exception {
55 final Organization org = organization();
56 MatcherAssert.assertThat(
57 org.publicMembers().org().login(),
58 Matchers.equalTo(org.login())
59 );
60 }
61
62
63
64
65
66 @Test
67 public void changesPublicityOfMembershipOfUsers() throws Exception {
68 final MkOrganization org = organization();
69 final PublicMembers members = org.publicMembers();
70 final User user = org.github().users().get("johnny5");
71 org.addMember(user);
72 MatcherAssert.assertThat(
73 "Newly-added user is not a public member",
74 !members.contains(user)
75 );
76 members.publicize(user);
77 MatcherAssert.assertThat(
78 "User has been made a public member",
79 members.contains(user)
80 );
81 members.conceal(user);
82 MatcherAssert.assertThat(
83 "Concealed user is not a public member",
84 !members.contains(user)
85 );
86 members.publicize(user);
87 MatcherAssert.assertThat(
88 "User has been made a public member again",
89 members.contains(user)
90 );
91 }
92
93
94
95
96
97 @Test
98 public void checkPublicMembership() throws Exception {
99 final MkOrganization org = organization();
100 final PublicMembers members = org.publicMembers();
101 final User user = org.github().users().get("agent99");
102 MatcherAssert.assertThat(
103 members.iterate(),
104 Matchers.emptyIterableOf(User.class)
105 );
106 org.addMember(user);
107 MatcherAssert.assertThat(
108 "The newly-added user is not a public member",
109 !members.contains(user)
110 );
111 members.publicize(user);
112 MatcherAssert.assertThat(
113 "The user has been made a public member",
114 members.contains(user)
115 );
116 MatcherAssert.assertThat(members.iterate(), Matchers.hasItem(user));
117 members.conceal(user);
118 MatcherAssert.assertThat(
119 "The concealed user is not a public member",
120 !members.contains(user)
121 );
122 }
123
124
125
126
127
128 @Test
129 public void iteratesPublicMembers() throws Exception {
130 final MkOrganization org = organization();
131 final PublicMembers members = org.publicMembers();
132 final User user = org.github().users().get("jasmine");
133 MatcherAssert.assertThat(
134 members.iterate(),
135 Matchers.emptyIterableOf(User.class)
136 );
137 org.addMember(user);
138 MatcherAssert.assertThat(
139 members.iterate(),
140 Matchers.emptyIterableOf(User.class)
141 );
142 members.publicize(user);
143 MatcherAssert.assertThat(
144 members.iterate(),
145 Matchers.<User>iterableWithSize(1)
146 );
147 MatcherAssert.assertThat(members.iterate(), Matchers.hasItem(user));
148 members.conceal(user);
149 MatcherAssert.assertThat(
150 members.iterate(),
151 Matchers.emptyIterableOf(User.class)
152 );
153 }
154
155
156
157
158
159
160 private static MkOrganization organization() throws IOException {
161 return (MkOrganization) new MkOrganizations(
162 new MkStorage.InFile()
163 ).get(RandomStringUtils.randomAlphanumeric(Tv.TWENTY));
164 }
165 }