Merge pull request #8569 from M-Abdelbaset/BAEL_3301_testing_@ConfigurationProperties
BAEL_3301_testing @configuration properties
This commit is contained in:
+36
@@ -0,0 +1,36 @@
|
||||
package com.baeldung.boot.configurationproperties;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@EnableConfigurationProperties(value = ServerConfig.class)
|
||||
@ContextConfiguration(classes = ServerConfigFactory.class)
|
||||
@TestPropertySource("classpath:server-config-test.properties")
|
||||
public class BindingPropertiesToBeanMethodsUnitTest {
|
||||
|
||||
@Autowired
|
||||
@Qualifier("default_bean")
|
||||
private ServerConfig serverConfig;
|
||||
|
||||
@Test
|
||||
void givenBeanAnnotatedMethod_whenBindingProperties_thenAllFieldsAreSet() {
|
||||
assertEquals("192.168.0.2", serverConfig.getAddress()
|
||||
.getIp());
|
||||
|
||||
Map<String, String> expectedResourcesPath = new HashMap<>();
|
||||
expectedResourcesPath.put("imgs", "/root/def/imgs");
|
||||
assertEquals(expectedResourcesPath, serverConfig.getResourcesPath());
|
||||
}
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package com.baeldung.boot.configurationproperties;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@EnableConfigurationProperties(value = ServerConfig.class)
|
||||
@TestPropertySource("classpath:server-config-test.properties")
|
||||
public class BindingPropertiesToUserDefinedPOJOUnitTest {
|
||||
|
||||
@Autowired
|
||||
private ServerConfig serverConfig;
|
||||
|
||||
@Test
|
||||
void givenUserDefinedPOJO_whenBindingPropertiesFile_thenAllFieldsAreSet() {
|
||||
assertEquals("192.168.0.1", serverConfig.getAddress()
|
||||
.getIp());
|
||||
|
||||
Map<String, String> expectedResourcesPath = new HashMap<>();
|
||||
expectedResourcesPath.put("imgs", "/root/imgs");
|
||||
assertEquals(expectedResourcesPath, serverConfig.getResourcesPath());
|
||||
}
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.baeldung.boot.configurationproperties;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(initializers = ConfigFileApplicationContextInitializer.class)
|
||||
@EnableConfigurationProperties(value = ServerConfig.class)
|
||||
@ActiveProfiles("test")
|
||||
public class BindingYMLPropertiesUnitTest {
|
||||
|
||||
@Autowired
|
||||
private ServerConfig serverConfig;
|
||||
|
||||
@Test
|
||||
void whenBindingYMLConfigFile_thenAllFieldsAreSet() {
|
||||
assertEquals("192.168.0.4", serverConfig.getAddress()
|
||||
.getIp());
|
||||
|
||||
Map<String, String> expectedResourcesPath = new HashMap<>();
|
||||
expectedResourcesPath.put("imgs", "/etc/test/imgs");
|
||||
assertEquals(expectedResourcesPath, serverConfig.getResourcesPath());
|
||||
}
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.baeldung.boot.configurationproperties;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@EnableConfigurationProperties(value = MailServer.class)
|
||||
@TestPropertySource(properties = { "validate.mail_config.address=new_user@test" })
|
||||
public class OverridingConfigurationPropertiesUnitTest {
|
||||
|
||||
@Autowired
|
||||
private MailServer mailServer;
|
||||
|
||||
@Test
|
||||
void givenUsingPropertiesAttribute_whenAssiginingNewValueToProprty_thenSpringUsesNewValue() {
|
||||
assertEquals("new_user@test", mailServer.getMailConfig()
|
||||
.getAddress());
|
||||
|
||||
Map<String, String> expectedMap = new HashMap<>();
|
||||
expectedMap.put("first", "prop1");
|
||||
expectedMap.put("second", "prop2");
|
||||
assertEquals(expectedMap, mailServer.getPropertiesMap());
|
||||
}
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package com.baeldung.boot.configurationproperties;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import javax.validation.Validation;
|
||||
import javax.validation.Validator;
|
||||
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@EnableConfigurationProperties(value = MailServer.class)
|
||||
@TestPropertySource("classpath:property-validation-test.properties")
|
||||
public class PropertyValidationUnitTest {
|
||||
|
||||
@Autowired
|
||||
private MailServer mailServer;
|
||||
|
||||
private static Validator propertyValidator;
|
||||
|
||||
@BeforeAll
|
||||
public static void setup() {
|
||||
propertyValidator = Validation.buildDefaultValidatorFactory()
|
||||
.getValidator();
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenBindingPropertiesToValidatedBeans_thenConstrainsAreChecked() {
|
||||
assertEquals(0, propertyValidator.validate(mailServer.getPropertiesMap())
|
||||
.size());
|
||||
assertEquals(0, propertyValidator.validate(mailServer.getMailConfig())
|
||||
.size());
|
||||
}
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
package com.baeldung.boot.configurationproperties;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import org.springframework.util.unit.DataSize;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@EnableConfigurationProperties(value = PropertyConversion.class)
|
||||
@ContextConfiguration(classes = CustomCredentialsConverter.class)
|
||||
@TestPropertySource("classpath:spring-conversion-test.properties")
|
||||
public class SpringPropertiesConversionUnitTest {
|
||||
|
||||
@Autowired
|
||||
private PropertyConversion propertyConversion;
|
||||
|
||||
@Test
|
||||
void whenUsingSpringDefaultSizeConversion_thenDataSizeObjectIsSet() {
|
||||
assertEquals(DataSize.ofMegabytes(500), propertyConversion.getUploadSpeed());
|
||||
assertEquals(DataSize.ofGigabytes(10), propertyConversion.getDownloadSpeed());
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUsingSpringDefaultDurationConversion_thenDurationObjectIsSet() {
|
||||
assertEquals(Duration.ofDays(1), propertyConversion.getBackupDay());
|
||||
assertEquals(Duration.ofHours(8), propertyConversion.getBackupHour());
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenRegisteringCustomCredentialsConverter_thenCredentialsAreParsed() {
|
||||
assertEquals("user", propertyConversion.getCredentials()
|
||||
.getUsername());
|
||||
assertEquals("123", propertyConversion.getCredentials()
|
||||
.getPassword());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
spring:
|
||||
profiles: test
|
||||
server:
|
||||
address:
|
||||
ip: 192.168.0.4
|
||||
resources_path:
|
||||
imgs: /etc/test/imgs
|
||||
---
|
||||
spring:
|
||||
profiles: dev
|
||||
server:
|
||||
address:
|
||||
ip: 192.168.0.5
|
||||
resources_path:
|
||||
imgs: /etc/dev/imgs
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
validate.propertiesMap.first=prop1
|
||||
validate.propertiesMap.second=prop2
|
||||
|
||||
validate.mail_config.address=user1@test
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
server.address.ip=192.168.0.1
|
||||
server.resources_path.imgs=/root/imgs
|
||||
|
||||
# default config
|
||||
server.default.address.ip=192.168.0.2
|
||||
server.default.resources_path.imgs=/root/def/imgs
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
# bandwidth
|
||||
server.upload_speed=500MB
|
||||
server.download_speed=10
|
||||
|
||||
# backup date
|
||||
server.backup_day=1d
|
||||
server.backup_hour=8
|
||||
|
||||
# custom converter
|
||||
server.credentials=user,123
|
||||
Reference in New Issue
Block a user