Skip to content

Commit 5934fd4

Browse files
committed
Moved creation of external user to TestUserApi (#427).
1 parent 8367683 commit 5934fd4

File tree

4 files changed

+61
-24
lines changed

4 files changed

+61
-24
lines changed

src/test/java/org/gitlab4j/api/IntegrationTestSuite.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,15 @@
44
import static org.junit.Assert.assertNotNull;
55
import static org.junit.Assert.fail;
66

7-
import java.util.*;
8-
9-
import org.gitlab4j.api.models.*;
7+
import java.util.Arrays;
8+
import java.util.List;
9+
import java.util.Optional;
10+
11+
import org.gitlab4j.api.models.Group;
12+
import org.gitlab4j.api.models.Project;
13+
import org.gitlab4j.api.models.RepositoryFile;
14+
import org.gitlab4j.api.models.User;
15+
import org.gitlab4j.api.models.Visibility;
1016
import org.gitlab4j.api.utils.AccessTokenUtils;
1117
import org.gitlab4j.api.utils.AccessTokenUtils.Scope;
1218
import org.junit.AfterClass;
@@ -38,8 +44,6 @@ public class IntegrationTestSuite implements PropertyConstants {
3844
private static final String TEST_GROUP = HelperUtils.getProperty(GROUP_KEY);
3945
private static final String TEST_GROUP_PROJECT_NAME = HelperUtils.getProperty(GROUP_PROJECT_KEY);
4046
private static final String TEST_SUB_GROUP = HelperUtils.getProperty(SUB_GROUP_KEY);
41-
private static final String TEST_EXTERNAL_PROVIDER = HelperUtils.getProperty(EXTERNAL_PROVIDER_KEY);
42-
private static final String TEST_EXTERNAL_UID = HelperUtils.getProperty(EXTERNAL_UID_KEY);
4347

4448
protected static final String TEST_PRIVATE_TOKEN_NAME = "GitLab4J Test Private Token - " + HelperUtils.getRandomInt(1000);
4549
protected static String TEST_PRIVATE_TOKEN = HelperUtils.getProperty(PRIVATE_TOKEN_KEY);
@@ -164,18 +168,12 @@ private static void seedData() throws GitLabApiException {
164168
// If the tester user doen't exists, create it
165169
Optional<User> optionalUser = gitLabApi.getUserApi().getOptionalUser(TEST_LOGIN_USERNAME);
166170
if (!optionalUser.isPresent()) {
167-
Identity identity = new Identity();
168-
identity.setExternUid(TEST_EXTERNAL_UID);
169-
identity.setProvider(TEST_EXTERNAL_PROVIDER);
170-
171171
User userSettings = new User()
172172
.withUsername(TEST_LOGIN_USERNAME)
173173
.withEmail(TEST_LOGIN_USERNAME + "@gitlab4j.org")
174174
.withName("GitLab4J Tester")
175175
.withSkipConfirmation(true)
176-
.withIsAdmin(true)
177-
.withIdentities(Collections.singletonList(identity));
178-
176+
.withIsAdmin(true);
179177
gitLabApi.getUserApi().createUser(userSettings, TEST_LOGIN_PASSWORD, false);
180178
System.out.format("Created %s user (%s)%n", userSettings.getName(), userSettings.getUsername());
181179
}

src/test/java/org/gitlab4j/api/PropertyConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,5 @@ public interface PropertyConstants {
3030
public static final String XFER_NAMESPACE_KEY = "TEST_XFER_NAMESPACE";
3131
public static final String EXTERNAL_PROVIDER_KEY = "TEST_EXTERNAL_PROVIDER";
3232
public static final String EXTERNAL_UID_KEY = "TEST_EXTERNAL_UID";
33+
public static final String EXTERNAL_USERNAME_KEY = "TEST_EXTERNAL_USERNAME";
3334
}

src/test/java/org/gitlab4j/api/TestUserApi.java

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public class TestUserApi extends AbstractIntegrationTest {
6565
"tyXN2+OUVXcYAsuIIdGGB0wLvTDgiOOSZWnSE+sg6XX user@example.com";
6666
private static final String TEST_USER_EMAIL = "test-user-email123@gitlab4j.org";
6767

68+
private static final String TEST_EXTERNAL_USERNAME = HelperUtils.getProperty(EXTERNAL_USERNAME_KEY);
6869
private static final String TEST_EXTERNAL_PROVIDER = HelperUtils.getProperty(EXTERNAL_PROVIDER_KEY);
6970
private static final String TEST_EXTERNAL_UID = HelperUtils.getProperty(EXTERNAL_UID_KEY);
7071

@@ -90,6 +91,15 @@ public static void setup() {
9091

9192
if (gitLabApi != null) {
9293

94+
if (TEST_EXTERNAL_USERNAME != null) {
95+
Optional<User> optionalUser = gitLabApi.getUserApi().getOptionalUser(TEST_EXTERNAL_USERNAME);
96+
if (optionalUser.isPresent()) {
97+
try {
98+
gitLabApi.getUserApi().deleteUser(optionalUser.get());
99+
} catch (Exception ignore) {}
100+
}
101+
}
102+
93103
if (TEST_BLOCK_USERNAME != null) {
94104
try {
95105
blockUser = gitLabApi.getUserApi().getUser(TEST_BLOCK_USERNAME);
@@ -183,15 +193,42 @@ public void testGetOptionalUser() throws GitLabApiException {
183193
}
184194

185195
@Test
186-
public void testGetOptionalUserByExternalUid() throws GitLabApiException {
196+
public void testExternalUid() throws GitLabApiException {
187197

188-
Optional<User> optional = gitLabApi.getUserApi().getOptionalUserByExternalUid(TEST_EXTERNAL_PROVIDER, TEST_EXTERNAL_UID);
189-
assertNotNull(optional);
190-
assertTrue(optional.isPresent());
198+
assumeNotNull(TEST_EXTERNAL_USERNAME);
199+
assumeNotNull(TEST_EXTERNAL_PROVIDER);
200+
assumeNotNull(TEST_EXTERNAL_UID);
191201

192-
optional = gitLabApi.getUserApi().getOptionalUserByExternalUid("unknown-provider", "unknown-uid");
193-
assertNotNull(optional);
194-
assertFalse(optional.isPresent());
202+
User externalUser = null;
203+
try {
204+
205+
User userSettings = new User()
206+
.withUsername(TEST_EXTERNAL_USERNAME)
207+
.withEmail(TEST_EXTERNAL_USERNAME + "@gitlab4j.org")
208+
.withName("GitLab4J External User")
209+
.withSkipConfirmation(true)
210+
.withIsAdmin(false)
211+
.withExternUid(TEST_EXTERNAL_UID)
212+
.withProvider(TEST_EXTERNAL_PROVIDER);
213+
externalUser = gitLabApi.getUserApi().createUser(userSettings, TEST_LOGIN_PASSWORD, false);
214+
assertNotNull(externalUser);
215+
216+
Optional<User> optionalUser = gitLabApi.getUserApi().getOptionalUserByExternalUid(TEST_EXTERNAL_PROVIDER, TEST_EXTERNAL_UID);
217+
assertNotNull(optionalUser);
218+
assertTrue(optionalUser.isPresent());
219+
assertEquals(externalUser.getId(), optionalUser.get().getId());
220+
221+
optionalUser = gitLabApi.getUserApi().getOptionalUserByExternalUid("unknown-provider", "unknown-uid");
222+
assertNotNull(optionalUser);
223+
assertFalse(optionalUser.isPresent());
224+
225+
} finally {
226+
if (externalUser != null) {
227+
try {
228+
gitLabApi.getUserApi().deleteUser(externalUser);
229+
} catch (Exception ignore) {}
230+
}
231+
}
195232
}
196233

197234
@Test

src/test/resources/test-gitlab4j.properties

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ TEST_LOGIN_PASSWORD=ChangeMeNow
2929
TEST_PROJECT_NAME=test-project
3030
TEST_USERNAME=gitlab4j
3131

32-
# This specifies the default external provider to test against and the user served by this provider, change
33-
# this if you'd like to test against a different project
34-
TEST_EXTERNAL_PROVIDER=github
35-
TEST_EXTERNAL_UID=2435223452345
36-
3732

3833
# This is the user to test sudo, block, and project transfer. If the user does not exist
3934
# it will be created during integration testing
@@ -54,3 +49,9 @@ TEST_PROXY_URI=
5449
TEST_PROXY_USERNAME=
5550
TEST_PROXY_PASSWORD=
5651

52+
# OPTIONAL: This specifies an external provider to test against and the user served by this provider.
53+
# Copy to ~/test-gitlab4j.properties and change this if you'd like to test against a different project or user.
54+
# TEST_EXTERNAL_USERNAME=externaluser
55+
# TEST_EXTERNAL_PROVIDER=github
56+
# TEST_EXTERNAL_UID=2435223452345
57+

0 commit comments

Comments
 (0)