@@ -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
0 commit comments