From 308811f9422e322e596f5be2bbe3e44f0af4d771 Mon Sep 17 00:00:00 2001 From: devplant Date: Mon, 3 Apr 2023 09:56:39 +0300 Subject: [PATCH] RED-5504 - Prevent using exact same database schema/buckets/index for multiple tenants - add junit test --- .../server/integration/tests/TenantsTest.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TenantsTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TenantsTest.java index 7c5564a79..0842ced06 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TenantsTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TenantsTest.java @@ -68,4 +68,48 @@ public class TenantsTest extends AbstractPersistenceServerServiceTest { assertThat(e.status()).isEqualTo(409); } } + + @Test + public void testCreateTenantWithDuplicateStorageS3() { + + var tenantRequest = TenantRequest.builder() + .tenantId("redaction2") + .displayName("Redaction default2") + .guid(UUID.randomUUID().toString()) + .databaseConnection(DatabaseConnection.builder() + .driver("postgresql") + .host("localhost") + .port("port") + .database("redaction") + .schema("myschema2") + .username("redaction") + .password("redaction") + .build()) + .searchConnection(SearchConnection.builder() + .hosts(Set.of("elasticsearchHost2")) + .port(9200) + .scheme("https2") + .username("elastic") + .numberOfShards("1") + .numberOfReplicas("5") + .build()) + .s3StorageConnection(S3StorageConnection.builder() + .key("key") + .secret("secret") + .signerType("signerType") + .bucketName("bucketName") + .region("eu") + .endpoint("endpoint") + .build()) + .redUsers(List.of(RedUser.builder().username("user").password("password").redRoles(ApplicationRoles.ROLE_DATA.keySet()).build(), + RedUser.builder().username("manageradmin1@test.com").password("secret").redRoles(ApplicationRoles.ROLE_DATA.keySet()).build(), + RedUser.builder().username("manageradmin2@test.com").password("secret").redRoles(ApplicationRoles.ROLE_DATA.keySet()).build())) + .build(); + + try { + tenantsClient.createTenant(tenantRequest); + } catch(FeignException e) { + assertThat(e.status()).isEqualTo(409); + } + } }