Merge branch '6.2.x'
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,30 +14,26 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr6128;
|
||||
package org.springframework.test.context;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Integration tests to verify claims made in <a
|
||||
* href="https://jira.springframework.org/browse/SPR-6128"
|
||||
* target="_blank">SPR-6128</a>.
|
||||
* Integration tests to verify claims made in
|
||||
* <a href="https://github.com/spring-projects/spring-framework/issues/10796">gh-10796</a>.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @author Chris Beams
|
||||
* @since 3.0
|
||||
*/
|
||||
@ContextConfiguration
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
public class AutowiredQualifierTests {
|
||||
@SpringJUnitConfig
|
||||
class AutowiredQualifierTests {
|
||||
|
||||
@Autowired
|
||||
private String foo;
|
||||
@@ -48,7 +44,7 @@ public class AutowiredQualifierTests {
|
||||
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
void test() {
|
||||
assertThat(foo).isEqualTo("normal");
|
||||
assertThat(customFoo).isEqualTo("custom");
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -20,9 +20,8 @@ import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.MethodOrderer;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.TestMethodOrder;
|
||||
import org.junit.runner.JUnitCore;
|
||||
import org.junit.runner.Result;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.platform.testkit.engine.EngineTestKit;
|
||||
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
@@ -32,9 +31,10 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.annotation.DirtiesContext.HierarchyMode;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
|
||||
|
||||
/**
|
||||
* Integration tests that verify proper behavior of {@link DirtiesContext @DirtiesContext}
|
||||
@@ -87,9 +87,11 @@ class ContextHierarchyDirtiesContextTests {
|
||||
private void runTestAndVerifyHierarchies(Class<? extends FooTestCase> testClass, boolean isFooContextActive,
|
||||
boolean isBarContextActive, boolean isBazContextActive) {
|
||||
|
||||
JUnitCore jUnitCore = new JUnitCore();
|
||||
Result result = jUnitCore.run(testClass);
|
||||
assertThat(result.wasSuccessful()).as("all tests passed").isTrue();
|
||||
EngineTestKit.engine("junit-jupiter")
|
||||
.selectors(selectClass(testClass))
|
||||
.execute()
|
||||
.testEvents()
|
||||
.assertStatistics(stats -> stats.started(1).succeeded(1).failed(0));
|
||||
|
||||
assertThat(ContextHierarchyDirtiesContextTests.context).isNotNull();
|
||||
|
||||
@@ -111,7 +113,7 @@ class ContextHierarchyDirtiesContextTests {
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextHierarchy(@ContextConfiguration(name = "foo"))
|
||||
abstract static class FooTestCase implements ApplicationContextAware {
|
||||
|
||||
@@ -170,10 +172,10 @@ class ContextHierarchyDirtiesContextTests {
|
||||
* context.
|
||||
*/
|
||||
@DirtiesContext
|
||||
public static class ClassLevelDirtiesContextWithExhaustiveModeTestCase extends BazTestCase {
|
||||
static class ClassLevelDirtiesContextWithExhaustiveModeTestCase extends BazTestCase {
|
||||
|
||||
@org.junit.Test
|
||||
public void test() {
|
||||
@Test
|
||||
void test() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,10 +186,10 @@ class ContextHierarchyDirtiesContextTests {
|
||||
* beginning from the current context hierarchy and down through all subhierarchies.
|
||||
*/
|
||||
@DirtiesContext(hierarchyMode = HierarchyMode.CURRENT_LEVEL)
|
||||
public static class ClassLevelDirtiesContextWithCurrentLevelModeTestCase extends BazTestCase {
|
||||
static class ClassLevelDirtiesContextWithCurrentLevelModeTestCase extends BazTestCase {
|
||||
|
||||
@org.junit.Test
|
||||
public void test() {
|
||||
@Test
|
||||
void test() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,11 +201,11 @@ class ContextHierarchyDirtiesContextTests {
|
||||
* parent context, and then back down through all subhierarchies of the parent
|
||||
* context.
|
||||
*/
|
||||
public static class MethodLevelDirtiesContextWithExhaustiveModeTestCase extends BazTestCase {
|
||||
static class MethodLevelDirtiesContextWithExhaustiveModeTestCase extends BazTestCase {
|
||||
|
||||
@org.junit.Test
|
||||
@Test
|
||||
@DirtiesContext
|
||||
public void test() {
|
||||
void test() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,11 +215,11 @@ class ContextHierarchyDirtiesContextTests {
|
||||
* <p>After running this test class, the context cache should be cleared
|
||||
* beginning from the current context hierarchy and down through all subhierarchies.
|
||||
*/
|
||||
public static class MethodLevelDirtiesContextWithCurrentLevelModeTestCase extends BazTestCase {
|
||||
static class MethodLevelDirtiesContextWithCurrentLevelModeTestCase extends BazTestCase {
|
||||
|
||||
@org.junit.Test
|
||||
@Test
|
||||
@DirtiesContext(hierarchyMode = HierarchyMode.CURRENT_LEVEL)
|
||||
public void test() {
|
||||
void test() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.springframework.test.context;
|
||||
|
||||
import org.junit.jupiter.api.ClassOrderer;
|
||||
import org.junit.platform.suite.api.ConfigurationParameter;
|
||||
import org.junit.platform.suite.api.ExcludeTags;
|
||||
import org.junit.platform.suite.api.IncludeClassNamePatterns;
|
||||
import org.junit.platform.suite.api.SelectPackages;
|
||||
@@ -44,5 +46,9 @@ import org.junit.platform.suite.api.Suite;
|
||||
@SelectPackages("org.springframework.test.context")
|
||||
@IncludeClassNamePatterns(".*Tests?$")
|
||||
@ExcludeTags("failing-test-case")
|
||||
@ConfigurationParameter(
|
||||
key = ClassOrderer.DEFAULT_ORDER_PROPERTY_NAME,
|
||||
value = "org.junit.jupiter.api.ClassOrderer$ClassName"
|
||||
)
|
||||
class SpringTestContextFrameworkTestSuite {
|
||||
}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright 2002-2025 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
|
||||
*
|
||||
* https://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.annotation;
|
||||
|
||||
import org.junit.jupiter.api.ClassOrderer;
|
||||
import org.junit.platform.suite.api.ConfigurationParameter;
|
||||
import org.junit.platform.suite.api.IncludeClassNamePatterns;
|
||||
import org.junit.platform.suite.api.IncludeEngines;
|
||||
import org.junit.platform.suite.api.SelectPackages;
|
||||
import org.junit.platform.suite.api.Suite;
|
||||
|
||||
/**
|
||||
* JUnit Platform based test suite annotation-driven <em>configuration class</em>
|
||||
* support in the Spring TestContext Framework.
|
||||
*
|
||||
* <p><strong>This suite is only intended to be used manually within an IDE.</strong>
|
||||
*
|
||||
* <h3>Logging Configuration</h3>
|
||||
*
|
||||
* <p>In order for our log4j2 configuration to be used in an IDE, you must
|
||||
* set the following system property before running any tests — for
|
||||
* example, in <em>Run Configurations</em> in Eclipse.
|
||||
*
|
||||
* <pre style="code">
|
||||
* -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
|
||||
* </pre>
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@Suite
|
||||
@IncludeEngines("junit-jupiter")
|
||||
@SelectPackages("org.springframework.test.context.annotation")
|
||||
@IncludeClassNamePatterns(".*Tests$")
|
||||
@ConfigurationParameter(
|
||||
key = ClassOrderer.DEFAULT_ORDER_PROPERTY_NAME,
|
||||
value = "org.junit.jupiter.api.ClassOrderer$ClassName"
|
||||
)
|
||||
public class AnnotationConfigTestSuite {
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -36,13 +36,21 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 3.1
|
||||
*/
|
||||
@ContextConfiguration
|
||||
public class BeanOverridingDefaultConfigClassesInheritedTests extends DefaultConfigClassesBaseTests {
|
||||
class BeanOverridingDefaultConfigClassesInheritedTests extends DefaultConfigClassesBaseTests {
|
||||
|
||||
@Configuration
|
||||
@Test
|
||||
@Override
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).as("The employee bean should have been overridden.").isEqualTo("Yoda");
|
||||
}
|
||||
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class ContextConfiguration {
|
||||
|
||||
@Bean
|
||||
public Employee employee() {
|
||||
Employee employee() {
|
||||
Employee employee = new Employee();
|
||||
employee.setName("Yoda");
|
||||
employee.setAge(900);
|
||||
@@ -51,12 +59,4 @@ public class BeanOverridingDefaultConfigClassesInheritedTests extends DefaultCon
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).as("The employee bean should have been overridden.").isEqualTo("Yoda");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
||||
@@ -33,11 +33,11 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 3.1
|
||||
*/
|
||||
@ContextConfiguration(classes = BeanOverridingDefaultConfigClassesInheritedTests.ContextConfiguration.class)
|
||||
public class BeanOverridingExplicitConfigClassesInheritedTests extends ExplicitConfigClassesBaseTests {
|
||||
class BeanOverridingExplicitConfigClassesInheritedTests extends ExplicitConfigClassesBaseTests {
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).as("The employee bean should have been overridden.").isEqualTo("Yoda");
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,17 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -39,15 +37,25 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 3.1
|
||||
* @see DefaultLoaderDefaultConfigClassesBaseTests
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(loader = AnnotationConfigContextLoader.class)
|
||||
public class DefaultConfigClassesBaseTests {
|
||||
@SpringJUnitConfig(loader = AnnotationConfigContextLoader.class)
|
||||
class DefaultConfigClassesBaseTests {
|
||||
|
||||
@Configuration
|
||||
@Autowired
|
||||
Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee field should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class ContextConfiguration {
|
||||
|
||||
@Bean
|
||||
public Employee employee() {
|
||||
Employee employee() {
|
||||
Employee employee = new Employee();
|
||||
employee.setName("John Smith");
|
||||
employee.setAge(42);
|
||||
@@ -56,15 +64,4 @@ public class DefaultConfigClassesBaseTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Autowired
|
||||
protected Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee field should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
@@ -37,26 +37,26 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 3.1
|
||||
*/
|
||||
@ContextConfiguration
|
||||
public class DefaultConfigClassesInheritedTests extends DefaultConfigClassesBaseTests {
|
||||
|
||||
@Configuration
|
||||
static class ContextConfiguration {
|
||||
|
||||
@Bean
|
||||
public Pet pet() {
|
||||
return new Pet("Fido");
|
||||
}
|
||||
}
|
||||
|
||||
class DefaultConfigClassesInheritedTests extends DefaultConfigClassesBaseTests {
|
||||
|
||||
@Autowired
|
||||
private Pet pet;
|
||||
Pet pet;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyPetSetFromExtendedContextConfig() {
|
||||
void verifyPetSetFromExtendedContextConfig() {
|
||||
assertThat(this.pet).as("The pet should have been autowired.").isNotNull();
|
||||
assertThat(this.pet.getName()).isEqualTo("Fido");
|
||||
}
|
||||
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class ContextConfiguration {
|
||||
|
||||
@Bean
|
||||
Pet pet() {
|
||||
return new Pet("Fido");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -35,14 +35,22 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 3.1
|
||||
*/
|
||||
@ContextConfiguration
|
||||
public class DefaultLoaderBeanOverridingDefaultConfigClassesInheritedTests extends
|
||||
class DefaultLoaderBeanOverridingDefaultConfigClassesInheritedTests extends
|
||||
DefaultLoaderDefaultConfigClassesBaseTests {
|
||||
|
||||
@Configuration
|
||||
@Test
|
||||
@Override
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).as("The employee bean should have been overridden.").isEqualTo("Yoda");
|
||||
}
|
||||
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
public Employee employee() {
|
||||
Employee employee() {
|
||||
Employee employee = new Employee();
|
||||
employee.setName("Yoda");
|
||||
employee.setAge(900);
|
||||
@@ -51,12 +59,4 @@ public class DefaultLoaderBeanOverridingDefaultConfigClassesInheritedTests exten
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).as("The employee bean should have been overridden.").isEqualTo("Yoda");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.support.DelegatingSmartContextLoader;
|
||||
@@ -32,12 +32,12 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 3.1
|
||||
*/
|
||||
@ContextConfiguration(classes = DefaultLoaderBeanOverridingDefaultConfigClassesInheritedTests.Config.class)
|
||||
public class DefaultLoaderBeanOverridingExplicitConfigClassesInheritedTests extends
|
||||
class DefaultLoaderBeanOverridingExplicitConfigClassesInheritedTests extends
|
||||
DefaultLoaderExplicitConfigClassesBaseTests {
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).as("The employee bean should have been overridden.").isEqualTo("Yoda");
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,17 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.support.DelegatingSmartContextLoader;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -38,15 +36,25 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 3.1
|
||||
* @see DefaultConfigClassesBaseTests
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
public class DefaultLoaderDefaultConfigClassesBaseTests {
|
||||
@SpringJUnitConfig
|
||||
class DefaultLoaderDefaultConfigClassesBaseTests {
|
||||
|
||||
@Configuration
|
||||
@Autowired
|
||||
Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee field should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
public Employee employee() {
|
||||
Employee employee() {
|
||||
Employee employee = new Employee();
|
||||
employee.setName("John Smith");
|
||||
employee.setAge(42);
|
||||
@@ -55,15 +63,4 @@ public class DefaultLoaderDefaultConfigClassesBaseTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Autowired
|
||||
protected Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee field should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
@@ -36,26 +36,26 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 3.1
|
||||
*/
|
||||
@ContextConfiguration
|
||||
public class DefaultLoaderDefaultConfigClassesInheritedTests extends DefaultLoaderDefaultConfigClassesBaseTests {
|
||||
|
||||
@Configuration
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
public Pet pet() {
|
||||
return new Pet("Fido");
|
||||
}
|
||||
}
|
||||
|
||||
class DefaultLoaderDefaultConfigClassesInheritedTests extends DefaultLoaderDefaultConfigClassesBaseTests {
|
||||
|
||||
@Autowired
|
||||
private Pet pet;
|
||||
Pet pet;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyPetSetFromExtendedContextConfig() {
|
||||
void verifyPetSetFromExtendedContextConfig() {
|
||||
assertThat(this.pet).as("The pet should have been autowired.").isNotNull();
|
||||
assertThat(this.pet.getName()).isEqualTo("Fido");
|
||||
}
|
||||
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
Pet pet() {
|
||||
return new Pet("Fido");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,15 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.support.DelegatingSmartContextLoader;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -35,16 +33,15 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = DefaultLoaderDefaultConfigClassesBaseTests.Config.class)
|
||||
public class DefaultLoaderExplicitConfigClassesBaseTests {
|
||||
@SpringJUnitConfig(DefaultLoaderDefaultConfigClassesBaseTests.Config.class)
|
||||
class DefaultLoaderExplicitConfigClassesBaseTests {
|
||||
|
||||
@Autowired
|
||||
protected Employee employee;
|
||||
Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,15 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.support.DelegatingSmartContextLoader;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -35,16 +33,15 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = DefaultLoaderDefaultConfigClassesInheritedTests.Config.class)
|
||||
public class DefaultLoaderExplicitConfigClassesInheritedTests extends DefaultLoaderExplicitConfigClassesBaseTests {
|
||||
@SpringJUnitConfig(DefaultLoaderDefaultConfigClassesInheritedTests.Config.class)
|
||||
class DefaultLoaderExplicitConfigClassesInheritedTests extends DefaultLoaderExplicitConfigClassesBaseTests {
|
||||
|
||||
@Autowired
|
||||
private Pet pet;
|
||||
Pet pet;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyPetSetFromExtendedContextConfig() {
|
||||
void verifyPetSetFromExtendedContextConfig() {
|
||||
assertThat(this.pet).as("The pet should have been autowired.").isNotNull();
|
||||
assertThat(this.pet.getName()).isEqualTo("Fido");
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,15 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -36,16 +34,15 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = DefaultConfigClassesBaseTests.ContextConfiguration.class)
|
||||
public class ExplicitConfigClassesBaseTests {
|
||||
@SpringJUnitConfig(loader = AnnotationConfigContextLoader.class, classes = DefaultConfigClassesBaseTests.ContextConfiguration.class)
|
||||
class ExplicitConfigClassesBaseTests {
|
||||
|
||||
@Autowired
|
||||
protected Employee employee;
|
||||
Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,15 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -37,16 +35,15 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = DefaultConfigClassesInheritedTests.ContextConfiguration.class)
|
||||
public class ExplicitConfigClassesInheritedTests extends ExplicitConfigClassesBaseTests {
|
||||
@SpringJUnitConfig(loader = AnnotationConfigContextLoader.class, classes = DefaultConfigClassesInheritedTests.ContextConfiguration.class)
|
||||
class ExplicitConfigClassesInheritedTests extends ExplicitConfigClassesBaseTests {
|
||||
|
||||
@Autowired
|
||||
private Pet pet;
|
||||
Pet pet;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyPetSetFromExtendedContextConfig() {
|
||||
void verifyPetSetFromExtendedContextConfig() {
|
||||
assertThat(this.pet).as("The pet should have been autowired.").isNotNull();
|
||||
assertThat(this.pet.getName()).isEqualTo("Fido");
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2013 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.annotation;
|
||||
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
@@ -32,7 +32,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@Configuration
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
public class PojoAndStringConfig {
|
||||
|
||||
@Bean
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation.meta;
|
||||
package org.springframework.test.context.annotation.meta;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,13 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation.meta;
|
||||
package org.springframework.test.context.annotation.meta;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -31,16 +31,17 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 4.0.3
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ConfigClassesAndProfileResolverWithCustomDefaultsMetaConfig
|
||||
public class ConfigClassesAndProfileResolverWithCustomDefaultsMetaConfigTests {
|
||||
class ConfigClassesAndProfileResolverWithCustomDefaultsMetaConfigTests {
|
||||
|
||||
@Autowired
|
||||
private String foo;
|
||||
|
||||
|
||||
@Test
|
||||
public void foo() {
|
||||
void foo() {
|
||||
assertThat(foo).isEqualTo("Resolver Foo");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,17 +14,17 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation.meta;
|
||||
package org.springframework.test.context.annotation.meta;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.test.context.ActiveProfilesResolver;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -35,18 +35,19 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 4.0.3
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ConfigClassesAndProfileResolverWithCustomDefaultsMetaConfig(classes = LocalDevConfig.class, resolver = DevResolver.class)
|
||||
public class ConfigClassesAndProfileResolverWithCustomDefaultsMetaConfigWithOverridesTests {
|
||||
class ConfigClassesAndProfileResolverWithCustomDefaultsMetaConfigWithOverridesTests {
|
||||
|
||||
@Autowired
|
||||
private String foo;
|
||||
|
||||
|
||||
@Test
|
||||
public void foo() {
|
||||
void foo() {
|
||||
assertThat(foo).isEqualTo("Local Dev Foo");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation.meta;
|
||||
package org.springframework.test.context.annotation.meta;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,16 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation.meta;
|
||||
package org.springframework.test.context.annotation.meta;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -35,37 +35,38 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 4.0.3
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ConfigClassesAndProfilesMetaConfig(profiles = "dev")
|
||||
public class ConfigClassesAndProfilesMetaConfigTests {
|
||||
class ConfigClassesAndProfilesMetaConfigTests {
|
||||
|
||||
@Configuration
|
||||
@Autowired
|
||||
String foo;
|
||||
|
||||
|
||||
@Test
|
||||
void foo() {
|
||||
assertThat(foo).isEqualTo("Local Dev Foo");
|
||||
}
|
||||
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@Profile("dev")
|
||||
static class DevConfig {
|
||||
|
||||
@Bean
|
||||
public String foo() {
|
||||
String foo() {
|
||||
return "Local Dev Foo";
|
||||
}
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@Profile("prod")
|
||||
static class ProductionConfig {
|
||||
|
||||
@Bean
|
||||
public String foo() {
|
||||
String foo() {
|
||||
return "Local Production Foo";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Autowired
|
||||
private String foo;
|
||||
|
||||
|
||||
@Test
|
||||
public void foo() {
|
||||
assertThat(foo).isEqualTo("Local Dev Foo");
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation.meta;
|
||||
package org.springframework.test.context.annotation.meta;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,13 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation.meta;
|
||||
package org.springframework.test.context.annotation.meta;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -31,16 +31,17 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 4.0
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ConfigClassesAndProfilesWithCustomDefaultsMetaConfig
|
||||
public class ConfigClassesAndProfilesWithCustomDefaultsMetaConfigTests {
|
||||
class ConfigClassesAndProfilesWithCustomDefaultsMetaConfigTests {
|
||||
|
||||
@Autowired
|
||||
private String foo;
|
||||
String foo;
|
||||
|
||||
|
||||
@Test
|
||||
public void foo() {
|
||||
void foo() {
|
||||
assertThat(foo).isEqualTo("Dev Foo");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,17 +14,17 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation.meta;
|
||||
package org.springframework.test.context.annotation.meta;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.annotation.PojoAndStringConfig;
|
||||
import org.springframework.test.context.junit4.annotation.meta.ConfigClassesAndProfilesWithCustomDefaultsMetaConfig.ProductionConfig;
|
||||
import org.springframework.test.context.annotation.PojoAndStringConfig;
|
||||
import org.springframework.test.context.annotation.meta.ConfigClassesAndProfilesWithCustomDefaultsMetaConfig.ProductionConfig;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -35,35 +35,35 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 4.0
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ConfigClassesAndProfilesWithCustomDefaultsMetaConfig(
|
||||
classes = { PojoAndStringConfig.class, ProductionConfig.class }, profiles = "prod")
|
||||
public class ConfigClassesAndProfilesWithCustomDefaultsMetaConfigWithOverridesTests {
|
||||
class ConfigClassesAndProfilesWithCustomDefaultsMetaConfigWithOverridesTests {
|
||||
|
||||
@Autowired
|
||||
private String foo;
|
||||
String foo;
|
||||
|
||||
@Autowired
|
||||
private Pet pet;
|
||||
Pet pet;
|
||||
|
||||
@Autowired
|
||||
protected Employee employee;
|
||||
Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyEmployee() {
|
||||
void verifyEmployee() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void verifyPet() {
|
||||
void verifyPet() {
|
||||
assertThat(this.pet).as("The pet should have been autowired.").isNotNull();
|
||||
assertThat(this.pet.getName()).isEqualTo("Fido");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void verifyFoo() {
|
||||
void verifyFoo() {
|
||||
assertThat(this.foo).isEqualTo("Production Foo");
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation.meta;
|
||||
package org.springframework.test.context.annotation.meta;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,13 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation.meta;
|
||||
package org.springframework.test.context.annotation.meta;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -32,16 +32,17 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 4.0.3
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@MetaMetaConfig
|
||||
public class MetaMetaConfigDefaultsTests {
|
||||
class MetaMetaConfigDefaultsTests {
|
||||
|
||||
@Autowired
|
||||
private String foo;
|
||||
String foo;
|
||||
|
||||
|
||||
@Test
|
||||
public void foo() {
|
||||
void foo() {
|
||||
assertThat(foo).isEqualTo("Production Foo");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -31,6 +31,7 @@ import org.springframework.test.annotation.DirtiesContext.ClassMode;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.TestExecutionListeners;
|
||||
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
|
||||
import org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener;
|
||||
import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
|
||||
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
|
||||
import org.springframework.test.context.testng.TrackingTestNGTestListener;
|
||||
@@ -162,12 +163,18 @@ class ClassLevelDirtiesContextTestNGTests {
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
@TestExecutionListeners(listeners = { DependencyInjectionTestExecutionListener.class,
|
||||
DirtiesContextTestExecutionListener.class }, inheritListeners = false)
|
||||
@ContextConfiguration
|
||||
// Ensure that we do not include the EventPublishingTestExecutionListener
|
||||
// since it will access the ApplicationContext for each method in the
|
||||
// TestExecutionListener API, thus distorting our cache hit/miss results.
|
||||
@TestExecutionListeners({
|
||||
DirtiesContextBeforeModesTestExecutionListener.class,
|
||||
DependencyInjectionTestExecutionListener.class,
|
||||
DirtiesContextTestExecutionListener.class
|
||||
})
|
||||
abstract static class BaseTestCase extends AbstractTestNGSpringContextTests {
|
||||
|
||||
@Configuration
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class Config {
|
||||
/* no beans */
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2023 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -21,7 +21,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.platform.testkit.engine.EngineTestKit;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
@@ -31,15 +32,14 @@ import org.springframework.test.annotation.DirtiesContext.ClassMode;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.TestExecutionListeners;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
|
||||
import org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener;
|
||||
import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
|
||||
import static org.springframework.test.context.cache.ContextCacheTestUtils.assertContextCacheStatistics;
|
||||
import static org.springframework.test.context.cache.ContextCacheTestUtils.resetContextCache;
|
||||
import static org.springframework.test.context.junit4.JUnitTestingUtils.runTestsAndAssertCounters;
|
||||
|
||||
/**
|
||||
* JUnit based integration test which verifies correct {@linkplain ContextCache
|
||||
@@ -131,15 +131,24 @@ class ClassLevelDirtiesContextTests {
|
||||
0, cacheHits.incrementAndGet(), cacheMisses.get());
|
||||
}
|
||||
|
||||
private void runTestClassAndAssertStats(Class<?> testClass, int expectedTestCount) throws Exception {
|
||||
runTestsAndAssertCounters(testClass, expectedTestCount, 0, expectedTestCount, 0, 0);
|
||||
}
|
||||
|
||||
private void assertBehaviorForCleanTestCase() throws Exception {
|
||||
runTestClassAndAssertStats(CleanTestCase.class, 1);
|
||||
assertContextCacheStatistics("after clean test class", 1, cacheHits.get(), cacheMisses.incrementAndGet());
|
||||
}
|
||||
|
||||
private void runTestClassAndAssertStats(Class<?> testClass, int expectedTestCount) throws Exception {
|
||||
EngineTestKit.engine("junit-jupiter")
|
||||
.selectors(selectClass(testClass))
|
||||
.execute()
|
||||
.testEvents()
|
||||
.assertStatistics(stats -> stats
|
||||
.started(expectedTestCount)
|
||||
.finished(expectedTestCount)
|
||||
.succeeded(expectedTestCount)
|
||||
.failed(0)
|
||||
.aborted(0));
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
static void verifyFinalCacheState() {
|
||||
assertContextCacheStatistics("AfterClass", 0, cacheHits.get(), cacheMisses.get());
|
||||
@@ -148,7 +157,7 @@ class ClassLevelDirtiesContextTests {
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration
|
||||
// Ensure that we do not include the EventPublishingTestExecutionListener
|
||||
// since it will access the ApplicationContext for each method in the
|
||||
@@ -160,7 +169,7 @@ class ClassLevelDirtiesContextTests {
|
||||
})
|
||||
abstract static class BaseTestCase {
|
||||
|
||||
@Configuration
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class Config {
|
||||
/* no beans */
|
||||
}
|
||||
@@ -175,75 +184,75 @@ class ClassLevelDirtiesContextTests {
|
||||
}
|
||||
}
|
||||
|
||||
public static final class CleanTestCase extends BaseTestCase {
|
||||
static final class CleanTestCase extends BaseTestCase {
|
||||
|
||||
@org.junit.Test
|
||||
public void verifyContextWasAutowired() {
|
||||
@Test
|
||||
void verifyContextWasAutowired() {
|
||||
assertApplicationContextWasAutowired();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@DirtiesContext
|
||||
public static class ClassLevelDirtiesContextWithCleanMethodsAndDefaultModeTestCase extends BaseTestCase {
|
||||
static class ClassLevelDirtiesContextWithCleanMethodsAndDefaultModeTestCase extends BaseTestCase {
|
||||
|
||||
@org.junit.Test
|
||||
public void verifyContextWasAutowired() {
|
||||
@Test
|
||||
void verifyContextWasAutowired() {
|
||||
assertApplicationContextWasAutowired();
|
||||
}
|
||||
}
|
||||
|
||||
public static class InheritedClassLevelDirtiesContextWithCleanMethodsAndDefaultModeTestCase extends
|
||||
static class InheritedClassLevelDirtiesContextWithCleanMethodsAndDefaultModeTestCase extends
|
||||
ClassLevelDirtiesContextWithCleanMethodsAndDefaultModeTestCase {
|
||||
}
|
||||
|
||||
@DirtiesContext(classMode = ClassMode.AFTER_CLASS)
|
||||
public static class ClassLevelDirtiesContextWithCleanMethodsAndAfterClassModeTestCase extends BaseTestCase {
|
||||
static class ClassLevelDirtiesContextWithCleanMethodsAndAfterClassModeTestCase extends BaseTestCase {
|
||||
|
||||
@org.junit.Test
|
||||
public void verifyContextWasAutowired() {
|
||||
@Test
|
||||
void verifyContextWasAutowired() {
|
||||
assertApplicationContextWasAutowired();
|
||||
}
|
||||
}
|
||||
|
||||
public static class InheritedClassLevelDirtiesContextWithCleanMethodsAndAfterClassModeTestCase extends
|
||||
static class InheritedClassLevelDirtiesContextWithCleanMethodsAndAfterClassModeTestCase extends
|
||||
ClassLevelDirtiesContextWithCleanMethodsAndAfterClassModeTestCase {
|
||||
}
|
||||
|
||||
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
|
||||
public static class ClassLevelDirtiesContextWithAfterEachTestMethodModeTestCase extends BaseTestCase {
|
||||
static class ClassLevelDirtiesContextWithAfterEachTestMethodModeTestCase extends BaseTestCase {
|
||||
|
||||
@org.junit.Test
|
||||
public void verifyContextWasAutowired1() {
|
||||
@Test
|
||||
void verifyContextWasAutowired1() {
|
||||
assertApplicationContextWasAutowired();
|
||||
}
|
||||
|
||||
@org.junit.Test
|
||||
public void verifyContextWasAutowired2() {
|
||||
@Test
|
||||
void verifyContextWasAutowired2() {
|
||||
assertApplicationContextWasAutowired();
|
||||
}
|
||||
|
||||
@org.junit.Test
|
||||
public void verifyContextWasAutowired3() {
|
||||
@Test
|
||||
void verifyContextWasAutowired3() {
|
||||
assertApplicationContextWasAutowired();
|
||||
}
|
||||
}
|
||||
|
||||
public static class InheritedClassLevelDirtiesContextWithAfterEachTestMethodModeTestCase extends
|
||||
static class InheritedClassLevelDirtiesContextWithAfterEachTestMethodModeTestCase extends
|
||||
ClassLevelDirtiesContextWithAfterEachTestMethodModeTestCase {
|
||||
}
|
||||
|
||||
@DirtiesContext
|
||||
public static class ClassLevelDirtiesContextWithDirtyMethodsTestCase extends BaseTestCase {
|
||||
static class ClassLevelDirtiesContextWithDirtyMethodsTestCase extends BaseTestCase {
|
||||
|
||||
@org.junit.Test
|
||||
@Test
|
||||
@DirtiesContext
|
||||
public void dirtyContext() {
|
||||
void dirtyContext() {
|
||||
assertApplicationContextWasAutowired();
|
||||
}
|
||||
}
|
||||
|
||||
public static class InheritedClassLevelDirtiesContextWithDirtyMethodsTestCase extends
|
||||
static class InheritedClassLevelDirtiesContextWithDirtyMethodsTestCase extends
|
||||
ClassLevelDirtiesContextWithDirtyMethodsTestCase {
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -37,7 +37,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.springframework.test.annotation.DirtiesContext.MethodMode.BEFORE_METHOD;
|
||||
|
||||
/**
|
||||
* Integration test which verifies correct interaction between the
|
||||
* Integration tests which verify correct interaction between the
|
||||
* {@link DirtiesContextBeforeModesTestExecutionListener},
|
||||
* {@link DependencyInjectionTestExecutionListener}, and
|
||||
* {@link DirtiesContextTestExecutionListener} when
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -37,10 +37,9 @@ import static org.springframework.test.context.cache.ContextCacheTestUtils.asser
|
||||
import static org.springframework.test.context.cache.ContextCacheTestUtils.resetContextCache;
|
||||
|
||||
/**
|
||||
* Unit tests which verify correct {@link ContextCache
|
||||
* application context caching} in conjunction with the
|
||||
* {@link SpringExtension} and the {@link DirtiesContext
|
||||
* @DirtiesContext} annotation at the method level.
|
||||
* JUnit based integration test which verifies correct {@linkplain ContextCache
|
||||
* application context caching} in conjunction with the {@link SpringExtension} and
|
||||
* {@link DirtiesContext @DirtiesContext} at the method level.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @author Juergen Hoeller
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -21,21 +21,22 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.platform.testkit.engine.EngineTestKit;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.test.context.TestExecutionListeners;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
|
||||
import org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener;
|
||||
import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
|
||||
import static org.springframework.test.context.cache.ContextCacheTestUtils.assertContextCacheStatistics;
|
||||
import static org.springframework.test.context.cache.ContextCacheTestUtils.resetContextCache;
|
||||
import static org.springframework.test.context.junit4.JUnitTestingUtils.runTestsAndAssertCounters;
|
||||
|
||||
/**
|
||||
* @author Sam Brannen
|
||||
@@ -70,11 +71,14 @@ class DirtiesContextInterfaceTests {
|
||||
}
|
||||
|
||||
private void runTestClassAndAssertStats(Class<?> testClass, int expectedTestCount) throws Exception {
|
||||
runTestsAndAssertCounters(testClass, expectedTestCount, 0, expectedTestCount, 0, 0);
|
||||
EngineTestKit.engine("junit-jupiter")
|
||||
.selectors(selectClass(testClass))
|
||||
.execute()
|
||||
.testEvents()
|
||||
.assertStatistics(stats -> stats.started(expectedTestCount).succeeded(expectedTestCount).failed(0));
|
||||
}
|
||||
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
// Ensure that we do not include the EventPublishingTestExecutionListener
|
||||
// since it will access the ApplicationContext for each method in the
|
||||
// TestExecutionListener API, thus distorting our cache hit/miss results.
|
||||
@@ -90,13 +94,13 @@ class DirtiesContextInterfaceTests {
|
||||
ApplicationContext applicationContext;
|
||||
|
||||
|
||||
@org.junit.Test
|
||||
@Test
|
||||
public void verifyContextWasAutowired() {
|
||||
assertThat(this.applicationContext).as("The application context should have been autowired.").isNotNull();
|
||||
}
|
||||
|
||||
|
||||
@Configuration
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class Config {
|
||||
/* no beans */
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.hybrid;
|
||||
package org.springframework.test.context.hybrid;
|
||||
|
||||
import org.springframework.beans.factory.support.BeanDefinitionReader;
|
||||
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,17 +14,17 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.hybrid;
|
||||
package org.springframework.test.context.hybrid;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.SmartContextLoader;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -37,37 +37,22 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 4.0.4
|
||||
* @see HybridContextLoader
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(loader = HybridContextLoader.class)
|
||||
public class HybridContextLoaderTests {
|
||||
|
||||
@Configuration
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
public String fooFromJava() {
|
||||
return "Java";
|
||||
}
|
||||
|
||||
@Bean
|
||||
public String enigma() {
|
||||
return "enigma from Java";
|
||||
}
|
||||
}
|
||||
|
||||
class HybridContextLoaderTests {
|
||||
|
||||
@Autowired
|
||||
private String fooFromXml;
|
||||
String fooFromXml;
|
||||
|
||||
@Autowired
|
||||
private String fooFromJava;
|
||||
String fooFromJava;
|
||||
|
||||
@Autowired
|
||||
private String enigma;
|
||||
String enigma;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyContentsOfHybridApplicationContext() {
|
||||
void verifyContentsOfHybridApplicationContext() {
|
||||
assertThat(fooFromXml).isEqualTo("XML");
|
||||
assertThat(fooFromJava).isEqualTo("Java");
|
||||
|
||||
@@ -78,4 +63,19 @@ public class HybridContextLoaderTests {
|
||||
assertThat(enigma).isEqualTo("enigma from XML");
|
||||
}
|
||||
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
String fooFromJava() {
|
||||
return "Java";
|
||||
}
|
||||
|
||||
@Bean
|
||||
String enigma() {
|
||||
return "enigma from Java";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,16 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr3896;
|
||||
package org.springframework.test.context.inheritance;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* JUnit 4 based integration test for verifying support for the
|
||||
* JUnit based integration test for verifying support for the
|
||||
* {@link ContextConfiguration#inheritLocations() inheritLocations} flag of
|
||||
* {@link ContextConfiguration @ContextConfiguration} indirectly proposed in <a
|
||||
* href="https://opensource.atlassian.com/projects/spring/browse/SPR-3896"
|
||||
@@ -33,12 +33,13 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 2.5
|
||||
*/
|
||||
@ContextConfiguration
|
||||
public class BeanOverridingDefaultLocationsInheritedTests extends DefaultLocationsBaseTests {
|
||||
class BeanOverridingDefaultLocationsInheritedTests extends DefaultLocationsBaseTests {
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).as("The employee bean should have been overridden.").isEqualTo("Yoda");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,16 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr3896;
|
||||
package org.springframework.test.context.inheritance;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* JUnit 4 based integration test for verifying support for the
|
||||
* JUnit based integration test for verifying support for the
|
||||
* {@link ContextConfiguration#inheritLocations() inheritLocations} flag of
|
||||
* {@link ContextConfiguration @ContextConfiguration} indirectly proposed in <a
|
||||
* href="https://opensource.atlassian.com/projects/spring/browse/SPR-3896"
|
||||
@@ -33,12 +33,13 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 2.5
|
||||
*/
|
||||
@ContextConfiguration("BeanOverridingDefaultLocationsInheritedTests-context.xml")
|
||||
public class BeanOverridingExplicitLocationsInheritedTests extends ExplicitLocationsBaseTests {
|
||||
class BeanOverridingExplicitLocationsInheritedTests extends ExplicitLocationsBaseTests {
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).as("The employee bean should have been overridden.").isEqualTo("Yoda");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,20 +14,19 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr3896;
|
||||
package org.springframework.test.context.inheritance;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* JUnit 4 based integration test for verifying support for the
|
||||
* JUnit based integration test for verifying support for the
|
||||
* {@link ContextConfiguration#inheritLocations() inheritLocations} flag of
|
||||
* {@link ContextConfiguration @ContextConfiguration} indirectly proposed in <a
|
||||
* href="https://opensource.atlassian.com/projects/spring/browse/SPR-3896"
|
||||
@@ -36,17 +35,17 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 2.5
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
public class DefaultLocationsBaseTests {
|
||||
@SpringJUnitConfig
|
||||
class DefaultLocationsBaseTests {
|
||||
|
||||
@Autowired
|
||||
protected Employee employee;
|
||||
Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr3896;
|
||||
package org.springframework.test.context.inheritance;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
@@ -25,7 +25,7 @@ import org.springframework.test.context.ContextConfiguration;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* JUnit 4 based integration test for verifying support for the
|
||||
* JUnit based integration test for verifying support for the
|
||||
* {@link ContextConfiguration#inheritLocations() inheritLocations} flag of
|
||||
* {@link ContextConfiguration @ContextConfiguration} indirectly proposed in <a
|
||||
* href="https://opensource.atlassian.com/projects/spring/browse/SPR-3896"
|
||||
@@ -35,15 +35,16 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 2.5
|
||||
*/
|
||||
@ContextConfiguration
|
||||
public class DefaultLocationsInheritedTests extends DefaultLocationsBaseTests {
|
||||
class DefaultLocationsInheritedTests extends DefaultLocationsBaseTests {
|
||||
|
||||
@Autowired
|
||||
private Pet pet;
|
||||
Pet pet;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyPetSetFromExtendedContextConfig() {
|
||||
void verifyPetSetFromExtendedContextConfig() {
|
||||
assertThat(this.pet).as("The pet should have been autowired.").isNotNull();
|
||||
assertThat(this.pet.getName()).isEqualTo("Fido");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,20 +14,19 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr3896;
|
||||
package org.springframework.test.context.inheritance;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* JUnit 4 based integration test for verifying support for the
|
||||
* JUnit based integration test for verifying support for the
|
||||
* {@link ContextConfiguration#inheritLocations() inheritLocations} flag of
|
||||
* {@link ContextConfiguration @ContextConfiguration} indirectly proposed in <a
|
||||
* href="https://opensource.atlassian.com/projects/spring/browse/SPR-3896"
|
||||
@@ -36,17 +35,17 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 2.5
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("DefaultLocationsBaseTests-context.xml")
|
||||
public class ExplicitLocationsBaseTests {
|
||||
@SpringJUnitConfig(locations = "DefaultLocationsBaseTests-context.xml")
|
||||
class ExplicitLocationsBaseTests {
|
||||
|
||||
@Autowired
|
||||
protected Employee employee;
|
||||
Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyEmployeeSetFromBaseContextConfig() {
|
||||
void verifyEmployeeSetFromBaseContextConfig() {
|
||||
assertThat(this.employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(this.employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr3896;
|
||||
package org.springframework.test.context.inheritance;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
@@ -25,7 +25,7 @@ import org.springframework.test.context.ContextConfiguration;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* JUnit 4 based integration test for verifying support for the
|
||||
* JUnit based integration test for verifying support for the
|
||||
* {@link ContextConfiguration#inheritLocations() inheritLocations} flag of
|
||||
* {@link ContextConfiguration @ContextConfiguration} indirectly proposed in <a
|
||||
* href="https://opensource.atlassian.com/projects/spring/browse/SPR-3896"
|
||||
@@ -35,15 +35,16 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 2.5
|
||||
*/
|
||||
@ContextConfiguration("DefaultLocationsInheritedTests-context.xml")
|
||||
public class ExplicitLocationsInheritedTests extends ExplicitLocationsBaseTests {
|
||||
class ExplicitLocationsInheritedTests extends ExplicitLocationsBaseTests {
|
||||
|
||||
@Autowired
|
||||
private Pet pet;
|
||||
Pet pet;
|
||||
|
||||
|
||||
@Test
|
||||
public void verifyPetSetFromExtendedContextConfig() {
|
||||
void verifyPetSetFromExtendedContextConfig() {
|
||||
assertThat(this.pet).as("The pet should have been autowired.").isNotNull();
|
||||
assertThat(this.pet.getName()).isEqualTo("Fido");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright 2002-2025 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
|
||||
*
|
||||
* https://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.initializers;
|
||||
|
||||
import org.junit.jupiter.api.ClassOrderer;
|
||||
import org.junit.platform.suite.api.ConfigurationParameter;
|
||||
import org.junit.platform.suite.api.ExcludeTags;
|
||||
import org.junit.platform.suite.api.IncludeClassNamePatterns;
|
||||
import org.junit.platform.suite.api.IncludeEngines;
|
||||
import org.junit.platform.suite.api.SelectPackages;
|
||||
import org.junit.platform.suite.api.Suite;
|
||||
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
|
||||
/**
|
||||
* JUnit Platform based test suite for tests that involve
|
||||
* {@link ApplicationContextInitializer ApplicationContextInitializers} (ACIs)
|
||||
* in the TestContext framework.
|
||||
*
|
||||
* <p><strong>This suite is only intended to be used manually within an IDE.</strong>
|
||||
*
|
||||
* <h3>Logging Configuration</h3>
|
||||
*
|
||||
* <p>In order for our log4j2 configuration to be used in an IDE, you must
|
||||
* set the following system property before running any tests — for
|
||||
* example, in <em>Run Configurations</em> in Eclipse.
|
||||
*
|
||||
* <pre style="code">
|
||||
* -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
|
||||
* </pre>
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@Suite
|
||||
@IncludeEngines("junit-jupiter")
|
||||
@SelectPackages({
|
||||
"org.springframework.test.context.initializers.annotation",
|
||||
"org.springframework.test.context.initializers.xml"
|
||||
})
|
||||
@IncludeClassNamePatterns(".*Tests$")
|
||||
@ExcludeTags("failing-test-case")
|
||||
@ConfigurationParameter(
|
||||
key = ClassOrderer.DEFAULT_ORDER_PROPERTY_NAME,
|
||||
value = "org.junit.jupiter.api.ClassOrderer$ClassName"
|
||||
)
|
||||
public class AciTestSuite {
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci;
|
||||
package org.springframework.test.context.initializers;
|
||||
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
@@ -29,4 +29,5 @@ public class DevProfileInitializer implements ApplicationContextInitializer<Gene
|
||||
public void initialize(GenericApplicationContext applicationContext) {
|
||||
applicationContext.getEnvironment().setActiveProfiles("dev");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci;
|
||||
package org.springframework.test.context.initializers;
|
||||
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
@@ -29,4 +29,5 @@ public class FooBarAliasInitializer implements ApplicationContextInitializer<Gen
|
||||
public void initialize(GenericApplicationContext applicationContext) {
|
||||
applicationContext.registerAlias("foo", "bar");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -23,7 +23,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @author Sam Brannen
|
||||
* @since 4.3
|
||||
*/
|
||||
@Configuration
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
class BarConfig {
|
||||
|
||||
@Bean
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -24,7 +24,7 @@ import org.springframework.context.annotation.Profile;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@Configuration
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@Profile("dev")
|
||||
class DevProfileConfig {
|
||||
|
||||
@@ -32,4 +32,5 @@ class DevProfileConfig {
|
||||
public String baz() {
|
||||
return "dev profile config";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -23,7 +23,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @author Sam Brannen
|
||||
* @since 4.3
|
||||
*/
|
||||
@Configuration
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
class FooConfig {
|
||||
|
||||
@Bean
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -23,7 +23,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@Configuration
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
class GlobalConfig {
|
||||
|
||||
@Bean
|
||||
@@ -35,4 +35,5 @@ class GlobalConfig {
|
||||
public String baz() {
|
||||
return "global config";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -22,8 +22,8 @@ import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
@@ -31,8 +31,8 @@ import org.springframework.context.annotation.AnnotatedBeanDefinitionReader;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
import org.springframework.core.annotation.AliasFor;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.context.junit4.aci.annotation.InitializerConfiguredViaMetaAnnotationTests.ComposedContextConfiguration;
|
||||
import org.springframework.test.context.initializers.annotation.InitializerConfiguredViaMetaAnnotationTests.ComposedContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -51,7 +51,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 4.3
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ComposedContextConfiguration(BarConfig.class)
|
||||
public class InitializerConfiguredViaMetaAnnotationTests {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,18 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.context.annotation.AnnotatedBeanDefinitionReader;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.aci.annotation.InitializerWithoutConfigFilesOrClassesTests.EntireAppInitializer;
|
||||
import org.springframework.test.context.initializers.annotation.InitializerWithoutConfigFilesOrClassesTests.EntireAppInitializer;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -37,8 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(initializers = EntireAppInitializer.class)
|
||||
@SpringJUnitConfig(initializers = EntireAppInitializer.class)
|
||||
public class InitializerWithoutConfigFilesOrClassesTests {
|
||||
|
||||
@Autowired
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,13 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.aci.DevProfileInitializer;
|
||||
import org.springframework.test.context.initializers.DevProfileInitializer;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -32,7 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@ContextConfiguration(initializers = DevProfileInitializer.class)
|
||||
@SpringJUnitConfig(initializers = DevProfileInitializer.class)
|
||||
public class MergedInitializersAnnotationConfigTests extends SingleInitializerAnnotationConfigTests {
|
||||
|
||||
@Override
|
||||
@@ -42,4 +42,5 @@ public class MergedInitializersAnnotationConfigTests extends SingleInitializerAn
|
||||
assertThat(bar).isEqualTo("foo");
|
||||
assertThat(baz).isEqualTo("dev profile config");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,17 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.aci.DevProfileInitializer;
|
||||
import org.springframework.test.context.junit4.aci.FooBarAliasInitializer;
|
||||
import org.springframework.test.context.initializers.DevProfileInitializer;
|
||||
import org.springframework.test.context.initializers.FooBarAliasInitializer;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -36,8 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = { GlobalConfig.class, DevProfileConfig.class }, initializers = {
|
||||
@SpringJUnitConfig(classes = { GlobalConfig.class, DevProfileConfig.class }, initializers = {
|
||||
FooBarAliasInitializer.class, DevProfileInitializer.class })
|
||||
public class MultipleInitializersAnnotationConfigTests {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,10 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
@@ -27,13 +26,12 @@ import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.aci.annotation.OrderedInitializersAnnotationConfigTests.ConfigOne;
|
||||
import org.springframework.test.context.junit4.aci.annotation.OrderedInitializersAnnotationConfigTests.ConfigTwo;
|
||||
import org.springframework.test.context.junit4.aci.annotation.OrderedInitializersAnnotationConfigTests.GlobalConfig;
|
||||
import org.springframework.test.context.junit4.aci.annotation.OrderedInitializersAnnotationConfigTests.OrderedOneInitializer;
|
||||
import org.springframework.test.context.junit4.aci.annotation.OrderedInitializersAnnotationConfigTests.OrderedTwoInitializer;
|
||||
import org.springframework.test.context.initializers.annotation.OrderedInitializersAnnotationConfigTests.ConfigOne;
|
||||
import org.springframework.test.context.initializers.annotation.OrderedInitializersAnnotationConfigTests.ConfigTwo;
|
||||
import org.springframework.test.context.initializers.annotation.OrderedInitializersAnnotationConfigTests.GlobalConfig;
|
||||
import org.springframework.test.context.initializers.annotation.OrderedInitializersAnnotationConfigTests.OrderedOneInitializer;
|
||||
import org.springframework.test.context.initializers.annotation.OrderedInitializersAnnotationConfigTests.OrderedTwoInitializer;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -48,10 +46,9 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
// Note: the ordering of the config classes is intentionally: global, two, one.
|
||||
// Note: the ordering of the initializers is intentionally: two, one.
|
||||
@ContextConfiguration(classes = { GlobalConfig.class, ConfigTwo.class, ConfigOne.class }, initializers = {
|
||||
@SpringJUnitConfig(classes = { GlobalConfig.class, ConfigTwo.class, ConfigOne.class }, initializers = {
|
||||
OrderedTwoInitializer.class, OrderedOneInitializer.class })
|
||||
public class OrderedInitializersAnnotationConfigTests {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,13 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.aci.DevProfileInitializer;
|
||||
import org.springframework.test.context.initializers.DevProfileInitializer;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -32,7 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@ContextConfiguration(initializers = DevProfileInitializer.class, inheritInitializers = false)
|
||||
@SpringJUnitConfig(initializers = DevProfileInitializer.class, inheritInitializers = false)
|
||||
public class OverriddenInitializersAnnotationConfigTests extends SingleInitializerAnnotationConfigTests {
|
||||
|
||||
@Test
|
||||
@@ -42,4 +42,5 @@ public class OverriddenInitializersAnnotationConfigTests extends SingleInitializ
|
||||
assertThat(bar).isNull();
|
||||
assertThat(baz).isEqualTo("dev profile config");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,10 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -27,8 +26,7 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.env.PropertySource;
|
||||
import org.springframework.mock.env.MockPropertySource;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -39,8 +37,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 4.1
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(initializers = PropertySourcesInitializerTests.PropertySourceInitializer.class)
|
||||
@SpringJUnitConfig(initializers = PropertySourcesInitializerTests.PropertySourceInitializer.class)
|
||||
public class PropertySourcesInitializerTests {
|
||||
|
||||
@Configuration
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,17 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.annotation;
|
||||
package org.springframework.test.context.initializers.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.aci.FooBarAliasInitializer;
|
||||
import org.springframework.test.context.initializers.FooBarAliasInitializer;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -36,8 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = { GlobalConfig.class, DevProfileConfig.class }, initializers = FooBarAliasInitializer.class)
|
||||
@SpringJUnitConfig(classes = { GlobalConfig.class, DevProfileConfig.class }, initializers = FooBarAliasInitializer.class)
|
||||
public class SingleInitializerAnnotationConfigTests {
|
||||
|
||||
@Autowired
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,17 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.aci.xml;
|
||||
package org.springframework.test.context.initializers.xml;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit4.aci.DevProfileInitializer;
|
||||
import org.springframework.test.context.junit4.aci.FooBarAliasInitializer;
|
||||
import org.springframework.test.context.initializers.DevProfileInitializer;
|
||||
import org.springframework.test.context.initializers.FooBarAliasInitializer;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -36,8 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(initializers = { FooBarAliasInitializer.class, DevProfileInitializer.class })
|
||||
@SpringJUnitConfig(initializers = { FooBarAliasInitializer.class, DevProfileInitializer.class })
|
||||
public class MultipleInitializersXmlConfigTests {
|
||||
|
||||
@Autowired
|
||||
@@ -0,0 +1,135 @@
|
||||
/*
|
||||
* Copyright 2002-2025 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
|
||||
*
|
||||
* https://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.jdbc;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.platform.testkit.engine.EngineTestKit;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.ImportResource;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
|
||||
|
||||
/**
|
||||
* Test suite to investigate claims raised in
|
||||
* <a href="https://github.com/spring-projects/spring-framework/issues/13491">gh-13491</a>.
|
||||
*
|
||||
* <h3>Work Around</h3>
|
||||
* <p>By using a SpEL expression to generate a random {@code database-name}
|
||||
* for the embedded database (see {@code datasource-config.xml}), we ensure
|
||||
* that each {@code ApplicationContext} that imports the common configuration
|
||||
* will create an embedded database with a unique name.
|
||||
*
|
||||
* <p>To reproduce the problem mentioned in gh-13491, delete the declaration
|
||||
* of the {@code database-name} attribute of the embedded database in
|
||||
* {@code datasource-config.xml} and run this <em>suite</em>.
|
||||
*
|
||||
* <h3>Solution</h3>
|
||||
* <p>As of Spring 4.2, a proper solution is possible thanks to gh-13491.
|
||||
* {@link TestClass2A} and {@link TestClass2B} both import
|
||||
* {@code datasource-config-with-auto-generated-db-name.xml} which makes
|
||||
* use of the new {@code generate-name} attribute of {@code <jdbc:embedded-database>}.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @author Mickael Leduque
|
||||
*/
|
||||
class GeneratedDatabaseNamesTests {
|
||||
|
||||
private static final String DATASOURCE_CONFIG_XML =
|
||||
"classpath:/org/springframework/test/context/jdbc/datasource-config.xml";
|
||||
|
||||
private static final String DATASOURCE_CONFIG_WITH_AUTO_GENERATED_DB_NAME_XML =
|
||||
"classpath:/org/springframework/test/context/jdbc/datasource-config-with-auto-generated-db-name.xml";
|
||||
|
||||
|
||||
@Test
|
||||
void runTestsWithGeneratedDatabaseNames() {
|
||||
EngineTestKit.engine("junit-jupiter")
|
||||
.selectors(
|
||||
selectClass(TestClass1A.class),
|
||||
selectClass(TestClass1B.class),
|
||||
selectClass(TestClass2A.class),
|
||||
selectClass(TestClass2B.class)
|
||||
)
|
||||
.execute()
|
||||
.testEvents()
|
||||
.assertStatistics(stats -> stats.started(4).succeeded(4).failed(0));
|
||||
}
|
||||
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
abstract static class AbstractTestCase {
|
||||
|
||||
@Resource
|
||||
DataSource dataSource;
|
||||
|
||||
@Test
|
||||
void test() {
|
||||
assertThat(dataSource).isNotNull();
|
||||
}
|
||||
}
|
||||
|
||||
@ContextConfiguration
|
||||
static class TestClass1A extends AbstractTestCase {
|
||||
|
||||
@Configuration
|
||||
@ImportResource(DATASOURCE_CONFIG_XML)
|
||||
static class Config {
|
||||
}
|
||||
}
|
||||
|
||||
@ContextConfiguration
|
||||
static class TestClass1B extends AbstractTestCase {
|
||||
|
||||
@Configuration
|
||||
@ImportResource(DATASOURCE_CONFIG_XML)
|
||||
static class Config {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 4.2
|
||||
*/
|
||||
@ContextConfiguration
|
||||
static class TestClass2A extends AbstractTestCase {
|
||||
|
||||
@Configuration
|
||||
@ImportResource(DATASOURCE_CONFIG_WITH_AUTO_GENERATED_DB_NAME_XML)
|
||||
static class Config {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 4.2
|
||||
*/
|
||||
@ContextConfiguration
|
||||
static class TestClass2B extends AbstractTestCase {
|
||||
|
||||
@Configuration
|
||||
@ImportResource(DATASOURCE_CONFIG_WITH_AUTO_GENERATED_DB_NAME_XML)
|
||||
static class Config {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,23 +14,21 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr4868;
|
||||
package org.springframework.test.context.jsr250;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.PreDestroy;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.TestExecutionListeners;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -61,58 +59,56 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@SpringJUnitConfig
|
||||
@TestExecutionListeners(DependencyInjectionTestExecutionListener.class)
|
||||
@ContextConfiguration
|
||||
public class Jsr250LifecycleTests {
|
||||
class Jsr250LifecycleTests {
|
||||
|
||||
private final Log logger = LogFactory.getLog(Jsr250LifecycleTests.class);
|
||||
|
||||
|
||||
@Configuration
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
public LifecycleBean lifecycleBean() {
|
||||
return new LifecycleBean();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Autowired
|
||||
private LifecycleBean lifecycleBean;
|
||||
LifecycleBean lifecycleBean;
|
||||
|
||||
|
||||
@PostConstruct
|
||||
public void beforeAllTests() {
|
||||
void beforeAllTests() {
|
||||
logger.info("beforeAllTests()");
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
public void afterTestSuite() {
|
||||
void afterTestSuite() {
|
||||
logger.info("afterTestSuite()");
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
logger.info("setUp()");
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
@AfterEach
|
||||
void tearDown() {
|
||||
logger.info("tearDown()");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test1() {
|
||||
void test1() {
|
||||
logger.info("test1()");
|
||||
assertThat(lifecycleBean).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test2() {
|
||||
void test2() {
|
||||
logger.info("test2()");
|
||||
assertThat(lifecycleBean).isNotNull();
|
||||
}
|
||||
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
LifecycleBean lifecycleBean() {
|
||||
return new LifecycleBean();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr4868;
|
||||
package org.springframework.test.context.jsr250;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import jakarta.annotation.PreDestroy;
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2012 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,19 +14,19 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.annotation;
|
||||
package org.springframework.test.context.junit4;
|
||||
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunnerAppCtxTests;
|
||||
import org.springframework.test.context.annotation.PojoAndStringConfig;
|
||||
|
||||
/**
|
||||
* Integration tests that verify support for configuration classes in
|
||||
* the Spring TestContext Framework.
|
||||
*
|
||||
* <p>Furthermore, by extending {@link SpringJUnit4ClassRunnerAppCtxTests},
|
||||
* <p>Furthermore, by extending {@code SpringJUnit4ClassRunnerAppCtxTests},
|
||||
* this class also verifies support for several basic features of the
|
||||
* Spring TestContext Framework. See JavaDoc in
|
||||
* {@code SpringJUnit4ClassRunnerAppCtxTests} for details.
|
||||
* {@link SpringJUnit4ClassRunnerAppCtxTests} for details.
|
||||
*
|
||||
* <p>Configuration will be loaded from {@link PojoAndStringConfig}.
|
||||
*
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2022 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -20,27 +20,6 @@ import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
import org.junit.runners.Suite.SuiteClasses;
|
||||
|
||||
import org.springframework.test.context.junit4.annotation.AnnotationConfigSpringJUnit4ClassRunnerAppCtxTests;
|
||||
import org.springframework.test.context.junit4.annotation.BeanOverridingDefaultConfigClassesInheritedTests;
|
||||
import org.springframework.test.context.junit4.annotation.BeanOverridingExplicitConfigClassesInheritedTests;
|
||||
import org.springframework.test.context.junit4.annotation.DefaultConfigClassesBaseTests;
|
||||
import org.springframework.test.context.junit4.annotation.DefaultConfigClassesInheritedTests;
|
||||
import org.springframework.test.context.junit4.annotation.DefaultLoaderBeanOverridingDefaultConfigClassesInheritedTests;
|
||||
import org.springframework.test.context.junit4.annotation.DefaultLoaderBeanOverridingExplicitConfigClassesInheritedTests;
|
||||
import org.springframework.test.context.junit4.annotation.DefaultLoaderDefaultConfigClassesBaseTests;
|
||||
import org.springframework.test.context.junit4.annotation.DefaultLoaderDefaultConfigClassesInheritedTests;
|
||||
import org.springframework.test.context.junit4.annotation.DefaultLoaderExplicitConfigClassesBaseTests;
|
||||
import org.springframework.test.context.junit4.annotation.DefaultLoaderExplicitConfigClassesInheritedTests;
|
||||
import org.springframework.test.context.junit4.annotation.ExplicitConfigClassesBaseTests;
|
||||
import org.springframework.test.context.junit4.annotation.ExplicitConfigClassesInheritedTests;
|
||||
import org.springframework.test.context.junit4.orm.HibernateSessionFlushingTests;
|
||||
import org.springframework.test.context.junit4.profile.annotation.DefaultProfileAnnotationConfigTests;
|
||||
import org.springframework.test.context.junit4.profile.annotation.DevProfileAnnotationConfigTests;
|
||||
import org.springframework.test.context.junit4.profile.annotation.DevProfileResolverAnnotationConfigTests;
|
||||
import org.springframework.test.context.junit4.profile.xml.DefaultProfileXmlConfigTests;
|
||||
import org.springframework.test.context.junit4.profile.xml.DevProfileResolverXmlConfigTests;
|
||||
import org.springframework.test.context.junit4.profile.xml.DevProfileXmlConfigTests;
|
||||
|
||||
/**
|
||||
* JUnit test suite for tests involving {@link SpringRunner} and the
|
||||
* <em>Spring TestContext Framework</em>; only intended to be run manually as a
|
||||
@@ -64,24 +43,6 @@ StandardJUnit4FeaturesTests.class,//
|
||||
StandardJUnit4FeaturesSpringRunnerTests.class,//
|
||||
SpringJUnit47ClassRunnerRuleTests.class,//
|
||||
AnnotationConfigSpringJUnit4ClassRunnerAppCtxTests.class,//
|
||||
DefaultConfigClassesBaseTests.class,//
|
||||
DefaultConfigClassesInheritedTests.class,//
|
||||
BeanOverridingDefaultConfigClassesInheritedTests.class,//
|
||||
ExplicitConfigClassesBaseTests.class,//
|
||||
ExplicitConfigClassesInheritedTests.class,//
|
||||
BeanOverridingExplicitConfigClassesInheritedTests.class,//
|
||||
DefaultLoaderDefaultConfigClassesBaseTests.class,//
|
||||
DefaultLoaderDefaultConfigClassesInheritedTests.class,//
|
||||
DefaultLoaderBeanOverridingDefaultConfigClassesInheritedTests.class,//
|
||||
DefaultLoaderExplicitConfigClassesBaseTests.class,//
|
||||
DefaultLoaderExplicitConfigClassesInheritedTests.class,//
|
||||
DefaultLoaderBeanOverridingExplicitConfigClassesInheritedTests.class,//
|
||||
DefaultProfileAnnotationConfigTests.class,//
|
||||
DevProfileAnnotationConfigTests.class,//
|
||||
DevProfileResolverAnnotationConfigTests.class,//
|
||||
DefaultProfileXmlConfigTests.class,//
|
||||
DevProfileXmlConfigTests.class,//
|
||||
DevProfileResolverXmlConfigTests.class,//
|
||||
ExpectedExceptionSpringRunnerTests.class,//
|
||||
TimedSpringRunnerTests.class,//
|
||||
RepeatedSpringRunnerTests.class,//
|
||||
@@ -102,8 +63,7 @@ StandardJUnit4FeaturesTests.class,//
|
||||
RollbackOverrideDefaultRollbackTrueTransactionalTests.class,//
|
||||
RollbackOverrideDefaultRollbackFalseTransactionalTests.class,//
|
||||
BeforeAndAfterTransactionAnnotationTests.class,//
|
||||
TimedTransactionalSpringRunnerTests.class,//
|
||||
HibernateSessionFlushingTests.class //
|
||||
TimedTransactionalSpringRunnerTests.class//
|
||||
})
|
||||
public class SpringJUnit4TestSuite {
|
||||
/* this test case consists entirely of tests loaded as a suite. */
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2012 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
|
||||
*
|
||||
* https://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.aci;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
import org.junit.runners.Suite.SuiteClasses;
|
||||
|
||||
import org.springframework.context.ApplicationContextInitializer;
|
||||
import org.springframework.test.context.junit4.aci.annotation.InitializerWithoutConfigFilesOrClassesTests;
|
||||
import org.springframework.test.context.junit4.aci.annotation.MergedInitializersAnnotationConfigTests;
|
||||
import org.springframework.test.context.junit4.aci.annotation.MultipleInitializersAnnotationConfigTests;
|
||||
import org.springframework.test.context.junit4.aci.annotation.OrderedInitializersAnnotationConfigTests;
|
||||
import org.springframework.test.context.junit4.aci.annotation.OverriddenInitializersAnnotationConfigTests;
|
||||
import org.springframework.test.context.junit4.aci.annotation.SingleInitializerAnnotationConfigTests;
|
||||
import org.springframework.test.context.junit4.aci.xml.MultipleInitializersXmlConfigTests;
|
||||
|
||||
/**
|
||||
* Convenience test suite for integration tests that verify support for
|
||||
* {@link ApplicationContextInitializer ApplicationContextInitializers} (ACIs)
|
||||
* in the TestContext framework.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@RunWith(Suite.class)
|
||||
// Note: the following 'multi-line' layout is for enhanced code readability.
|
||||
@SuiteClasses({//
|
||||
MultipleInitializersXmlConfigTests.class,//
|
||||
SingleInitializerAnnotationConfigTests.class,//
|
||||
MultipleInitializersAnnotationConfigTests.class,//
|
||||
MergedInitializersAnnotationConfigTests.class,//
|
||||
OverriddenInitializersAnnotationConfigTests.class,//
|
||||
OrderedInitializersAnnotationConfigTests.class,//
|
||||
InitializerWithoutConfigFilesOrClassesTests.class //
|
||||
})
|
||||
public class AciTestSuite {
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
/*
|
||||
* 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
|
||||
*
|
||||
* https://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.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
import org.junit.runners.Suite.SuiteClasses;
|
||||
|
||||
/**
|
||||
* JUnit test suite for annotation-driven <em>configuration class</em>
|
||||
* support in the Spring TestContext Framework.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@RunWith(Suite.class)
|
||||
// Note: the following 'multi-line' layout is for enhanced code readability.
|
||||
@SuiteClasses({//
|
||||
AnnotationConfigSpringJUnit4ClassRunnerAppCtxTests.class,//
|
||||
DefaultConfigClassesBaseTests.class,//
|
||||
DefaultConfigClassesInheritedTests.class,//
|
||||
BeanOverridingDefaultConfigClassesInheritedTests.class,//
|
||||
ExplicitConfigClassesBaseTests.class,//
|
||||
ExplicitConfigClassesInheritedTests.class,//
|
||||
BeanOverridingExplicitConfigClassesInheritedTests.class,//
|
||||
DefaultLoaderDefaultConfigClassesBaseTests.class,//
|
||||
DefaultLoaderDefaultConfigClassesInheritedTests.class,//
|
||||
DefaultLoaderBeanOverridingDefaultConfigClassesInheritedTests.class,//
|
||||
DefaultLoaderExplicitConfigClassesBaseTests.class,//
|
||||
DefaultLoaderExplicitConfigClassesInheritedTests.class,//
|
||||
DefaultLoaderBeanOverridingExplicitConfigClassesInheritedTests.class //
|
||||
})
|
||||
public class AnnotationConfigTestSuite {
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -79,7 +79,6 @@ public class SpringJUnit4ConcurrencyTests {
|
||||
TimedTransactionalSpringRunnerTests.class,
|
||||
// Web and Scopes
|
||||
BasicAnnotationConfigWacSpringRuleTests.class,
|
||||
// Spring MVC Test
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2013 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
|
||||
*
|
||||
* https://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.profile.annotation;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
import org.junit.runners.Suite.SuiteClasses;
|
||||
|
||||
/**
|
||||
* JUnit test suite for <em>bean definition profile</em> support in the
|
||||
* Spring TestContext Framework with annotation-based configuration.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@RunWith(Suite.class)
|
||||
// Note: the following 'multi-line' layout is for enhanced code readability.
|
||||
@SuiteClasses({//
|
||||
DefaultProfileAnnotationConfigTests.class,//
|
||||
DevProfileAnnotationConfigTests.class,//
|
||||
DevProfileResolverAnnotationConfigTests.class //
|
||||
})
|
||||
public class ProfileAnnotationConfigTestSuite {
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2019 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
|
||||
*
|
||||
* https://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.profile.resolver;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* @author Michail Nikolaev
|
||||
* @since 4.0
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
@ActiveProfiles(resolver = ClassNameActiveProfilesResolver.class)
|
||||
public class ClassNameActiveProfilesResolverTests {
|
||||
|
||||
@Configuration
|
||||
static class Config {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Autowired
|
||||
private ApplicationContext applicationContext;
|
||||
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
assertThat(Arrays.asList(applicationContext.getEnvironment().getActiveProfiles()).contains(
|
||||
getClass().getSimpleName().toLowerCase())).isTrue();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2013 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
|
||||
*
|
||||
* https://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.profile.xml;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
import org.junit.runners.Suite.SuiteClasses;
|
||||
|
||||
/**
|
||||
* JUnit test suite for <em>bean definition profile</em> support in the
|
||||
* Spring TestContext Framework with XML-based configuration.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@RunWith(Suite.class)
|
||||
// Note: the following 'multi-line' layout is for enhanced code readability.
|
||||
@SuiteClasses({//
|
||||
DefaultProfileXmlConfigTests.class,//
|
||||
DevProfileXmlConfigTests.class,//
|
||||
DevProfileResolverXmlConfigTests.class //
|
||||
})
|
||||
public class ProfileXmlConfigTestSuite {
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -18,23 +18,30 @@ package org.springframework.test.context.junit4.rules;
|
||||
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.JUnit4;
|
||||
|
||||
import org.springframework.test.context.web.BasicAnnotationConfigWacTests;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.web.AbstractBasicWacTests;
|
||||
import org.springframework.test.context.web.ServletContextAwareBean;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* This class is an extension of {@link BasicAnnotationConfigWacTests}
|
||||
* that has been modified to use {@link SpringClassRule} and
|
||||
* {@link SpringMethodRule}.
|
||||
* This class is a copy of {@link org.springframework.test.context.web.BasicAnnotationConfigWacTests}
|
||||
* that has been modified to use the {@link JUnit4} runner combined with
|
||||
* {@link SpringClassRule} and {@link SpringMethodRule}.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 4.2
|
||||
*/
|
||||
@RunWith(JUnit4.class)
|
||||
public class BasicAnnotationConfigWacSpringRuleTests extends BasicAnnotationConfigWacTests {
|
||||
|
||||
// All tests are in superclass.
|
||||
@ContextConfiguration
|
||||
public class BasicAnnotationConfigWacSpringRuleTests extends AbstractBasicWacTests {
|
||||
|
||||
@ClassRule
|
||||
public static final SpringClassRule springClassRule = new SpringClassRule();
|
||||
@@ -42,4 +49,46 @@ public class BasicAnnotationConfigWacSpringRuleTests extends BasicAnnotationConf
|
||||
@Rule
|
||||
public final SpringMethodRule springMethodRule = new SpringMethodRule();
|
||||
|
||||
|
||||
@Autowired
|
||||
ServletContextAwareBean servletContextAwareBean;
|
||||
|
||||
|
||||
/**
|
||||
* Have to override this method to annotate it with JUnit 4's {@code @Test}
|
||||
* annotation.
|
||||
*/
|
||||
@Test
|
||||
@Override
|
||||
public void basicWacFeatures() throws Exception {
|
||||
super.basicWacFeatures();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fooEnigmaAutowired() {
|
||||
assertThat(foo).isEqualTo("enigma");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void servletContextAwareBeanProcessed() {
|
||||
assertThat(servletContextAwareBean).isNotNull();
|
||||
assertThat(servletContextAwareBean.getServletContext()).isNotNull();
|
||||
}
|
||||
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
String foo() {
|
||||
return "enigma";
|
||||
}
|
||||
|
||||
@Bean
|
||||
ServletContextAwareBean servletContextAwareBean() {
|
||||
return new ServletContextAwareBean();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.bean.override.mockito.integration;
|
||||
package org.springframework.test.context.junit4.rules;
|
||||
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
@@ -23,7 +23,6 @@ import org.junit.Test;
|
||||
|
||||
import org.springframework.test.annotation.Repeat;
|
||||
import org.springframework.test.context.bean.override.mockito.MockitoBean;
|
||||
import org.springframework.test.context.junit4.rules.SpringMethodRule;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -1,49 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2019 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
|
||||
*
|
||||
* https://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.spr3896;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
import org.junit.runners.Suite.SuiteClasses;
|
||||
|
||||
/**
|
||||
* JUnit 4 based test suite for functionality proposed in <a
|
||||
* href="https://opensource.atlassian.com/projects/spring/browse/SPR-3896"
|
||||
* target="_blank">SPR-3896</a>.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 2.5
|
||||
*/
|
||||
@RunWith(Suite.class)
|
||||
// Note: the following 'multi-line' layout is for enhanced code readability.
|
||||
@SuiteClasses({
|
||||
|
||||
DefaultLocationsBaseTests.class,
|
||||
|
||||
DefaultLocationsInheritedTests.class,
|
||||
|
||||
ExplicitLocationsBaseTests.class,
|
||||
|
||||
ExplicitLocationsInheritedTests.class,
|
||||
|
||||
BeanOverridingDefaultLocationsInheritedTests.class,
|
||||
|
||||
BeanOverridingExplicitLocationsInheritedTests.class
|
||||
|
||||
})
|
||||
public class Spr3896TestSuite {
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2024 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
|
||||
*
|
||||
* https://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.spr8849;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
import org.junit.runners.Suite.SuiteClasses;
|
||||
|
||||
/**
|
||||
* Test suite to investigate claims raised in
|
||||
* <a href="https://jira.spring.io/browse/SPR-8849">SPR-8849</a>.
|
||||
*
|
||||
* <h3>Work Around</h3>
|
||||
* <p>By using a SpEL expression to generate a random {@code database-name}
|
||||
* for the embedded database (see {@code datasource-config.xml}), we ensure
|
||||
* that each {@code ApplicationContext} that imports the common configuration
|
||||
* will create an embedded database with a unique name.
|
||||
*
|
||||
* <p>To reproduce the problem mentioned in SPR-8849, delete the declaration
|
||||
* of the {@code database-name} attribute of the embedded database in
|
||||
* {@code datasource-config.xml} and run this <em>suite</em>.
|
||||
*
|
||||
* <h3>Solution</h3>
|
||||
* <p>As of Spring 4.2, a proper solution is possible thanks to SPR-8849.
|
||||
* {@link TestClass3} and {@link TestClass4} both import
|
||||
* {@code datasource-config-with-auto-generated-db-name.xml} which makes
|
||||
* use of the new {@code generate-name} attribute of {@code <jdbc:embedded-database>}.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@RunWith(Suite.class)
|
||||
@SuiteClasses({ TestClass1.class, TestClass2.class, TestClass3.class, TestClass4.class })
|
||||
public class Spr8849Tests {
|
||||
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2019 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
|
||||
*
|
||||
* https://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.spr8849;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.ImportResource;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* This name of this class intentionally does not end with "Test" or "Tests"
|
||||
* since it should only be run as part of the test suite: {@link Spr8849Tests}.
|
||||
*
|
||||
* @author Mickael Leduque
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
* @see Spr8849Tests
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
public class TestClass1 {
|
||||
|
||||
@Configuration
|
||||
@ImportResource("classpath:/org/springframework/test/context/junit4/spr8849/datasource-config.xml")
|
||||
static class Config {
|
||||
}
|
||||
|
||||
|
||||
@Resource
|
||||
DataSource dataSource;
|
||||
|
||||
|
||||
@Test
|
||||
public void dummyTest() {
|
||||
assertThat(dataSource).isNotNull();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2019 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
|
||||
*
|
||||
* https://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.spr8849;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.ImportResource;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* This name of this class intentionally does not end with "Test" or "Tests"
|
||||
* since it should only be run as part of the test suite: {@link Spr8849Tests}.
|
||||
*
|
||||
* @author Mickael Leduque
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
* @see Spr8849Tests
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
public class TestClass2 {
|
||||
|
||||
@Configuration
|
||||
@ImportResource("classpath:/org/springframework/test/context/junit4/spr8849/datasource-config.xml")
|
||||
static class Config {
|
||||
}
|
||||
|
||||
|
||||
@Resource
|
||||
DataSource dataSource;
|
||||
|
||||
|
||||
@Test
|
||||
public void dummyTest() {
|
||||
assertThat(dataSource).isNotNull();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2019 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
|
||||
*
|
||||
* https://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.spr8849;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.ImportResource;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* This name of this class intentionally does not end with "Test" or "Tests"
|
||||
* since it should only be run as part of the test suite: {@link Spr8849Tests}.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 4.2
|
||||
* @see Spr8849Tests
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
public class TestClass3 {
|
||||
|
||||
@Configuration
|
||||
@ImportResource("classpath:/org/springframework/test/context/junit4/spr8849/datasource-config-with-auto-generated-db-name.xml")
|
||||
static class Config {
|
||||
}
|
||||
|
||||
|
||||
@Resource
|
||||
DataSource dataSource;
|
||||
|
||||
|
||||
@Test
|
||||
public void dummyTest() {
|
||||
assertThat(dataSource).isNotNull();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2019 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
|
||||
*
|
||||
* https://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.spr8849;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.ImportResource;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* This name of this class intentionally does not end with "Test" or "Tests"
|
||||
* since it should only be run as part of the test suite: {@link Spr8849Tests}.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 4.2
|
||||
* @see Spr8849Tests
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
public class TestClass4 {
|
||||
|
||||
@Configuration
|
||||
@ImportResource("classpath:/org/springframework/test/context/junit4/spr8849/datasource-config-with-auto-generated-db-name.xml")
|
||||
static class Config {
|
||||
}
|
||||
|
||||
|
||||
@Resource
|
||||
DataSource dataSource;
|
||||
|
||||
|
||||
@Test
|
||||
public void dummyTest() {
|
||||
assertThat(dataSource).isNotNull();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.web;
|
||||
package org.springframework.test.context.junit4.web;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@@ -30,6 +30,7 @@ import org.springframework.mock.web.MockHttpSession;
|
||||
import org.springframework.mock.web.MockServletContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
|
||||
import org.springframework.test.context.web.WebAppConfiguration;
|
||||
import org.springframework.web.context.ServletContextAware;
|
||||
import org.springframework.web.context.WebApplicationContext;
|
||||
import org.springframework.web.context.request.ServletWebRequest;
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,14 +14,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr9051;
|
||||
package org.springframework.test.context.litemode;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
@@ -29,7 +28,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.annotation.DirtiesContext.ClassMode;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.transaction.AfterTransaction;
|
||||
import org.springframework.test.context.transaction.BeforeTransaction;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -40,16 +39,16 @@ import static org.springframework.transaction.support.TransactionSynchronization
|
||||
|
||||
/**
|
||||
* This set of tests (i.e., all concrete subclasses) investigates the claims made in
|
||||
* <a href="https://jira.spring.io/browse/SPR-9051" target="_blank">SPR-9051</a>
|
||||
* <a href="https://github.com/spring-projects/spring-framework/issues/13690" target="_blank">gh-13690</a>.
|
||||
* with regard to transactional tests.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
* @see org.springframework.test.context.testng.AnnotationConfigTransactionalTestNGSpringContextTests
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@SpringJUnitConfig
|
||||
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
|
||||
public abstract class AbstractTransactionalAnnotatedConfigClassTests {
|
||||
abstract class AbstractTransactionalAnnotatedConfigClassTests {
|
||||
|
||||
protected static final String JANE = "jane";
|
||||
protected static final String SUE = "sue";
|
||||
@@ -65,12 +64,12 @@ public abstract class AbstractTransactionalAnnotatedConfigClassTests {
|
||||
|
||||
|
||||
@Autowired
|
||||
public void setTransactionManager(DataSourceTransactionManager transactionManager) {
|
||||
void setTransactionManager(DataSourceTransactionManager transactionManager) {
|
||||
this.dataSourceFromTxManager = transactionManager.getDataSource();
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setDataSource(DataSource dataSource) {
|
||||
void setDataSource(DataSource dataSource) {
|
||||
this.dataSourceViaInjection = dataSource;
|
||||
this.jdbcTemplate = new JdbcTemplate(dataSource);
|
||||
}
|
||||
@@ -96,38 +95,38 @@ public abstract class AbstractTransactionalAnnotatedConfigClassTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void autowiringFromConfigClass() {
|
||||
void autowiringFromConfigClass() {
|
||||
assertThat(employee).as("The employee should have been autowired.").isNotNull();
|
||||
assertThat(employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
|
||||
@BeforeTransaction
|
||||
public void beforeTransaction() {
|
||||
void beforeTransaction() {
|
||||
assertNumRowsInPersonTable(0, "before a transactional test method");
|
||||
assertAddPerson(YODA);
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
assertNumRowsInPersonTable((isActualTransactionActive() ? 1 : 0), "before a test method");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
public void modifyTestDataWithinTransaction() {
|
||||
void modifyTestDataWithinTransaction() {
|
||||
assertThatTransaction().isActive();
|
||||
assertAddPerson(JANE);
|
||||
assertAddPerson(SUE);
|
||||
assertNumRowsInPersonTable(3, "in modifyTestDataWithinTransaction()");
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
@AfterEach
|
||||
void tearDown() {
|
||||
assertNumRowsInPersonTable((isActualTransactionActive() ? 3 : 0), "after a test method");
|
||||
}
|
||||
|
||||
@AfterTransaction
|
||||
public void afterTransaction() {
|
||||
void afterTransaction() {
|
||||
assertThat(deletePerson(YODA)).as("Deleting yoda").isEqualTo(1);
|
||||
assertNumRowsInPersonTable(0, "after a transactional test method");
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,24 +14,22 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr9051;
|
||||
package org.springframework.test.context.litemode;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* This set of tests refutes the claims made in
|
||||
* <a href="https://jira.spring.io/browse/SPR-9051" target="_blank">SPR-9051</a>.
|
||||
* <a href="https://github.com/spring-projects/spring-framework/issues/13690" target="_blank">gh-13690</a>.
|
||||
*
|
||||
* <p><b>The Claims</b>:
|
||||
*
|
||||
@@ -48,9 +46,8 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Phillip Webb
|
||||
* @since 3.2
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = AnnotatedConfigClassesWithoutAtConfigurationTests.AnnotatedFactoryBeans.class)
|
||||
public class AnnotatedConfigClassesWithoutAtConfigurationTests {
|
||||
@SpringJUnitConfig(AnnotatedConfigClassesWithoutAtConfigurationTests.AnnotatedFactoryBeans.class)
|
||||
class AnnotatedConfigClassesWithoutAtConfigurationTests {
|
||||
|
||||
/**
|
||||
* This is intentionally <b>not</b> annotated with {@code @Configuration}.
|
||||
@@ -63,12 +60,12 @@ public class AnnotatedConfigClassesWithoutAtConfigurationTests {
|
||||
|
||||
|
||||
@Bean
|
||||
public String enigma() {
|
||||
String enigma() {
|
||||
return "enigma #" + enigmaCallCount.incrementAndGet();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public LifecycleBean lifecycleBean() {
|
||||
LifecycleBean lifecycleBean() {
|
||||
// The following call to enigma() literally invokes the local
|
||||
// enigma() method, not a CGLIB proxied version, since these methods
|
||||
// are essentially factory bean methods.
|
||||
@@ -87,7 +84,7 @@ public class AnnotatedConfigClassesWithoutAtConfigurationTests {
|
||||
|
||||
|
||||
@Test
|
||||
public void testSPR_9051() {
|
||||
void testSPR_9051() {
|
||||
assertThat(enigma).isNotNull();
|
||||
assertThat(lifecycleBean).isNotNull();
|
||||
assertThat(lifecycleBean.isInitialized()).isTrue();
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,18 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr9051;
|
||||
package org.springframework.test.context.litemode;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -36,9 +34,8 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.2
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = AtBeanLiteModeScopeTests.LiteBeans.class)
|
||||
public class AtBeanLiteModeScopeTests {
|
||||
@SpringJUnitConfig(AtBeanLiteModeScopeTests.LiteBeans.class)
|
||||
class AtBeanLiteModeScopeTests {
|
||||
|
||||
/**
|
||||
* This is intentionally <b>not</b> annotated with {@code @Configuration}.
|
||||
@@ -46,7 +43,7 @@ public class AtBeanLiteModeScopeTests {
|
||||
static class LiteBeans {
|
||||
|
||||
@Bean
|
||||
public LifecycleBean singleton() {
|
||||
LifecycleBean singleton() {
|
||||
LifecycleBean bean = new LifecycleBean("singleton");
|
||||
assertThat(bean.isInitialized()).isFalse();
|
||||
return bean;
|
||||
@@ -54,7 +51,7 @@ public class AtBeanLiteModeScopeTests {
|
||||
|
||||
@Bean
|
||||
@Scope("prototype")
|
||||
public LifecycleBean prototype() {
|
||||
LifecycleBean prototype() {
|
||||
LifecycleBean bean = new LifecycleBean("prototype");
|
||||
assertThat(bean.isInitialized()).isFalse();
|
||||
return bean;
|
||||
@@ -63,19 +60,19 @@ public class AtBeanLiteModeScopeTests {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ApplicationContext applicationContext;
|
||||
ApplicationContext applicationContext;
|
||||
|
||||
@Autowired
|
||||
@Qualifier("singleton")
|
||||
private LifecycleBean injectedSingletonBean;
|
||||
LifecycleBean injectedSingletonBean;
|
||||
|
||||
@Autowired
|
||||
@Qualifier("prototype")
|
||||
private LifecycleBean injectedPrototypeBean;
|
||||
LifecycleBean injectedPrototypeBean;
|
||||
|
||||
|
||||
@Test
|
||||
public void singletonLiteBean() {
|
||||
void singletonLiteBean() {
|
||||
assertThat(injectedSingletonBean).isNotNull();
|
||||
assertThat(injectedSingletonBean.isInitialized()).isTrue();
|
||||
|
||||
@@ -87,7 +84,7 @@ public class AtBeanLiteModeScopeTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void prototypeLiteBean() {
|
||||
void prototypeLiteBean() {
|
||||
assertThat(injectedPrototypeBean).isNotNull();
|
||||
assertThat(injectedPrototypeBean.isInitialized()).isTrue();
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr9051;
|
||||
package org.springframework.test.context.litemode;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,11 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr9051;
|
||||
package org.springframework.test.context.litemode;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -39,7 +39,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @see TransactionalAnnotatedConfigClassesWithoutAtConfigurationTests
|
||||
*/
|
||||
@ContextConfiguration
|
||||
public class TransactionalAnnotatedConfigClassWithAtConfigurationTests extends
|
||||
class TransactionalAnnotatedConfigClassWithAtConfigurationTests extends
|
||||
AbstractTransactionalAnnotatedConfigClassTests {
|
||||
|
||||
/**
|
||||
@@ -52,7 +52,7 @@ public class TransactionalAnnotatedConfigClassWithAtConfigurationTests extends
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
public Employee employee() {
|
||||
Employee employee() {
|
||||
Employee employee = new Employee();
|
||||
employee.setName("John Smith");
|
||||
employee.setAge(42);
|
||||
@@ -61,24 +61,24 @@ public class TransactionalAnnotatedConfigClassWithAtConfigurationTests extends
|
||||
}
|
||||
|
||||
@Bean
|
||||
public PlatformTransactionManager transactionManager() {
|
||||
PlatformTransactionManager transactionManager() {
|
||||
return new DataSourceTransactionManager(dataSource());
|
||||
}
|
||||
|
||||
@Bean
|
||||
public DataSource dataSource() {
|
||||
DataSource dataSource() {
|
||||
return new EmbeddedDatabaseBuilder()//
|
||||
.addScript("classpath:/org/springframework/test/jdbc/schema.sql")//
|
||||
// Ensure that this in-memory database is only used by this class:
|
||||
.setName(getClass().getName())//
|
||||
.build();
|
||||
.addScript("classpath:/org/springframework/test/jdbc/schema.sql")//
|
||||
// Ensure that this in-memory database is only used by this class:
|
||||
.setName(getClass().getName())//
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Before
|
||||
public void compareDataSources() {
|
||||
@BeforeEach
|
||||
void compareDataSources() {
|
||||
// NOTE: the two DataSource instances ARE the same!
|
||||
assertThat(dataSourceViaInjection).isSameAs(dataSourceFromTxManager);
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,11 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.spr9051;
|
||||
package org.springframework.test.context.litemode;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -45,7 +45,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @see TransactionalAnnotatedConfigClassWithAtConfigurationTests
|
||||
*/
|
||||
@ContextConfiguration(classes = TransactionalAnnotatedConfigClassesWithoutAtConfigurationTests.AnnotatedFactoryBeans.class)
|
||||
public class TransactionalAnnotatedConfigClassesWithoutAtConfigurationTests extends
|
||||
class TransactionalAnnotatedConfigClassesWithoutAtConfigurationTests extends
|
||||
AbstractTransactionalAnnotatedConfigClassTests {
|
||||
|
||||
/**
|
||||
@@ -58,7 +58,7 @@ public class TransactionalAnnotatedConfigClassesWithoutAtConfigurationTests exte
|
||||
static class AnnotatedFactoryBeans {
|
||||
|
||||
@Bean
|
||||
public Employee employee() {
|
||||
Employee employee() {
|
||||
Employee employee = new Employee();
|
||||
employee.setName("John Smith");
|
||||
employee.setAge(42);
|
||||
@@ -67,7 +67,7 @@ public class TransactionalAnnotatedConfigClassesWithoutAtConfigurationTests exte
|
||||
}
|
||||
|
||||
@Bean
|
||||
public PlatformTransactionManager transactionManager() {
|
||||
PlatformTransactionManager transactionManager() {
|
||||
return new DataSourceTransactionManager(dataSource());
|
||||
}
|
||||
|
||||
@@ -92,19 +92,19 @@ public class TransactionalAnnotatedConfigClassesWithoutAtConfigurationTests exte
|
||||
* which is almost certainly not the desired or intended behavior.
|
||||
*/
|
||||
@Bean
|
||||
public DataSource dataSource() {
|
||||
DataSource dataSource() {
|
||||
return new EmbeddedDatabaseBuilder()//
|
||||
.addScript("classpath:/org/springframework/test/jdbc/schema.sql")//
|
||||
// Ensure that this in-memory database is only used by this class:
|
||||
.setName(getClass().getName())//
|
||||
.build();
|
||||
.addScript("classpath:/org/springframework/test/jdbc/schema.sql")//
|
||||
// Ensure that this in-memory database is only used by this class:
|
||||
.setName(getClass().getName())//
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Before
|
||||
public void compareDataSources() {
|
||||
@BeforeEach
|
||||
void compareDataSources() {
|
||||
// NOTE: the two DataSource instances are NOT the same!
|
||||
assertThat(dataSourceViaInjection).isNotSameAs(dataSourceFromTxManager);
|
||||
}
|
||||
@@ -119,7 +119,7 @@ public class TransactionalAnnotatedConfigClassesWithoutAtConfigurationTests exte
|
||||
*/
|
||||
@AfterTransaction
|
||||
@Override
|
||||
public void afterTransaction() {
|
||||
void afterTransaction() {
|
||||
assertThat(deletePerson(YODA)).as("Deleting yoda").isEqualTo(1);
|
||||
|
||||
// NOTE: We would actually expect that there are now ZERO entries in the
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,20 +14,23 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.orm;
|
||||
package org.springframework.test.context.orm.hibernate;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.hibernate.exception.ConstraintViolationException;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
|
||||
import org.springframework.test.context.junit4.orm.domain.DriversLicense;
|
||||
import org.springframework.test.context.junit4.orm.domain.Person;
|
||||
import org.springframework.test.context.junit4.orm.service.PersonService;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.orm.hibernate.domain.DriversLicense;
|
||||
import org.springframework.test.context.orm.hibernate.domain.Person;
|
||||
import org.springframework.test.context.orm.hibernate.service.PersonService;
|
||||
import org.springframework.test.jdbc.JdbcTestUtils;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -42,23 +45,32 @@ import static org.springframework.test.transaction.TransactionAssert.assertThatT
|
||||
* @author Juergen Hoeller
|
||||
* @author Vlad Mihalcea
|
||||
* @since 3.0
|
||||
* @see org.springframework.test.context.junit.jupiter.orm.JpaEntityListenerTests
|
||||
* @see org.springframework.test.context.orm.jpa.JpaEntityListenerTests
|
||||
*/
|
||||
@ContextConfiguration
|
||||
public class HibernateSessionFlushingTests extends AbstractTransactionalJUnit4SpringContextTests {
|
||||
@SpringJUnitConfig
|
||||
@Transactional
|
||||
class HibernateSessionFlushingTests {
|
||||
|
||||
private static final String SAM = "Sam";
|
||||
private static final String JUERGEN = "Juergen";
|
||||
|
||||
@Autowired
|
||||
private PersonService personService;
|
||||
JdbcTemplate jdbcTemplate;
|
||||
|
||||
@Autowired
|
||||
private SessionFactory sessionFactory;
|
||||
SessionFactory sessionFactory;
|
||||
|
||||
@Autowired
|
||||
PersonService personService;
|
||||
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
@Autowired
|
||||
void setDataSource(DataSource dataSource) {
|
||||
this.jdbcTemplate = new JdbcTemplate(dataSource);
|
||||
}
|
||||
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
assertThatTransaction().isActive();
|
||||
assertThat(personService).as("PersonService should have been autowired.").isNotNull();
|
||||
assertThat(sessionFactory).as("SessionFactory should have been autowired.").isNotNull();
|
||||
@@ -66,7 +78,7 @@ public class HibernateSessionFlushingTests extends AbstractTransactionalJUnit4Sp
|
||||
|
||||
|
||||
@Test
|
||||
public void findSam() {
|
||||
void findSam() {
|
||||
Person sam = personService.findByName(SAM);
|
||||
assertThat(sam).as("Should be able to find Sam").isNotNull();
|
||||
DriversLicense driversLicense = sam.getDriversLicense();
|
||||
@@ -76,7 +88,7 @@ public class HibernateSessionFlushingTests extends AbstractTransactionalJUnit4Sp
|
||||
|
||||
@Test // SPR-16956
|
||||
@Transactional(readOnly = true)
|
||||
public void findSamWithReadOnlySession() {
|
||||
void findSamWithReadOnlySession() {
|
||||
Person sam = personService.findByName(SAM);
|
||||
sam.setName("Vlad");
|
||||
// By setting setDefaultReadOnly(true), the user can no longer modify any entity...
|
||||
@@ -87,7 +99,7 @@ public class HibernateSessionFlushingTests extends AbstractTransactionalJUnit4Sp
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveJuergenWithDriversLicense() {
|
||||
void saveJuergenWithDriversLicense() {
|
||||
DriversLicense driversLicense = new DriversLicense(2L, 2222L);
|
||||
Person juergen = new Person(JUERGEN, driversLicense);
|
||||
int numRows = countRowsInTable("person");
|
||||
@@ -98,21 +110,21 @@ public class HibernateSessionFlushingTests extends AbstractTransactionalJUnit4Sp
|
||||
}
|
||||
|
||||
@Test
|
||||
public void saveJuergenWithNullDriversLicense() {
|
||||
assertThatExceptionOfType(ConstraintViolationException.class).isThrownBy(() ->
|
||||
personService.save(new Person(JUERGEN)));
|
||||
void saveJuergenWithNullDriversLicense() {
|
||||
assertThatExceptionOfType(ConstraintViolationException.class)
|
||||
.isThrownBy(() -> personService.save(new Person(JUERGEN)));
|
||||
}
|
||||
|
||||
@Test
|
||||
// no expected exception!
|
||||
public void updateSamWithNullDriversLicenseWithoutSessionFlush() {
|
||||
void updateSamWithNullDriversLicenseWithoutSessionFlush() {
|
||||
updateSamWithNullDriversLicense();
|
||||
// False positive, since an exception will be thrown once the session is
|
||||
// finally flushed (i.e., in production code)
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateSamWithNullDriversLicenseWithSessionFlush() {
|
||||
void updateSamWithNullDriversLicenseWithSessionFlush() {
|
||||
updateSamWithNullDriversLicense();
|
||||
// Manual flush is required to avoid false positive in test
|
||||
assertThatExceptionOfType(ConstraintViolationException.class).isThrownBy(sessionFactory.getCurrentSession()::flush);
|
||||
@@ -125,4 +137,8 @@ public class HibernateSessionFlushingTests extends AbstractTransactionalJUnit4Sp
|
||||
personService.save(sam);
|
||||
}
|
||||
|
||||
private int countRowsInTable(String tableName) {
|
||||
return JdbcTestUtils.countRowsInTable(this.jdbcTemplate, tableName);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.orm.domain;
|
||||
package org.springframework.test.context.orm.hibernate.domain;
|
||||
|
||||
/**
|
||||
* DriversLicense POJO.
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.orm.domain;
|
||||
package org.springframework.test.context.orm.hibernate.domain;
|
||||
|
||||
/**
|
||||
* Person POJO.
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,14 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.orm.repository.hibernate;
|
||||
package org.springframework.test.context.orm.hibernate.repository;
|
||||
|
||||
import org.hibernate.SessionFactory;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.test.context.junit4.orm.domain.Person;
|
||||
import org.springframework.test.context.junit4.orm.repository.PersonRepository;
|
||||
import org.springframework.test.context.orm.hibernate.domain.Person;
|
||||
|
||||
/**
|
||||
* Hibernate implementation of the {@link PersonRepository} API.
|
||||
@@ -30,12 +28,11 @@ import org.springframework.test.context.junit4.orm.repository.PersonRepository;
|
||||
* @since 3.0
|
||||
*/
|
||||
@Repository
|
||||
public class HibernatePersonRepository implements PersonRepository {
|
||||
class HibernatePersonRepository implements PersonRepository {
|
||||
|
||||
private final SessionFactory sessionFactory;
|
||||
|
||||
|
||||
@Autowired
|
||||
public HibernatePersonRepository(SessionFactory sessionFactory) {
|
||||
this.sessionFactory = sessionFactory;
|
||||
}
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.orm.repository;
|
||||
package org.springframework.test.context.orm.hibernate.repository;
|
||||
|
||||
import org.springframework.test.context.junit4.orm.domain.Person;
|
||||
import org.springframework.test.context.orm.hibernate.domain.Person;
|
||||
|
||||
/**
|
||||
* Person Repository API.
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.orm.service;
|
||||
package org.springframework.test.context.orm.hibernate.service;
|
||||
|
||||
import org.springframework.test.context.junit4.orm.domain.Person;
|
||||
import org.springframework.test.context.orm.hibernate.domain.Person;
|
||||
|
||||
/**
|
||||
* Person Service API.
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2012 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,13 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.orm.service.impl;
|
||||
package org.springframework.test.context.orm.hibernate.service;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.test.context.junit4.orm.domain.Person;
|
||||
import org.springframework.test.context.junit4.orm.repository.PersonRepository;
|
||||
import org.springframework.test.context.junit4.orm.service.PersonService;
|
||||
import org.springframework.test.context.orm.hibernate.domain.Person;
|
||||
import org.springframework.test.context.orm.hibernate.repository.PersonRepository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
@@ -31,12 +29,11 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
*/
|
||||
@Service
|
||||
@Transactional(readOnly = true)
|
||||
public class StandardPersonService implements PersonService {
|
||||
class StandardPersonService implements PersonService {
|
||||
|
||||
private final PersonRepository personRepository;
|
||||
|
||||
|
||||
@Autowired
|
||||
public StandardPersonService(PersonRepository personRepository) {
|
||||
this.personRepository = personRepository;
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit.jupiter.orm;
|
||||
package org.springframework.test.context.orm.jpa;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -37,10 +37,10 @@ import org.springframework.orm.jpa.vendor.Database;
|
||||
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
|
||||
import org.springframework.test.context.jdbc.Sql;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.junit.jupiter.orm.domain.JpaPersonRepository;
|
||||
import org.springframework.test.context.junit.jupiter.orm.domain.Person;
|
||||
import org.springframework.test.context.junit.jupiter.orm.domain.PersonListener;
|
||||
import org.springframework.test.context.junit.jupiter.orm.domain.PersonRepository;
|
||||
import org.springframework.test.context.orm.jpa.domain.JpaPersonRepository;
|
||||
import org.springframework.test.context.orm.jpa.domain.Person;
|
||||
import org.springframework.test.context.orm.jpa.domain.PersonListener;
|
||||
import org.springframework.test.context.orm.jpa.domain.PersonRepository;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -53,7 +53,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 5.3.18
|
||||
* @see <a href="https://github.com/spring-projects/spring-framework/issues/28228">issue gh-28228</a>
|
||||
* @see org.springframework.test.context.junit4.orm.HibernateSessionFlushingTests
|
||||
* @see org.springframework.test.context.orm.hibernate.HibernateSessionFlushingTests
|
||||
*/
|
||||
@SpringJUnitConfig
|
||||
@Transactional
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit.jupiter.orm.domain;
|
||||
package org.springframework.test.context.orm.jpa.domain;
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.PersistenceContext;
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit.jupiter.orm.domain;
|
||||
package org.springframework.test.context.orm.jpa.domain;
|
||||
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.EntityListeners;
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit.jupiter.orm.domain;
|
||||
package org.springframework.test.context.orm.jpa.domain;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit.jupiter.orm.domain;
|
||||
package org.springframework.test.context.orm.jpa.domain;
|
||||
|
||||
/**
|
||||
* Person repository API.
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,16 +14,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.profile.annotation;
|
||||
package org.springframework.test.context.profile.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -32,25 +30,24 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = { DefaultProfileConfig.class, DevProfileConfig.class }, loader = AnnotationConfigContextLoader.class)
|
||||
public class DefaultProfileAnnotationConfigTests {
|
||||
@SpringJUnitConfig(classes = { DefaultProfileConfig.class, DevProfileConfig.class }, loader = AnnotationConfigContextLoader.class)
|
||||
class DefaultProfileAnnotationConfigTests {
|
||||
|
||||
@Autowired
|
||||
protected Pet pet;
|
||||
Pet pet;
|
||||
|
||||
@Autowired(required = false)
|
||||
protected Employee employee;
|
||||
Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
public void pet() {
|
||||
void pet() {
|
||||
assertThat(pet).isNotNull();
|
||||
assertThat(pet.getName()).isEqualTo("Fido");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void employee() {
|
||||
void employee() {
|
||||
assertThat(employee).as("employee bean should not be created for the default profile").isNull();
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.profile.annotation;
|
||||
package org.springframework.test.context.profile.annotation;
|
||||
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -24,7 +24,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @author Sam Brannen
|
||||
* @since 3.1
|
||||
*/
|
||||
@Configuration
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
public class DefaultProfileConfig {
|
||||
|
||||
@Bean
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,9 +14,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.profile.annotation;
|
||||
package org.springframework.test.context.profile.annotation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
|
||||
@@ -27,11 +27,11 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @since 3.1
|
||||
*/
|
||||
@ActiveProfiles("dev")
|
||||
public class DevProfileAnnotationConfigTests extends DefaultProfileAnnotationConfigTests {
|
||||
class DevProfileAnnotationConfigTests extends DefaultProfileAnnotationConfigTests {
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void employee() {
|
||||
void employee() {
|
||||
assertThat(employee).as("employee bean should be loaded for the 'dev' profile").isNotNull();
|
||||
assertThat(employee.getName()).isEqualTo("John Smith");
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.profile.annotation;
|
||||
package org.springframework.test.context.profile.annotation;
|
||||
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.profile.importresource;
|
||||
package org.springframework.test.context.profile.annotation;
|
||||
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.ActiveProfilesResolver;
|
||||
@@ -24,7 +24,7 @@ import org.springframework.test.context.ActiveProfilesResolver;
|
||||
* @since 4.0
|
||||
*/
|
||||
@ActiveProfiles(resolver = DevProfileResolverAnnotationConfigTests.class, inheritProfiles = false)
|
||||
public class DevProfileResolverAnnotationConfigTests extends DevProfileAnnotationConfigTests implements
|
||||
class DevProfileResolverAnnotationConfigTests extends DevProfileAnnotationConfigTests implements
|
||||
ActiveProfilesResolver {
|
||||
|
||||
@Override
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2025 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.
|
||||
@@ -14,16 +14,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.test.context.junit4.profile.importresource;
|
||||
package org.springframework.test.context.profile.importresource;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.testfixture.beans.Employee;
|
||||
import org.springframework.beans.testfixture.beans.Pet;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -31,25 +29,24 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Juergen Hoeller
|
||||
* @since 3.1
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = DefaultProfileConfig.class)
|
||||
public class DefaultProfileAnnotationConfigTests {
|
||||
@SpringJUnitConfig(DefaultProfileConfig.class)
|
||||
class DefaultProfileAnnotationConfigTests {
|
||||
|
||||
@Autowired
|
||||
protected Pet pet;
|
||||
Pet pet;
|
||||
|
||||
@Autowired(required = false)
|
||||
protected Employee employee;
|
||||
Employee employee;
|
||||
|
||||
|
||||
@Test
|
||||
public void pet() {
|
||||
void pet() {
|
||||
assertThat(pet).isNotNull();
|
||||
assertThat(pet.getName()).isEqualTo("Fido");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void employee() {
|
||||
void employee() {
|
||||
assertThat(employee).as("employee bean should not be created for the default profile").isNull();
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user