|
1 | 1 | package com.contentstack.cms; |
2 | 2 |
|
| 3 | +import com.contentstack.cms.core.AuthInterceptor; |
3 | 4 | import com.contentstack.cms.organization.Organization; |
4 | 5 | import com.contentstack.cms.stack.Stack; |
5 | 6 | import okhttp3.Headers; |
| 7 | +import okhttp3.OkHttpClient; |
| 8 | +import okhttp3.Request; |
6 | 9 | import okhttp3.ResponseBody; |
| 10 | +import okhttp3.mockwebserver.MockResponse; |
| 11 | +import okhttp3.mockwebserver.MockWebServer; |
| 12 | +import okhttp3.mockwebserver.RecordedRequest; |
7 | 13 | import org.junit.jupiter.api.Assertions; |
8 | 14 | import org.junit.jupiter.api.Test; |
9 | 15 | import retrofit2.Response; |
@@ -262,5 +268,66 @@ public void testEmptyOrganizationUid() { |
262 | 268 | Assertions.assertThrows(IllegalStateException.class, () -> client.organization(emptyOrganizationUid)); |
263 | 269 | } |
264 | 270 |
|
| 271 | + @Test |
| 272 | + public void testEarlyAccessHeader() throws IOException, InterruptedException { |
| 273 | + MockWebServer mockWebServer = new MockWebServer(); |
| 274 | + mockWebServer.enqueue(new MockResponse().setBody("{}")); |
| 275 | + |
| 276 | + AuthInterceptor authInterceptor = new AuthInterceptor(); |
| 277 | + authInterceptor.setEarlyAccess(new String[]{"Taxonomy"}); |
| 278 | + |
| 279 | + OkHttpClient client = new OkHttpClient.Builder() |
| 280 | + .addInterceptor(authInterceptor) |
| 281 | + .build(); |
| 282 | + |
| 283 | + Request request = new Request.Builder() |
| 284 | + .url(mockWebServer.url("/")) |
| 285 | + .build(); |
| 286 | + |
| 287 | + client.newCall(request).execute(); |
| 288 | + RecordedRequest recordedRequest = mockWebServer.takeRequest(); |
| 289 | + String earlyAccessHeader = recordedRequest.getHeader("x-header-ea"); |
| 290 | + |
| 291 | + Assertions.assertNotNull(earlyAccessHeader); |
| 292 | + Assertions.assertEquals("Taxonomy", earlyAccessHeader); |
| 293 | + |
| 294 | + mockWebServer.shutdown(); |
| 295 | + } |
| 296 | + @Test |
| 297 | + public void testEarlyAccessMultipleHeader() throws IOException, InterruptedException { |
| 298 | + MockWebServer mockWebServer = new MockWebServer(); |
| 299 | + mockWebServer.enqueue(new MockResponse().setBody("{}")); |
| 300 | + |
| 301 | + AuthInterceptor authInterceptor = new AuthInterceptor(); |
| 302 | + authInterceptor.setEarlyAccess(new String[]{"Taxonomy","Teams"}); |
| 303 | + |
| 304 | + OkHttpClient client = new OkHttpClient.Builder() |
| 305 | + .addInterceptor(authInterceptor) |
| 306 | + .build(); |
| 307 | + |
| 308 | + Request request = new Request.Builder() |
| 309 | + .url(mockWebServer.url("/")) |
| 310 | + .build(); |
| 311 | + |
| 312 | + client.newCall(request).execute(); |
| 313 | + RecordedRequest recordedRequest = mockWebServer.takeRequest(); |
| 314 | + String earlyAccessHeader = recordedRequest.getHeader("x-header-ea"); |
| 315 | + |
| 316 | + Assertions.assertNotNull(earlyAccessHeader); |
| 317 | + Assertions.assertEquals("Taxonomy, Teams", earlyAccessHeader); |
| 318 | + |
| 319 | + mockWebServer.shutdown(); |
| 320 | + } |
| 321 | + |
| 322 | + @Test |
| 323 | + public void testEarlyAccessHeaderEmpty() { |
| 324 | + String[] emptyEarlyAccessFeatures = {}; |
| 325 | + Contentstack client = new Contentstack.Builder() |
| 326 | + .earlyAccess(emptyEarlyAccessFeatures) |
| 327 | + .build(); |
| 328 | + |
| 329 | + Assertions.assertNotNull(client.earlyAccess); |
| 330 | + Assertions.assertEquals(0, client.earlyAccess.length); |
| 331 | + } |
265 | 332 |
|
266 | 333 | } |
0 commit comments