Skip to content

Commit e2a0359

Browse files
committed
throws an exception if s3Client can't be initialized
1 parent 602d88d commit e2a0359

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

service/src/main/java/uk/nhs/adaptors/gp2gp/common/configuration/AppInitializer.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import software.amazon.awssdk.services.s3.S3Client;
1212
import uk.nhs.adaptors.gp2gp.common.storage.StorageConnectorConfiguration;
1313

14+
import javax.naming.ConfigurationException;
15+
1416
@Component(value = "appInitializer")
1517
@Slf4j
1618
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@@ -20,7 +22,7 @@ public class AppInitializer implements InitializingBean {
2022
private final StorageConnectorConfiguration storageConnectorConfiguration;
2123

2224
@Override
23-
public void afterPropertiesSet() {
25+
public void afterPropertiesSet() throws ConfigurationException {
2426
LOGGER.info("Running app initializer");
2527
if (StringUtils.isNotBlank(storageConnectorConfiguration.getTrustStoreUrl())) {
2628
LOGGER.info("Adding custom TrustStore to default one");
@@ -33,12 +35,12 @@ public void afterPropertiesSet() {
3335
}
3436

3537
@Bean
36-
public S3Client getS3Client() {
38+
public S3Client getS3Client() throws ConfigurationException {
3739
if (StringUtils.isNotBlank(storageConnectorConfiguration.getTrustStoreUrl())
3840
&& storageConnectorConfiguration.getTrustStoreUrl().startsWith(S3_PREFIX)) {
3941
return S3Client.builder().build();
4042
}
4143

42-
return null;
44+
throw new ConfigurationException("S3Client cannot be instantiated due to trust store URL misconfiguration");
4345
}
4446
}

service/src/test/java/uk/nhs/adaptors/gp2gp/common/configuration/AppInitializerTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import org.junit.jupiter.api.BeforeEach;
44
import org.junit.jupiter.api.Test;
5-
import software.amazon.awssdk.services.s3.S3Client;
65
import uk.nhs.adaptors.gp2gp.common.storage.StorageConnectorConfiguration;
7-
import static org.junit.jupiter.api.Assertions.assertNull;
6+
import javax.naming.ConfigurationException;
7+
import static org.junit.jupiter.api.Assertions.assertEquals;
8+
import static org.junit.jupiter.api.Assertions.assertThrows;
89

910
class AppInitializerTest {
1011

12+
public static final String EXPECTED_ERROR_MESSAGE = "S3Client cannot be instantiated due to trust store URL misconfiguration";
1113
private AppInitializer appInitializer;
1214
private StorageConnectorConfiguration storageConnectorConfiguration;
1315

@@ -22,9 +24,9 @@ void getNullWhenTrustStoreUrlDoesNotExists() {
2224
storageConnectorConfiguration.setTrustStoreUrl(null);
2325
appInitializer = new AppInitializer(storageConnectorConfiguration);
2426

25-
S3Client s3Client = appInitializer.getS3Client();
27+
Exception exception = assertThrows(ConfigurationException.class, () -> appInitializer.getS3Client());
2628

27-
assertNull(s3Client);
29+
assertEquals(EXPECTED_ERROR_MESSAGE, exception.getMessage());
2830
}
2931

3032
@Test
@@ -33,8 +35,8 @@ void getNullWhenTrustStoreUrlDoesNotStartWithS3Prefix() {
3335
storageConnectorConfiguration.setTrustStoreUrl("http://localhost");
3436
appInitializer = new AppInitializer(storageConnectorConfiguration);
3537

36-
S3Client s3Client = appInitializer.getS3Client();
38+
Exception exception = assertThrows(ConfigurationException.class, () -> appInitializer.getS3Client());
3739

38-
assertNull(s3Client);
40+
assertEquals(EXPECTED_ERROR_MESSAGE, exception.getMessage());
3941
}
4042
}

0 commit comments

Comments
 (0)