|
19 | 19 | import com.github.jamesnetherton.zulip.client.api.server.request.CreateDataExportApiRequest; |
20 | 20 | import com.github.jamesnetherton.zulip.client.api.server.request.CreateProfileFieldApiRequest; |
21 | 21 | import com.github.jamesnetherton.zulip.client.api.server.request.GetApiKeyApiRequest; |
| 22 | +import com.github.jamesnetherton.zulip.client.api.server.request.JwtFetchApiKeyApiRequest; |
22 | 23 | import com.github.jamesnetherton.zulip.client.api.server.request.RegisterE2EMobilePushDevice; |
23 | 24 | import com.github.jamesnetherton.zulip.client.api.server.request.RemoveApnsDeviceTokenApiRequest; |
24 | 25 | import com.github.jamesnetherton.zulip.client.api.server.request.RemoveFcmRegistrationTokenApiRequest; |
|
27 | 28 | import com.github.jamesnetherton.zulip.client.api.server.request.SendMobilePushTestNotification; |
28 | 29 | import com.github.jamesnetherton.zulip.client.api.server.request.TestWelcomeBotCustomMessageApiRequest; |
29 | 30 | import com.github.jamesnetherton.zulip.client.api.server.request.UpdateRealmNewUserDefaultSettingsApiRequest; |
| 31 | +import com.github.jamesnetherton.zulip.client.api.server.response.JwtFetchApiKeyResponse; |
30 | 32 | import com.github.jamesnetherton.zulip.client.api.user.ColorScheme; |
31 | 33 | import com.github.jamesnetherton.zulip.client.api.user.DemoteInactiveStreamOption; |
32 | 34 | import com.github.jamesnetherton.zulip.client.api.user.DesktopIconCountDisplay; |
|
36 | 38 | import com.github.jamesnetherton.zulip.client.api.user.WebAnimateImageOption; |
37 | 39 | import com.github.jamesnetherton.zulip.client.api.user.WebChannelView; |
38 | 40 | import com.github.jamesnetherton.zulip.client.api.user.WebHomeView; |
| 41 | +import com.github.jamesnetherton.zulip.client.api.user.response.UserApiResponse; |
39 | 42 | import com.github.tomakehurst.wiremock.matching.StringValuePattern; |
40 | 43 | import java.io.File; |
41 | 44 | import java.util.Collections; |
@@ -353,6 +356,59 @@ public void getProductionApiKey() throws Exception { |
353 | 356 | assertEquals("abc123zxy", key); |
354 | 357 | } |
355 | 358 |
|
| 359 | + @Test |
| 360 | + public void jwtFetchApiKey() throws Exception { |
| 361 | + Map<String, StringValuePattern> params = QueryParams.create() |
| 362 | + .add(JwtFetchApiKeyApiRequest.TOKEN, "test-jwt-token") |
| 363 | + .get(); |
| 364 | + |
| 365 | + stubZulipResponse(POST, "/jwt/fetch_api_key", params, "jwtFetchApiKey.json"); |
| 366 | + |
| 367 | + JwtFetchApiKeyResponse response = zulip.server() |
| 368 | + .jwtFetchApiKey("test-jwt-token") |
| 369 | + .execute(); |
| 370 | + |
| 371 | + assertNotNull(response); |
| 372 | + assertEquals("test-api-key", response.getApiKey()); |
| 373 | + assertEquals("test@example.com", response.getEmail()); |
| 374 | + assertNull(response.getUser()); |
| 375 | + } |
| 376 | + |
| 377 | + @Test |
| 378 | + public void jwtFetchApiKeyWithProfile() throws Exception { |
| 379 | + Map<String, StringValuePattern> params = QueryParams.create() |
| 380 | + .add(JwtFetchApiKeyApiRequest.TOKEN, "test-jwt-token") |
| 381 | + .add(JwtFetchApiKeyApiRequest.INCLUDE_PROFILE, "true") |
| 382 | + .get(); |
| 383 | + |
| 384 | + stubZulipResponse(POST, "/jwt/fetch_api_key", params, "jwtFetchApiKeyWithProfile.json"); |
| 385 | + |
| 386 | + JwtFetchApiKeyResponse response = zulip.server() |
| 387 | + .jwtFetchApiKey("test-jwt-token") |
| 388 | + .withIncludeProfile(true) |
| 389 | + .execute(); |
| 390 | + |
| 391 | + assertNotNull(response); |
| 392 | + assertEquals("test-api-key", response.getApiKey()); |
| 393 | + assertEquals("test@example.com", response.getEmail()); |
| 394 | + assertNotNull(response.getUser()); |
| 395 | + |
| 396 | + UserApiResponse user = response.getUser(); |
| 397 | + assertEquals(5L, user.getUserId()); |
| 398 | + assertEquals("test@example.com", user.getDeliveryEmail()); |
| 399 | + assertEquals("test@example.com", user.getEmail()); |
| 400 | + assertEquals("Test123", user.getFullName()); |
| 401 | + assertEquals("2019-10-20T07:50:53.728864+00:00", user.getDateJoined()); |
| 402 | + assertEquals("Europe/London", user.getTimezone()); |
| 403 | + assertEquals("https://secure.gravatar.com/avatar/test?d=identicon&version=1", user.getAvatarUrl()); |
| 404 | + assertEquals(1, user.getAvatarVersion()); |
| 405 | + assertEquals(false, user.isBot()); |
| 406 | + assertEquals(false, user.isGuest()); |
| 407 | + assertEquals(false, user.isOwner()); |
| 408 | + assertEquals(true, user.isAdmin()); |
| 409 | + assertEquals(true, user.isActive()); |
| 410 | + } |
| 411 | + |
356 | 412 | @Test |
357 | 413 | public void addCodePlayground() throws Exception { |
358 | 414 | Map<String, StringValuePattern> params = QueryParams.create() |
|
0 commit comments