From a805f4b451a77a359732416ee045240b4b616730 Mon Sep 17 00:00:00 2001 From: Ashwin Tumma Date: Mon, 20 Jan 2025 20:12:12 -0800 Subject: [PATCH] Code coverage additions for Cloud (#17621) Code coverage additions for Cloud: AWSCredentialsConfigTest --- .../common/aws/AWSCredentialsConfigTest.java | 57 +++++++++++-------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/cloud/aws-common/src/test/java/org/apache/druid/common/aws/AWSCredentialsConfigTest.java b/cloud/aws-common/src/test/java/org/apache/druid/common/aws/AWSCredentialsConfigTest.java index 522ef1c0cd7c..6d811d30d437 100644 --- a/cloud/aws-common/src/test/java/org/apache/druid/common/aws/AWSCredentialsConfigTest.java +++ b/cloud/aws-common/src/test/java/org/apache/druid/common/aws/AWSCredentialsConfigTest.java @@ -61,25 +61,42 @@ private void cleanProperties() properties.clear(); } + private Injector createInjector() + { + return Guice.createInjector( + binder -> { + binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/test/redis"); + binder.bindConstant().annotatedWith(Names.named("servicePort")).to(0); + binder.bindConstant().annotatedWith(Names.named("tlsServicePort")).to(-1); + binder.bind(Validator.class).toInstance(Validation.buildDefaultValidatorFactory().getValidator()); + binder.bindScope(LazySingleton.class, Scopes.SINGLETON); + binder.bind(JsonConfigurator.class).in(LazySingleton.class); + binder.bind(Properties.class).toInstance(properties); + JsonConfigProvider.bind(binder, PROPERTY_PREFIX, AWSCredentialsConfig.class); + } + ); + } + + @Test + public void testDefaultValues() + { + final Injector injector = createInjector(); + final AWSCredentialsConfig credentialsConfig = injector.getInstance(AWSCredentialsConfig.class); + Assert.assertEquals("", credentialsConfig.getAccessKey().getPassword()); + Assert.assertEquals("", credentialsConfig.getSecretKey().getPassword()); + } + @Test public void testStringProperty() { + final String filePath = "/path/to/credentials"; + properties.put(PROPERTY_PREFIX + ".fileSessionCredentials", filePath); properties.put(PROPERTY_PREFIX + ".accessKey", SOME_SECRET); properties.put(PROPERTY_PREFIX + ".secretKey", SOME_SECRET); - final Injector injector = Guice.createInjector( - binder -> { - binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/test/redis"); - binder.bindConstant().annotatedWith(Names.named("servicePort")).to(0); - binder.bindConstant().annotatedWith(Names.named("tlsServicePort")).to(-1); - binder.bind(Validator.class).toInstance(Validation.buildDefaultValidatorFactory().getValidator()); - binder.bindScope(LazySingleton.class, Scopes.SINGLETON); - binder.bind(JsonConfigurator.class).in(LazySingleton.class); - binder.bind(Properties.class).toInstance(properties); - JsonConfigProvider.bind(binder, PROPERTY_PREFIX, AWSCredentialsConfig.class); - } - ); + final Injector injector = createInjector(); final AWSCredentialsConfig credentialsConfig = injector.getInstance(AWSCredentialsConfig.class); + Assert.assertEquals(filePath, credentialsConfig.getFileSessionCredentials()); Assert.assertEquals(SOME_SECRET, credentialsConfig.getAccessKey().getPassword()); Assert.assertEquals(SOME_SECRET, credentialsConfig.getSecretKey().getPassword()); } @@ -87,23 +104,15 @@ public void testStringProperty() @Test public void testJsonProperty() throws Exception { + final String filePath = "/path/to/credentials"; final String someSecret = new ObjectMapper().writeValueAsString(new DefaultPasswordProvider(SOME_SECRET)); + properties.put(PROPERTY_PREFIX + ".fileSessionCredentials", filePath); properties.put(PROPERTY_PREFIX + ".accessKey", someSecret); properties.put(PROPERTY_PREFIX + ".secretKey", someSecret); - final Injector injector = Guice.createInjector( - binder -> { - binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/test/redis"); - binder.bindConstant().annotatedWith(Names.named("servicePort")).to(0); - binder.bindConstant().annotatedWith(Names.named("tlsServicePort")).to(-1); - binder.bind(Validator.class).toInstance(Validation.buildDefaultValidatorFactory().getValidator()); - binder.bindScope(LazySingleton.class, Scopes.SINGLETON); - binder.bind(JsonConfigurator.class).in(LazySingleton.class); - binder.bind(Properties.class).toInstance(properties); - JsonConfigProvider.bind(binder, PROPERTY_PREFIX, AWSCredentialsConfig.class); - } - ); + final Injector injector = createInjector(); final AWSCredentialsConfig credentialsConfig = injector.getInstance(AWSCredentialsConfig.class); + Assert.assertEquals(filePath, credentialsConfig.getFileSessionCredentials()); Assert.assertEquals(SOME_SECRET, credentialsConfig.getAccessKey().getPassword()); Assert.assertEquals(SOME_SECRET, credentialsConfig.getSecretKey().getPassword()); }