diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e6f67126..b9a151db 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,2 +1,6 @@ spring.activemq.in-memory=true -spring.activemq.pooled=false \ No newline at end of file +spring.activemq.pooled=false +guru.jms.server=10.10.10.123 +guru.jms.port=3330 +guru.jms.user=Ron +guru.jms.password=Burgundy \ No newline at end of file diff --git a/src/test/java/guru/springframework/test/config/SpringBootJavaConfig.java b/src/test/java/guru/springframework/test/config/SpringBootJavaConfig.java new file mode 100644 index 00000000..8765e18f --- /dev/null +++ b/src/test/java/guru/springframework/test/config/SpringBootJavaConfig.java @@ -0,0 +1,34 @@ +package guru.springframework.test.config; + +import guru.springframework.test.jms.FakeJmsBroker; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Created by jt on 5/7/16. + */ +@Configuration +public class SpringBootJavaConfig { + @Value("${guru.jms.server}") + String jmsServer; + + @Value("${guru.jms.port}") + Integer jmsPort; + + @Value("${guru.jms.user}") + String jmsUser; + + @Value("${guru.jms.password}") + String jmsPassword; + + @Bean + public FakeJmsBroker fakeJmsBroker(){ + FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); + fakeJmsBroker.setUrl(jmsServer); + fakeJmsBroker.setPort(jmsPort); + fakeJmsBroker.setUser(jmsUser); + fakeJmsBroker.setPassword(jmsPassword); + return fakeJmsBroker; + } +} diff --git a/src/test/java/guru/springframework/test/external/props/PropertySourceEnvTest.java b/src/test/java/guru/springframework/test/external/props/PropertySourceEnvTest.java new file mode 100644 index 00000000..0bd867f9 --- /dev/null +++ b/src/test/java/guru/springframework/test/external/props/PropertySourceEnvTest.java @@ -0,0 +1,31 @@ +package guru.springframework.test.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import guru.test.config.external.props.ExternalPropsEnvironment; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertEquals; + +/** + * Created by jt on 5/7/16. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = ExternalPropsEnvironment.class) +public class PropertySourceEnvTest { + + @Autowired + FakeJmsBroker fakeJmsBroker; + + @Test + public void testPropsSet() throws Exception { + assertEquals("10.10.10.123", fakeJmsBroker.getUrl()); + assertEquals(3330, fakeJmsBroker.getPort().intValue()); + assertEquals("Ron", fakeJmsBroker.getUser()); + assertEquals("Burgundy", fakeJmsBroker.getPassword()); + } + +} diff --git a/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileS4Test.java b/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileS4Test.java new file mode 100644 index 00000000..50fb2d74 --- /dev/null +++ b/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileS4Test.java @@ -0,0 +1,30 @@ +package guru.springframework.test.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import guru.test.config.external.props.ExternalPropsMultiFileS4; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertEquals; + +/** + * Created by jt on 5/7/16. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = ExternalPropsMultiFileS4.class) +public class PropertySourceMultiFileS4Test { + + @Autowired + FakeJmsBroker fakeJmsBroker; + + @Test + public void testPropsSet() throws Exception { + assertEquals("10.10.10.123", fakeJmsBroker.getUrl()); + assertEquals(3330, fakeJmsBroker.getPort().intValue()); + assertEquals("Ron", fakeJmsBroker.getUser()); + assertEquals("&%$)(*&#^!@!@#$", fakeJmsBroker.getPassword()); + } +} diff --git a/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileTest.java b/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileTest.java new file mode 100644 index 00000000..df0b64c9 --- /dev/null +++ b/src/test/java/guru/springframework/test/external/props/PropertySourceMultiFileTest.java @@ -0,0 +1,30 @@ +package guru.springframework.test.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import guru.test.config.external.props.ExternalPropsMultiFile; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertEquals; + +/** + * Created by jt on 5/7/16. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = ExternalPropsMultiFile.class) +public class PropertySourceMultiFileTest { + + @Autowired + FakeJmsBroker fakeJmsBroker; + + @Test + public void testPropsSet() throws Exception { + assertEquals("10.10.10.123", fakeJmsBroker.getUrl()); + assertEquals(3330, fakeJmsBroker.getPort().intValue()); + assertEquals("Ron", fakeJmsBroker.getUser()); + assertEquals("&%$)(*&#^!@!@#$", fakeJmsBroker.getPassword()); + } +} diff --git a/src/test/java/guru/springframework/test/external/props/PropertySourceTest.java b/src/test/java/guru/springframework/test/external/props/PropertySourceTest.java new file mode 100644 index 00000000..2787613a --- /dev/null +++ b/src/test/java/guru/springframework/test/external/props/PropertySourceTest.java @@ -0,0 +1,30 @@ +package guru.springframework.test.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import guru.test.config.external.props.ExternalPropsPropertySourceTestConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertEquals; + +/** + * Created by jt on 5/7/16. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = ExternalPropsPropertySourceTestConfig.class) +public class PropertySourceTest { + + @Autowired + FakeJmsBroker fakeJmsBroker; + + @Test + public void testPropsSet() throws Exception { + assertEquals("10.10.10.123", fakeJmsBroker.getUrl()); + assertEquals(3330, fakeJmsBroker.getPort().intValue()); + assertEquals("Ron", fakeJmsBroker.getUser()); + assertEquals("Burgundy", fakeJmsBroker.getPassword()); + } +} diff --git a/src/test/java/guru/springframework/test/external/props/SpringBootPropertiesTest.java b/src/test/java/guru/springframework/test/external/props/SpringBootPropertiesTest.java new file mode 100644 index 00000000..0b1ead73 --- /dev/null +++ b/src/test/java/guru/springframework/test/external/props/SpringBootPropertiesTest.java @@ -0,0 +1,34 @@ +package guru.springframework.test.external.props; + +import guru.springframework.SpringCoreDevOpsApplication; +import guru.springframework.test.jms.FakeJmsBroker; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.boot.test.WebIntegrationTest; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.junit.Assert.assertEquals; + +/** + * Created by jt on 5/7/16. + */ +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(SpringCoreDevOpsApplication.class) +@WebIntegrationTest +@TestPropertySource("/application.properties") +public class SpringBootPropertiesTest { + @Autowired + FakeJmsBroker fakeJmsBroker; + + @Test + public void testPropsSet() throws Exception { + assertEquals("10.10.10.123", fakeJmsBroker.getUrl()); + assertEquals(3330, fakeJmsBroker.getPort().intValue()); + assertEquals("Ron", fakeJmsBroker.getUser()); + assertEquals("Burgundy", fakeJmsBroker.getPassword()); + } + +} diff --git a/src/test/java/guru/springframework/test/jms/FakeJmsBroker.java b/src/test/java/guru/springframework/test/jms/FakeJmsBroker.java new file mode 100644 index 00000000..7631d87f --- /dev/null +++ b/src/test/java/guru/springframework/test/jms/FakeJmsBroker.java @@ -0,0 +1,44 @@ +package guru.springframework.test.jms; + +/** + * Created by jt on 5/7/16. + */ +public class FakeJmsBroker { + + private String url; + private Integer port; + private String user; + private String password; + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public Integer getPort() { + return port; + } + + public void setPort(Integer port) { + this.port = port; + } + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/src/test/java/guru/test/config/external/props/ExternalPropsEnvironment.java b/src/test/java/guru/test/config/external/props/ExternalPropsEnvironment.java new file mode 100644 index 00000000..9efe643e --- /dev/null +++ b/src/test/java/guru/test/config/external/props/ExternalPropsEnvironment.java @@ -0,0 +1,29 @@ +package guru.test.config.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; + +/** + * Created by jt on 5/7/16. + */ +@Configuration +@PropertySource("classpath:testing.properties") +public class ExternalPropsEnvironment { + + @Autowired + Environment env; //also from Spring 3.1 + + @Bean + public FakeJmsBroker fakeJmsBrokerEnv(){ + FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); + fakeJmsBroker.setUrl(env.getProperty("guru.jms.server")); + fakeJmsBroker.setPort(env.getRequiredProperty("guru.jms.port", Integer.class)); + fakeJmsBroker.setUser(env.getProperty("guru.jms.user")); + fakeJmsBroker.setPassword(env.getProperty("guru.jms.password")); + return fakeJmsBroker; + } +} diff --git a/src/test/java/guru/test/config/external/props/ExternalPropsMultiFile.java b/src/test/java/guru/test/config/external/props/ExternalPropsMultiFile.java new file mode 100644 index 00000000..89dce1aa --- /dev/null +++ b/src/test/java/guru/test/config/external/props/ExternalPropsMultiFile.java @@ -0,0 +1,29 @@ +package guru.test.config.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; + +/** + * Created by jt on 5/7/16. + */ +@Configuration +@PropertySource({"classpath:testing.properties", "classpath:encrypted-testing.properties"}) +public class ExternalPropsMultiFile { + + @Autowired + Environment env; + + @Bean + public FakeJmsBroker fakeJmsBrokerMulti(){ + FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); + fakeJmsBroker.setUrl(env.getProperty("guru.jms.server")); + fakeJmsBroker.setPort(env.getRequiredProperty("guru.jms.port", Integer.class)); + fakeJmsBroker.setUser(env.getProperty("guru.jms.user")); + fakeJmsBroker.setPassword(env.getProperty("guru.jms.encrypted.password")); + return fakeJmsBroker; + } +} diff --git a/src/test/java/guru/test/config/external/props/ExternalPropsMultiFileS4.java b/src/test/java/guru/test/config/external/props/ExternalPropsMultiFileS4.java new file mode 100644 index 00000000..81024ff3 --- /dev/null +++ b/src/test/java/guru/test/config/external/props/ExternalPropsMultiFileS4.java @@ -0,0 +1,33 @@ +package guru.test.config.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.context.annotation.PropertySources; +import org.springframework.core.env.Environment; + +/** + * Created by jt on 5/7/16. + */ +@Configuration +@PropertySources({ + @PropertySource("classpath:testing.properties"), + @PropertySource("classpath:encrypted-testing.properties") +}) +public class ExternalPropsMultiFileS4 { + + @Autowired + Environment env; + + @Bean + public FakeJmsBroker fakeJmsBrokerMultiS4(){ + FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); + fakeJmsBroker.setUrl(env.getProperty("guru.jms.server")); + fakeJmsBroker.setPort(env.getRequiredProperty("guru.jms.port", Integer.class)); + fakeJmsBroker.setUser(env.getProperty("guru.jms.user")); + fakeJmsBroker.setPassword(env.getProperty("guru.jms.encrypted.password")); + return fakeJmsBroker; + } +} diff --git a/src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java b/src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java new file mode 100644 index 00000000..bd548d48 --- /dev/null +++ b/src/test/java/guru/test/config/external/props/ExternalPropsPropertySourceTestConfig.java @@ -0,0 +1,48 @@ +package guru.test.config.external.props; + +import guru.springframework.test.jms.FakeJmsBroker; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; + +/** + * + * since Spring 3.1 + * Created by jt on 5/7/16. + */ +@Configuration +@PropertySource("classpath:testing.properties") +public class ExternalPropsPropertySourceTestConfig { + + @Value("${guru.jms.server}") + String jmsServer; + + @Value("${guru.jms.port}") + Integer jmsPort; + + @Value("${guru.jms.user}") + String jmsUser; + + @Value("${guru.jms.password}") + String jmsPassword; + + + @Bean + public static PropertySourcesPlaceholderConfigurer properties() { + PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer + = new PropertySourcesPlaceholderConfigurer(); + return propertySourcesPlaceholderConfigurer; + } + + @Bean + public FakeJmsBroker fakeJmsBroker(){ + FakeJmsBroker fakeJmsBroker = new FakeJmsBroker(); + fakeJmsBroker.setUrl(jmsServer); + fakeJmsBroker.setPort(jmsPort); + fakeJmsBroker.setUser(jmsUser); + fakeJmsBroker.setPassword(jmsPassword); + return fakeJmsBroker; + } +} diff --git a/src/test/resources/encrypted-testing.properties b/src/test/resources/encrypted-testing.properties new file mode 100644 index 00000000..bbf3ff72 --- /dev/null +++ b/src/test/resources/encrypted-testing.properties @@ -0,0 +1 @@ +guru.jms.encrypted.password=&%$)(*&#^!@!@#$ \ No newline at end of file diff --git a/src/test/resources/testing.properties b/src/test/resources/testing.properties new file mode 100644 index 00000000..0975f028 --- /dev/null +++ b/src/test/resources/testing.properties @@ -0,0 +1,4 @@ +guru.jms.server=10.10.10.123 +guru.jms.port=3330 +guru.jms.user=Ron +guru.jms.password=Burgundy \ No newline at end of file