11package ch .puzzle .okr .multitenancy ;
22
33import ch .puzzle .okr .test .SpringIntegrationTest ;
4+ import org .junit .jupiter .api .AfterEach ;
45import org .junit .jupiter .api .BeforeEach ;
56import org .junit .jupiter .api .DisplayName ;
67import org .junit .jupiter .api .Test ;
@@ -24,8 +25,10 @@ public class TenantConfigProviderTestIT {
2425 private static final String FRONTEND_CLIENT_ISSUER_URL = "frontendClientIssuerUrl" ;
2526 private static final String FRONTEND_CLIENT_ID = "frontendClientId" ;
2627 private static final String DATASOURCE_URL = "datasourceUrl" ;
27- private static final String DATASOURCE_NAME = "datasourceName" ;
28- private static final String DATASOURCE_PASSWORD = "datasourcePassword" ;
28+ private static final String DATASOURCE_NAME_FLY = "datasourceNameFly" ;
29+ private static final String DATASOURCE_PASSWORD_FLY = "datasourcePasswordFly" ;
30+ private static final String DATASOURCE_NAME_APP = "datasourceNameApp" ;
31+ private static final String DATASOURCE_PASSWORD_APP = "datasourcePasswordApp" ;
2932 private static final String DATASOURCE_SCHEMA = "datasourceSchema" ;
3033 private static final String DRIVER_CLASS_NAME = "driverClassName" ;
3134 private static final String CHAMPION_EMAILS_1 =
"[email protected] " ;
@@ -37,20 +40,30 @@ public class TenantConfigProviderTestIT {
3740 @ Mock
3841 private Environment env ;
3942
43+ private TenantConfigProvider configProvider ;
44+
4045 @ BeforeEach
4146 void setUp () {
4247 for (String tenantId : tenantIds ) {
4348 setupPropertiesForTenantWithId (tenantId );
4449 }
50+ configProvider = new TenantConfigProvider (tenantIds , env );
51+ }
52+
53+ @ AfterEach
54+ void tearDown () {
55+ TenantConfigProvider .clearTenantConfigsCache ();
4556 }
4657
4758 private void setupPropertiesForTenantWithId (String id ) {
4859 mockProperty ("okr.tenants.{0}.security.oauth2.resourceserver.jwt.jwk-set-uri" , JWK_SET_URI , id );
4960 mockProperty ("okr.tenants.{0}.security.oauth2.frontend.issuer-url" , FRONTEND_CLIENT_ISSUER_URL , id );
5061 mockProperty ("okr.tenants.{0}.security.oauth2.frontend.client-id" , FRONTEND_CLIENT_ID , id );
5162 mockProperty ("okr.tenants.{0}.datasource.url" , DATASOURCE_URL , id );
52- mockProperty ("okr.tenants.{0}.datasource.username" , DATASOURCE_NAME , id );
53- mockProperty ("okr.tenants.{0}.datasource.password" , DATASOURCE_PASSWORD , id );
63+ mockProperty ("okr.tenants.{0}.datasource.username.fly" , DATASOURCE_NAME_FLY , id );
64+ mockProperty ("okr.tenants.{0}.datasource.password.fly" , DATASOURCE_PASSWORD_FLY , id );
65+ mockProperty ("okr.tenants.{0}.datasource.username.app" , DATASOURCE_NAME_APP , id );
66+ mockProperty ("okr.tenants.{0}.datasource.password.app" , DATASOURCE_PASSWORD_APP , id );
5467 mockProperty ("okr.tenants.{0}.datasource.schema" , DATASOURCE_SCHEMA , id );
5568
5669 mockProperty ("okr.datasource.driver-class-name" , DRIVER_CLASS_NAME );
@@ -78,7 +91,6 @@ private String prefix(String tenantId) {
7891 @ DisplayName ("getTenantConfigs returns all TenantConfigs as List" )
7992 @ Test
8093 public void testGetTenantConfigs () {
81- TenantConfigProvider configProvider = new TenantConfigProvider (tenantIds , env );
8294 List <TenantConfigProvider .TenantConfig > tenantConfigs = configProvider .getTenantConfigs ();
8395 for (TenantConfigProvider .TenantConfig config : tenantConfigs ) {
8496 assertTenantConfigProvider (config );
@@ -89,7 +101,6 @@ public void testGetTenantConfigs() {
89101 @ ParameterizedTest
90102 @ CsvSource ({ "pitc, acme" })
91103 void testGetTenantConfigByIdForExistingTenantId (String tenantId ) {
92- TenantConfigProvider configProvider = new TenantConfigProvider (tenantIds , env );
93104 Optional <TenantConfigProvider .TenantConfig > config = configProvider .getTenantConfigById (tenantId );
94105 assertTrue (config .isPresent ());
95106 assertTenantConfigProvider (config .get ());
@@ -99,7 +110,6 @@ void testGetTenantConfigByIdForExistingTenantId(String tenantId) {
99110 @ ParameterizedTest
100111 @ CsvSource ({ "PITC-London" })
101112 void testGetTenantConfigByIdForNonExistingTenantId (String nonExistingTenantId ) {
102- TenantConfigProvider configProvider = new TenantConfigProvider (tenantIds , env );
103113 Optional <TenantConfigProvider .TenantConfig > config = configProvider .getTenantConfigById (nonExistingTenantId );
104114 assertTrue (config .isEmpty ());
105115 }
@@ -108,9 +118,6 @@ void testGetTenantConfigByIdForNonExistingTenantId(String nonExistingTenantId) {
108118 @ ParameterizedTest
109119 @ CsvSource ({ "pitc" , "acme" })
110120 void testGetJwkSetUriForExistingTenantId (String tenantId ) {
111- // arrange
112- TenantConfigProvider configProvider = new TenantConfigProvider (tenantIds , env );
113-
114121 // act
115122 Optional <String > jwkSetUri = configProvider .getJwkSetUri (tenantId );
116123
@@ -123,7 +130,6 @@ void testGetJwkSetUriForExistingTenantId(String tenantId) {
123130 @ ParameterizedTest
124131 @ CsvSource ({ "PITC-London" })
125132 void testGetJwkSetUriForNonExistingTenantId (String nonExistingTenantId ) {
126- TenantConfigProvider configProvider = new TenantConfigProvider (tenantIds , env );
127133 Optional <String > jwkSetUri = configProvider .getJwkSetUri (nonExistingTenantId );
128134 assertTrue (jwkSetUri .isEmpty ());
129135 }
@@ -134,13 +140,15 @@ private void assertTenantConfigProvider(TenantConfigProvider.TenantConfig tenant
134140 assertEquals (prefix (tenantId ) + JWK_SET_URI , tenantConfig .jwkSetUri ());
135141 assertEquals (prefix (tenantId ) + FRONTEND_CLIENT_ISSUER_URL , tenantConfig .issuerUrl ());
136142 assertEquals (prefix (tenantId ) + FRONTEND_CLIENT_ID , tenantConfig .clientId ());
137- assertEquals (prefix (tenantId ) + DATASOURCE_URL , tenantConfig .dataSourceConfig ().url ());
138- assertEquals (prefix (tenantId ) + DATASOURCE_NAME , tenantConfig .dataSourceConfig ().name ());
139- assertEquals (prefix (tenantId ) + DATASOURCE_PASSWORD , tenantConfig .dataSourceConfig ().password ());
140- assertEquals (prefix (tenantId ) + DATASOURCE_SCHEMA , tenantConfig .dataSourceConfig ().schema ());
143+ assertEquals (prefix (tenantId ) + DATASOURCE_URL , tenantConfig .dataSourceConfigFlyway ().url ());
144+ assertEquals (prefix (tenantId ) + DATASOURCE_NAME_FLY , tenantConfig .dataSourceConfigFlyway ().name ());
145+ assertEquals (prefix (tenantId ) + DATASOURCE_PASSWORD_FLY , tenantConfig .dataSourceConfigFlyway ().password ());
146+ assertEquals (prefix (tenantId ) + DATASOURCE_NAME_APP , tenantConfig .dataSourceConfigApp ().name ());
147+ assertEquals (prefix (tenantId ) + DATASOURCE_PASSWORD_APP , tenantConfig .dataSourceConfigApp ().password ());
148+ assertEquals (prefix (tenantId ) + DATASOURCE_SCHEMA , tenantConfig .dataSourceConfigApp ().schema ());
141149
142150 assertArrayEquals (new String [] { CHAMPION_EMAILS_1 , CHAMPION_EMAILS_2 }, tenantConfig .okrChampionEmails ());
143- assertEquals (DRIVER_CLASS_NAME , tenantConfig .dataSourceConfig ().driverClassName ());
151+ assertEquals (DRIVER_CLASS_NAME , tenantConfig .dataSourceConfigFlyway ().driverClassName ());
144152 }
145153
146154}
0 commit comments