|
28 | 28 | import io.airbyte.config.AuthenticatedUser;
|
29 | 29 | import io.airbyte.config.Configs.AirbyteEdition;
|
30 | 30 | import io.airbyte.config.Organization;
|
| 31 | +import io.airbyte.config.Permission; |
31 | 32 | import io.airbyte.config.StandardWorkspace;
|
32 | 33 | import io.airbyte.config.persistence.ConfigNotFoundException;
|
33 | 34 | import io.airbyte.config.persistence.OrganizationPersistence;
|
|
36 | 37 | import io.airbyte.data.services.PermissionService;
|
37 | 38 | import io.airbyte.validation.json.JsonValidationException;
|
38 | 39 | import java.io.IOException;
|
| 40 | +import java.time.Clock; |
| 41 | +import java.time.Instant; |
| 42 | +import java.time.ZoneId; |
39 | 43 | import java.util.Date;
|
40 | 44 | import java.util.Optional;
|
41 | 45 | import java.util.UUID;
|
| 46 | +import java.util.stream.Stream; |
42 | 47 | import org.junit.jupiter.api.BeforeEach;
|
43 | 48 | import org.junit.jupiter.api.Test;
|
44 | 49 | import org.junit.jupiter.api.extension.ExtendWith;
|
@@ -159,7 +164,8 @@ void testGetInstanceConfigurationTrackingStrategy(final String envValue, final T
|
159 | 164 | mUserPersistence,
|
160 | 165 | mOrganizationPersistence,
|
161 | 166 | mAuthConfigs,
|
162 |
| - permissionService); |
| 167 | + permissionService, |
| 168 | + Optional.empty()); |
163 | 169 |
|
164 | 170 | final var result = handler.getInstanceConfiguration();
|
165 | 171 |
|
@@ -280,6 +286,67 @@ void testLicenseInfo() {
|
280 | 286 | assertEquals(licenseInfoResponse.getMaxNodes(), MAX_NODES);
|
281 | 287 | }
|
282 | 288 |
|
| 289 | + @Test |
| 290 | + void testInvalidLicenseTest() { |
| 291 | + final ActiveAirbyteLicense license = new ActiveAirbyteLicense(); |
| 292 | + license.setLicense(null); |
| 293 | + final InstanceConfigurationHandler handler = new InstanceConfigurationHandler( |
| 294 | + Optional.of(AIRBYTE_URL), |
| 295 | + "logging", |
| 296 | + AirbyteEdition.PRO, |
| 297 | + new AirbyteVersion("0.50.1"), |
| 298 | + Optional.of(license), |
| 299 | + mWorkspacePersistence, |
| 300 | + mWorkspacesHandler, |
| 301 | + mUserPersistence, |
| 302 | + mOrganizationPersistence, |
| 303 | + mAuthConfigs, |
| 304 | + permissionService, |
| 305 | + Optional.empty()); |
| 306 | + assertEquals(handler.currentLicenseStatus(), LicenseStatus.INVALID); |
| 307 | + } |
| 308 | + |
| 309 | + @Test |
| 310 | + void testExpiredLicenseTest() { |
| 311 | + final InstanceConfigurationHandler handler = new InstanceConfigurationHandler( |
| 312 | + Optional.of(AIRBYTE_URL), |
| 313 | + "logging", |
| 314 | + AirbyteEdition.PRO, |
| 315 | + new AirbyteVersion("0.50.1"), |
| 316 | + Optional.of(activeAirbyteLicense), |
| 317 | + mWorkspacePersistence, |
| 318 | + mWorkspacesHandler, |
| 319 | + mUserPersistence, |
| 320 | + mOrganizationPersistence, |
| 321 | + mAuthConfigs, |
| 322 | + permissionService, |
| 323 | + Optional.of(Clock.fixed(Instant.MAX, ZoneId.systemDefault()))); |
| 324 | + assertEquals(handler.currentLicenseStatus(), LicenseStatus.EXPIRED); |
| 325 | + } |
| 326 | + |
| 327 | + @Test |
| 328 | + void testExceededEditorsLicenseTest() { |
| 329 | + |
| 330 | + final InstanceConfigurationHandler handler = new InstanceConfigurationHandler( |
| 331 | + Optional.of(AIRBYTE_URL), |
| 332 | + "logging", |
| 333 | + AirbyteEdition.PRO, |
| 334 | + new AirbyteVersion("0.50.1"), |
| 335 | + Optional.of(activeAirbyteLicense), |
| 336 | + mWorkspacePersistence, |
| 337 | + mWorkspacesHandler, |
| 338 | + mUserPersistence, |
| 339 | + mOrganizationPersistence, |
| 340 | + mAuthConfigs, |
| 341 | + permissionService, |
| 342 | + Optional.empty()); |
| 343 | + when(permissionService.listPermissions()).thenReturn( |
| 344 | + Stream.generate(UUID::randomUUID) |
| 345 | + .map(userId -> new Permission().withUserId(userId).withPermissionType(Permission.PermissionType.ORGANIZATION_EDITOR)) |
| 346 | + .limit(MAX_EDITORS + 10).toList()); |
| 347 | + assertEquals(handler.currentLicenseStatus(), LicenseStatus.EXCEEDED); |
| 348 | + } |
| 349 | + |
283 | 350 | private void stubGetDefaultUser() throws IOException {
|
284 | 351 | when(mUserPersistence.getDefaultUser()).thenReturn(
|
285 | 352 | Optional.of(new AuthenticatedUser()
|
@@ -317,7 +384,8 @@ private InstanceConfigurationHandler getInstanceConfigurationHandler(final boole
|
317 | 384 | mUserPersistence,
|
318 | 385 | mOrganizationPersistence,
|
319 | 386 | mAuthConfigs,
|
320 |
| - permissionService); |
| 387 | + permissionService, |
| 388 | + Optional.empty()); |
321 | 389 | }
|
322 | 390 |
|
323 | 391 | }
|
0 commit comments