diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/SpringJUnit4SuiteTests.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/SpringJUnit4SuiteTests.java index 58bff255cd..aa29fcecc6 100644 --- a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/SpringJUnit4SuiteTests.java +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/SpringJUnit4SuiteTests.java @@ -22,8 +22,8 @@ import org.junit.runners.Suite.SuiteClasses; import org.springframework.test.context.ClassLevelDirtiesContextTests; import org.springframework.test.context.SpringRunnerContextCacheTests; import org.springframework.test.context.junit4.annotation.AnnotationConfigSpringJUnit4ClassRunnerAppCtxTests; -import org.springframework.test.context.junit4.annotation.DefaultConfigClassBaseTests; -import org.springframework.test.context.junit4.annotation.DefaultConfigClassInheritedTests; +import org.springframework.test.context.junit4.annotation.DefaultConfigClassesBaseTests; +import org.springframework.test.context.junit4.annotation.DefaultConfigClassesInheritedTests; import org.springframework.test.context.junit4.orm.HibernateSessionFlushingTests; /** @@ -52,8 +52,8 @@ StandardJUnit4FeaturesTests.class,// StandardJUnit4FeaturesSpringRunnerTests.class,// SpringJUnit47ClassRunnerRuleTests.class,// AnnotationConfigSpringJUnit4ClassRunnerAppCtxTests.class,// - DefaultConfigClassBaseTests.class,// - DefaultConfigClassInheritedTests.class,// + DefaultConfigClassesBaseTests.class,// + DefaultConfigClassesInheritedTests.class,// ExpectedExceptionSpringRunnerTests.class,// TimedSpringRunnerTests.class,// RepeatedSpringRunnerTests.class,// diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/AnnotationConfigTestSuite.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/AnnotationConfigTestSuite.java index 926c5cc7cf..e2ff34c662 100644 --- a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/AnnotationConfigTestSuite.java +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/AnnotationConfigTestSuite.java @@ -31,8 +31,11 @@ import org.junit.runners.Suite.SuiteClasses; // Note: the following 'multi-line' layout is for enhanced code readability. @SuiteClasses({// AnnotationConfigSpringJUnit4ClassRunnerAppCtxTests.class,// - DefaultConfigClassBaseTests.class,// - DefaultConfigClassInheritedTests.class // + DefaultConfigClassesBaseTests.class,// + DefaultConfigClassesInheritedTests.class,// + BeanOverridingDefaultConfigClassesInheritedTests.class,// + BeanOverridingExplicitConfigClassesInheritedTests.class,// + ExplicitConfigClassesInheritedTests.class // }) public class AnnotationConfigTestSuite { } diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/BeanOverridingDefaultConfigClassesInheritedTests.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/BeanOverridingDefaultConfigClassesInheritedTests.java new file mode 100644 index 0000000000..bb75b3d451 --- /dev/null +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/BeanOverridingDefaultConfigClassesInheritedTests.java @@ -0,0 +1,45 @@ +/* + * Copyright 2002-2011 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.test.context.junit4.annotation; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; +import org.springframework.test.context.ContextConfiguration; + +/** + * Integration tests that verify support for configuration classes in + * the Spring TestContext Framework. + * + *

Configuration will be loaded from {@link DefaultConfigClassesBaseTestsConfig} + * and {@link BeanOverridingDefaultConfigClassesInheritedTestsConfig}. + * + * @author Sam Brannen + * @since 3.1 + */ +@ContextConfiguration +public class BeanOverridingDefaultConfigClassesInheritedTests extends DefaultConfigClassesBaseTests { + + @Test + @Override + public void verifyEmployeeSetFromBaseContextConfig() { + assertNotNull("The employee should have been autowired.", this.employee); + assertEquals("The employee bean should have been overridden.", "Yoda", this.employee.getName()); + } + +} diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/BeanOverridingDefaultConfigClassesInheritedTestsConfig.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/BeanOverridingDefaultConfigClassesInheritedTestsConfig.java new file mode 100644 index 0000000000..5ca5f0fdb0 --- /dev/null +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/BeanOverridingDefaultConfigClassesInheritedTestsConfig.java @@ -0,0 +1,43 @@ +/* + * Copyright 2002-2011 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.test.context.junit4.annotation; + +import org.springframework.beans.Employee; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * ApplicationContext configuration class for + * {@link BeanOverridingDefaultConfigClassesInheritedTests} and + * {@link BeanOverridingExplicitConfigClassesInheritedTests}. + * + * @author Sam Brannen + * @since 3.1 + */ +@Configuration +public class BeanOverridingDefaultConfigClassesInheritedTestsConfig { + + @Bean + public Employee employee() { + Employee employee = new Employee(); + employee.setName("Yoda"); + employee.setAge(900); + employee.setCompany("The Force"); + return employee; + } + +} diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/BeanOverridingExplicitConfigClassesInheritedTests.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/BeanOverridingExplicitConfigClassesInheritedTests.java new file mode 100644 index 0000000000..81a49410d2 --- /dev/null +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/BeanOverridingExplicitConfigClassesInheritedTests.java @@ -0,0 +1,45 @@ +/* + * Copyright 2002-2011 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.test.context.junit4.annotation; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; +import org.springframework.test.context.ContextConfiguration; + +/** + * Integration tests that verify support for configuration classes in + * the Spring TestContext Framework. + * + *

Configuration will be loaded from {@link DefaultConfigClassesBaseTestsConfig} + * and {@link BeanOverridingDefaultConfigClassesInheritedTestsConfig}. + * + * @author Sam Brannen + * @since 3.1 + */ +@ContextConfiguration(classes = BeanOverridingDefaultConfigClassesInheritedTestsConfig.class) +public class BeanOverridingExplicitConfigClassesInheritedTests extends ExplicitConfigClassesBaseTests { + + @Test + @Override + public void verifyEmployeeSetFromBaseContextConfig() { + assertNotNull("The employee should have been autowired.", this.employee); + assertEquals("The employee bean should have been overridden.", "Yoda", this.employee.getName()); + } + +} diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassBaseTests.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesBaseTests.java similarity index 94% rename from org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassBaseTests.java rename to org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesBaseTests.java index 0a994176b3..a1765a3291 100644 --- a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassBaseTests.java +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesBaseTests.java @@ -31,17 +31,17 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader; * Integration tests that verify support for configuration classes in * the Spring TestContext Framework. * - *

Configuration will be loaded from {@link DefaultConfigClassBaseTestsConfig}. + *

Configuration will be loaded from {@link DefaultConfigClassesBaseTestsConfig}. * * @author Sam Brannen * @since 3.1 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(loader = AnnotationConfigContextLoader.class) -public class DefaultConfigClassBaseTests { +public class DefaultConfigClassesBaseTests { @Autowired - private Employee employee; + protected Employee employee; @Test diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassBaseTestsConfig.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesBaseTestsConfig.java similarity index 94% rename from org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassBaseTestsConfig.java rename to org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesBaseTestsConfig.java index 56466b5bf4..d9617d64c8 100644 --- a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassBaseTestsConfig.java +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesBaseTestsConfig.java @@ -21,13 +21,13 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** - * ApplicationContext configuration class for {@link DefaultConfigClassBaseTests}. + * ApplicationContext configuration class for {@link DefaultConfigClassesBaseTests}. * * @author Sam Brannen * @since 3.1 */ @Configuration -public class DefaultConfigClassBaseTestsConfig { +public class DefaultConfigClassesBaseTestsConfig { @Bean public Employee employee() { diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassInheritedTests.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesInheritedTests.java similarity index 89% rename from org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassInheritedTests.java rename to org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesInheritedTests.java index 8a2b37cfd5..cd3fc1fcfc 100644 --- a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassInheritedTests.java +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesInheritedTests.java @@ -28,14 +28,14 @@ import org.springframework.test.context.ContextConfiguration; * Integration tests that verify support for configuration classes in * the Spring TestContext Framework. * - *

Configuration will be loaded from {@link DefaultConfigClassBaseTestsConfig} - * and {@link DefaultConfigClassInheritedTestsConfig}. + *

Configuration will be loaded from {@link DefaultConfigClassesBaseTestsConfig} + * and {@link DefaultConfigClassesInheritedTestsConfig}. * * @author Sam Brannen * @since 3.1 */ @ContextConfiguration -public class DefaultConfigClassInheritedTests extends DefaultConfigClassBaseTests { +public class DefaultConfigClassesInheritedTests extends DefaultConfigClassesBaseTests { @Autowired private Pet pet; diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassInheritedTestsConfig.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesInheritedTestsConfig.java similarity index 92% rename from org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassInheritedTestsConfig.java rename to org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesInheritedTestsConfig.java index a1261d4ec0..359f36a8e2 100644 --- a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassInheritedTestsConfig.java +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/DefaultConfigClassesInheritedTestsConfig.java @@ -21,13 +21,13 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** - * ApplicationContext configuration class for {@link DefaultConfigClassInheritedTests}. + * ApplicationContext configuration class for {@link DefaultConfigClassesInheritedTests}. * * @author Sam Brannen * @since 3.1 */ @Configuration -public class DefaultConfigClassInheritedTestsConfig { +public class DefaultConfigClassesInheritedTestsConfig { @Bean public Pet pet() { diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/ExplicitConfigClassesBaseTests.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/ExplicitConfigClassesBaseTests.java new file mode 100644 index 0000000000..968025791c --- /dev/null +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/ExplicitConfigClassesBaseTests.java @@ -0,0 +1,53 @@ +/* + * Copyright 2002-2011 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.test.context.junit4.annotation; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.Employee; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +/** + * Integration tests that verify support for configuration classes in + * the Spring TestContext Framework. + * + *

Configuration will be loaded from {@link DefaultConfigClassesBaseTestsConfig}. + * + * @author Sam Brannen + * @since 3.1 + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = DefaultConfigClassesBaseTestsConfig.class) +public class ExplicitConfigClassesBaseTests { + + @Autowired + protected Employee employee; + + + @Test + public void verifyEmployeeSetFromBaseContextConfig() { + assertNotNull("The employee should have been autowired.", this.employee); + assertEquals("John Smith", this.employee.getName()); + } + +} diff --git a/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/ExplicitConfigClassesInheritedTests.java b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/ExplicitConfigClassesInheritedTests.java new file mode 100644 index 0000000000..dc8b1d657f --- /dev/null +++ b/org.springframework.test/src/test/java/org/springframework/test/context/junit4/annotation/ExplicitConfigClassesInheritedTests.java @@ -0,0 +1,54 @@ +/* + * Copyright 2002-2011 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.test.context.junit4.annotation; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.Pet; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +/** + * Integration tests that verify support for configuration classes in + * the Spring TestContext Framework. + * + *

Configuration will be loaded from {@link DefaultConfigClassesBaseTestsConfig} + * and {@link DefaultConfigClassesInheritedTestsConfig} + * + * @author Sam Brannen + * @since 3.1 + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = DefaultConfigClassesInheritedTestsConfig.class) +public class ExplicitConfigClassesInheritedTests extends ExplicitConfigClassesBaseTests { + + @Autowired + private Pet pet; + + + @Test + public void verifyPetSetFromExtendedContextConfig() { + assertNotNull("The pet should have been autowired.", this.pet); + assertEquals("Fido", this.pet.getName()); + } + +}