From a42944d3644e7b3100445b463574b2a52e37aa1e Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Mon, 6 Apr 2020 18:17:18 +0200 Subject: [PATCH] Consolidate TxMgr lookup tests in the TCF This commit consolidates TransactionManager lookup tests in the Spring TestContext Framework (TCF), migrates some to JUnit Jupiter, simplifies their implementations, and removes duplicated test cases. --- .../LookUpTxMgrByTypeAndDefaultNameTests.java | 85 ----------------- .../LookUpTxMgrByTypeAndNameTests.java | 85 ----------------- .../LookUpTxMgrByTypeAndDefaultNameTests.java | 92 +++++++++++++++++++ ...grByTypeAndQualifierAtClassLevelTests.java | 81 ++++++++-------- ...rByTypeAndQualifierAtMethodLevelTests.java | 83 +++++++++-------- .../manager}/LookUpTxMgrByTypeTests.java | 48 +++++----- .../LookUpTxMgrNonTransactionalTests.java} | 41 +++++---- ...aTransactionManagementConfigurerTests.java | 73 +++++++-------- .../PrimaryTransactionManagerTests.java | 15 +-- 9 files changed, 268 insertions(+), 335 deletions(-) delete mode 100644 spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndDefaultNameTests.java delete mode 100644 spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndNameTests.java create mode 100644 spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeAndDefaultNameTests.java rename spring-test/src/test/java/org/springframework/test/context/{junit4/spr9645 => transaction/manager}/LookUpTxMgrByTypeAndQualifierAtClassLevelTests.java (61%) rename spring-test/src/test/java/org/springframework/test/context/{junit4/spr9645 => transaction/manager}/LookUpTxMgrByTypeAndQualifierAtMethodLevelTests.java (61%) rename spring-test/src/test/java/org/springframework/test/context/{junit4/spr9645 => transaction/manager}/LookUpTxMgrByTypeTests.java (67%) rename spring-test/src/test/java/org/springframework/test/context/{junit4/spr9645/LookUpNonexistentTxMgrTests.java => transaction/manager/LookUpTxMgrNonTransactionalTests.java} (67%) rename spring-test/src/test/java/org/springframework/test/context/{junit4/spr9604 => transaction/manager}/LookUpTxMgrViaTransactionManagementConfigurerTests.java (69%) rename spring-test/src/test/java/org/springframework/test/context/transaction/{ => manager}/PrimaryTransactionManagerTests.java (88%) diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndDefaultNameTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndDefaultNameTests.java deleted file mode 100644 index 6f2b0915045..00000000000 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndDefaultNameTests.java +++ /dev/null @@ -1,85 +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.spr9645; - -import org.junit.Test; -import org.junit.runner.RunWith; - -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.transaction.AfterTransaction; -import org.springframework.test.context.transaction.BeforeTransaction; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.testfixture.CallCountingTransactionManager; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests that verify the behavior requested in - * SPR-9645. - * - * @author Sam Brannen - * @since 3.2 - */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration -@Transactional -public class LookUpTxMgrByTypeAndDefaultNameTests { - - private static final CallCountingTransactionManager txManager1 = new CallCountingTransactionManager(); - private static final CallCountingTransactionManager txManager2 = new CallCountingTransactionManager(); - - @Configuration - static class Config { - - @Bean - public PlatformTransactionManager transactionManager() { - return txManager1; - } - - @Bean - public PlatformTransactionManager txManager2() { - return txManager2; - } - } - - @BeforeTransaction - public void beforeTransaction() { - txManager1.clear(); - txManager2.clear(); - } - - @Test - public void transactionalTest() { - assertThat(txManager1.begun).isEqualTo(1); - assertThat(txManager1.inflight).isEqualTo(1); - assertThat(txManager1.commits).isEqualTo(0); - assertThat(txManager1.rollbacks).isEqualTo(0); - } - - @AfterTransaction - public void afterTransaction() { - assertThat(txManager1.begun).isEqualTo(1); - assertThat(txManager1.inflight).isEqualTo(0); - assertThat(txManager1.commits).isEqualTo(0); - assertThat(txManager1.rollbacks).isEqualTo(1); - } - -} diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndNameTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndNameTests.java deleted file mode 100644 index f14ffe106cc..00000000000 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndNameTests.java +++ /dev/null @@ -1,85 +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.spr9645; - -import org.junit.Test; -import org.junit.runner.RunWith; - -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.transaction.AfterTransaction; -import org.springframework.test.context.transaction.BeforeTransaction; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.testfixture.CallCountingTransactionManager; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests that verify the behavior requested in - * SPR-9645. - * - * @author Sam Brannen - * @since 3.2 - */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration -@Transactional("txManager1") -public class LookUpTxMgrByTypeAndNameTests { - - private static final CallCountingTransactionManager txManager1 = new CallCountingTransactionManager(); - private static final CallCountingTransactionManager txManager2 = new CallCountingTransactionManager(); - - @Configuration - static class Config { - - @Bean - public PlatformTransactionManager txManager1() { - return txManager1; - } - - @Bean - public PlatformTransactionManager txManager2() { - return txManager2; - } - } - - @BeforeTransaction - public void beforeTransaction() { - txManager1.clear(); - txManager2.clear(); - } - - @Test - public void transactionalTest() { - assertThat(txManager1.begun).isEqualTo(1); - assertThat(txManager1.inflight).isEqualTo(1); - assertThat(txManager1.commits).isEqualTo(0); - assertThat(txManager1.rollbacks).isEqualTo(0); - } - - @AfterTransaction - public void afterTransaction() { - assertThat(txManager1.begun).isEqualTo(1); - assertThat(txManager1.inflight).isEqualTo(0); - assertThat(txManager1.commits).isEqualTo(0); - assertThat(txManager1.rollbacks).isEqualTo(1); - } - -} diff --git a/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeAndDefaultNameTests.java b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeAndDefaultNameTests.java new file mode 100644 index 00000000000..4b5199133b6 --- /dev/null +++ b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeAndDefaultNameTests.java @@ -0,0 +1,92 @@ +/* + * Copyright 2002-2020 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.transaction.manager; + +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.junit.jupiter.SpringJUnitConfig; +import org.springframework.test.context.transaction.AfterTransaction; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.testfixture.CallCountingTransactionManager; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Integration tests that verify the behavior requested in + * SPR-9645. + * + * @author Sam Brannen + * @since 3.2 + */ +@SpringJUnitConfig +@Transactional +class LookUpTxMgrByTypeAndDefaultNameTests { + + @Autowired + CallCountingTransactionManager transactionManager; + + @Autowired + CallCountingTransactionManager txManager2; + + + @Test + void transactionalTest() { + assertThat(transactionManager.begun).isEqualTo(1); + assertThat(transactionManager.inflight).isEqualTo(1); + assertThat(transactionManager.commits).isEqualTo(0); + assertThat(transactionManager.rollbacks).isEqualTo(0); + + assertThat(txManager2.begun).isEqualTo(0); + assertThat(txManager2.inflight).isEqualTo(0); + assertThat(txManager2.commits).isEqualTo(0); + assertThat(txManager2.rollbacks).isEqualTo(0); + } + + @AfterTransaction + void afterTransaction() { + assertThat(transactionManager.begun).isEqualTo(1); + assertThat(transactionManager.inflight).isEqualTo(0); + assertThat(transactionManager.commits).isEqualTo(0); + assertThat(transactionManager.rollbacks).isEqualTo(1); + + assertThat(txManager2.begun).isEqualTo(0); + assertThat(txManager2.inflight).isEqualTo(0); + assertThat(txManager2.commits).isEqualTo(0); + assertThat(txManager2.rollbacks).isEqualTo(0); + } + + + @Configuration + static class Config { + + @Bean + PlatformTransactionManager transactionManager() { + return new CallCountingTransactionManager(); + } + + @Bean + PlatformTransactionManager txManager2() { + return new CallCountingTransactionManager(); + } + + } + +} diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndQualifierAtClassLevelTests.java b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeAndQualifierAtClassLevelTests.java similarity index 61% rename from spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndQualifierAtClassLevelTests.java rename to spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeAndQualifierAtClassLevelTests.java index 9f507a99239..3a5a5ab77be 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndQualifierAtClassLevelTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeAndQualifierAtClassLevelTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 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.spr9645; +package org.springframework.test.context.transaction.manager; -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.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.transaction.AfterTransaction; -import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.testfixture.CallCountingTransactionManager; @@ -38,48 +36,57 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Sam Brannen * @since 3.2 */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration +@SpringJUnitConfig @Transactional("txManager1") -public class LookUpTxMgrByTypeAndQualifierAtClassLevelTests { +class LookUpTxMgrByTypeAndQualifierAtClassLevelTests { + + @Autowired + CallCountingTransactionManager txManager1; + + @Autowired + CallCountingTransactionManager txManager2; + + + @Test + void transactionalTest() { + assertThat(txManager1.begun).isEqualTo(1); + assertThat(txManager1.inflight).isEqualTo(1); + assertThat(txManager1.commits).isEqualTo(0); + assertThat(txManager1.rollbacks).isEqualTo(0); + + assertThat(txManager2.begun).isEqualTo(0); + assertThat(txManager2.inflight).isEqualTo(0); + assertThat(txManager2.commits).isEqualTo(0); + assertThat(txManager2.rollbacks).isEqualTo(0); + } + + @AfterTransaction + void afterTransaction() { + assertThat(txManager1.begun).isEqualTo(1); + assertThat(txManager1.inflight).isEqualTo(0); + assertThat(txManager1.commits).isEqualTo(0); + assertThat(txManager1.rollbacks).isEqualTo(1); + + assertThat(txManager2.begun).isEqualTo(0); + assertThat(txManager2.inflight).isEqualTo(0); + assertThat(txManager2.commits).isEqualTo(0); + assertThat(txManager2.rollbacks).isEqualTo(0); + } - private static final CallCountingTransactionManager txManager1 = new CallCountingTransactionManager(); - private static final CallCountingTransactionManager txManager2 = new CallCountingTransactionManager(); @Configuration static class Config { @Bean - public PlatformTransactionManager txManager1() { - return txManager1; + PlatformTransactionManager txManager1() { + return new CallCountingTransactionManager(); } @Bean - public PlatformTransactionManager txManager2() { - return txManager2; + PlatformTransactionManager txManager2() { + return new CallCountingTransactionManager(); } - } - @BeforeTransaction - public void beforeTransaction() { - txManager1.clear(); - txManager2.clear(); - } - - @Test - public void transactionalTest() { - assertThat(txManager1.begun).isEqualTo(1); - assertThat(txManager1.inflight).isEqualTo(1); - assertThat(txManager1.commits).isEqualTo(0); - assertThat(txManager1.rollbacks).isEqualTo(0); - } - - @AfterTransaction - public void afterTransaction() { - assertThat(txManager1.begun).isEqualTo(1); - assertThat(txManager1.inflight).isEqualTo(0); - assertThat(txManager1.commits).isEqualTo(0); - assertThat(txManager1.rollbacks).isEqualTo(1); } } diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndQualifierAtMethodLevelTests.java b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeAndQualifierAtMethodLevelTests.java similarity index 61% rename from spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndQualifierAtMethodLevelTests.java rename to spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeAndQualifierAtMethodLevelTests.java index b3aef4e781c..707c9fe3a07 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeAndQualifierAtMethodLevelTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeAndQualifierAtMethodLevelTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 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.spr9645; +package org.springframework.test.context.transaction.manager; -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.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.transaction.AfterTransaction; -import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.testfixture.CallCountingTransactionManager; @@ -38,48 +36,57 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Sam Brannen * @since 3.2 */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration -public class LookUpTxMgrByTypeAndQualifierAtMethodLevelTests { +@SpringJUnitConfig +class LookUpTxMgrByTypeAndQualifierAtMethodLevelTests { + + @Autowired + CallCountingTransactionManager txManager1; + + @Autowired + CallCountingTransactionManager txManager2; + + + @Transactional("txManager1") + @Test + void transactionalTest() { + assertThat(txManager1.begun).isEqualTo(1); + assertThat(txManager1.inflight).isEqualTo(1); + assertThat(txManager1.commits).isEqualTo(0); + assertThat(txManager1.rollbacks).isEqualTo(0); + + assertThat(txManager2.begun).isEqualTo(0); + assertThat(txManager2.inflight).isEqualTo(0); + assertThat(txManager2.commits).isEqualTo(0); + assertThat(txManager2.rollbacks).isEqualTo(0); + } + + @AfterTransaction + void afterTransaction() { + assertThat(txManager1.begun).isEqualTo(1); + assertThat(txManager1.inflight).isEqualTo(0); + assertThat(txManager1.commits).isEqualTo(0); + assertThat(txManager1.rollbacks).isEqualTo(1); + + assertThat(txManager2.begun).isEqualTo(0); + assertThat(txManager2.inflight).isEqualTo(0); + assertThat(txManager2.commits).isEqualTo(0); + assertThat(txManager2.rollbacks).isEqualTo(0); + } - private static final CallCountingTransactionManager txManager1 = new CallCountingTransactionManager(); - private static final CallCountingTransactionManager txManager2 = new CallCountingTransactionManager(); @Configuration static class Config { @Bean - public PlatformTransactionManager txManager1() { - return txManager1; + PlatformTransactionManager txManager1() { + return new CallCountingTransactionManager(); } @Bean - public PlatformTransactionManager txManager2() { - return txManager2; + PlatformTransactionManager txManager2() { + return new CallCountingTransactionManager(); } - } - @BeforeTransaction - public void beforeTransaction() { - txManager1.clear(); - txManager2.clear(); - } - - @Transactional("txManager1") - @Test - public void transactionalTest() { - assertThat(txManager1.begun).isEqualTo(1); - assertThat(txManager1.inflight).isEqualTo(1); - assertThat(txManager1.commits).isEqualTo(0); - assertThat(txManager1.rollbacks).isEqualTo(0); - } - - @AfterTransaction - public void afterTransaction() { - assertThat(txManager1.begun).isEqualTo(1); - assertThat(txManager1.inflight).isEqualTo(0); - assertThat(txManager1.commits).isEqualTo(0); - assertThat(txManager1.rollbacks).isEqualTo(1); } } diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeTests.java b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeTests.java similarity index 67% rename from spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeTests.java rename to spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeTests.java index 835a911a72f..c2025e5bfbe 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpTxMgrByTypeTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrByTypeTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 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.spr9645; +package org.springframework.test.context.transaction.manager; -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.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.transaction.AfterTransaction; -import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.testfixture.CallCountingTransactionManager; @@ -38,29 +36,16 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Sam Brannen * @since 3.2 */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration +@SpringJUnitConfig @Transactional -public class LookUpTxMgrByTypeTests { +class LookUpTxMgrByTypeTests { - private static final CallCountingTransactionManager txManager = new CallCountingTransactionManager(); + @Autowired + CallCountingTransactionManager txManager; - @Configuration - static class Config { - - @Bean - public PlatformTransactionManager txManager() { - return txManager; - } - } - - @BeforeTransaction - public void beforeTransaction() { - txManager.clear(); - } @Test - public void transactionalTest() { + void transactionalTest() { assertThat(txManager.begun).isEqualTo(1); assertThat(txManager.inflight).isEqualTo(1); assertThat(txManager.commits).isEqualTo(0); @@ -68,11 +53,22 @@ public class LookUpTxMgrByTypeTests { } @AfterTransaction - public void afterTransaction() { + void afterTransaction() { assertThat(txManager.begun).isEqualTo(1); assertThat(txManager.inflight).isEqualTo(0); assertThat(txManager.commits).isEqualTo(0); assertThat(txManager.rollbacks).isEqualTo(1); } + + @Configuration + static class Config { + + @Bean + PlatformTransactionManager txManager() { + return new CallCountingTransactionManager(); + } + + } + } diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpNonexistentTxMgrTests.java b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrNonTransactionalTests.java similarity index 67% rename from spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpNonexistentTxMgrTests.java rename to spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrNonTransactionalTests.java index 5958079e45b..ad6aae53683 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9645/LookUpNonexistentTxMgrTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrNonTransactionalTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 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,14 @@ * limitations under the License. */ -package org.springframework.test.context.junit4.spr9645; +package org.springframework.test.context.transaction.manager; -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.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.transaction.PlatformTransactionManager; import org.springframework.transaction.testfixture.CallCountingTransactionManager; @@ -35,26 +34,30 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Sam Brannen * @since 3.2 */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration -public class LookUpNonexistentTxMgrTests { +@SpringJUnitConfig +class LookUpTxMgrNonTransactionalTests { - private static final CallCountingTransactionManager txManager = new CallCountingTransactionManager(); + @Autowired + CallCountingTransactionManager txManager; - @Configuration - static class Config { - - @Bean - public PlatformTransactionManager transactionManager() { - return txManager; - } - } @Test - public void nonTransactionalTest() { + void nonTransactionalTest() { assertThat(txManager.begun).isEqualTo(0); assertThat(txManager.inflight).isEqualTo(0); assertThat(txManager.commits).isEqualTo(0); assertThat(txManager.rollbacks).isEqualTo(0); } + + + @Configuration + static class Config { + + @Bean + PlatformTransactionManager transactionManager() { + return new CallCountingTransactionManager(); + } + + } + } diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9604/LookUpTxMgrViaTransactionManagementConfigurerTests.java b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrViaTransactionManagementConfigurerTests.java similarity index 69% rename from spring-test/src/test/java/org/springframework/test/context/junit4/spr9604/LookUpTxMgrViaTransactionManagementConfigurerTests.java rename to spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrViaTransactionManagementConfigurerTests.java index c1bcfec1e2f..3a30c12c06b 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr9604/LookUpTxMgrViaTransactionManagementConfigurerTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/LookUpTxMgrViaTransactionManagementConfigurerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 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.spr9604; +package org.springframework.test.context.transaction.manager; -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.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.transaction.AfterTransaction; -import org.springframework.test.context.transaction.BeforeTransaction; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.TransactionManagementConfigurer; import org.springframework.transaction.annotation.Transactional; @@ -39,43 +37,19 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Sam Brannen * @since 3.2 */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration +@SpringJUnitConfig @Transactional -public class LookUpTxMgrViaTransactionManagementConfigurerTests { +class LookUpTxMgrViaTransactionManagementConfigurerTests { - private static final CallCountingTransactionManager txManager1 = new CallCountingTransactionManager(); - private static final CallCountingTransactionManager txManager2 = new CallCountingTransactionManager(); + @Autowired + CallCountingTransactionManager txManager1; + @Autowired + CallCountingTransactionManager txManager2; - @Configuration - static class Config implements TransactionManagementConfigurer { - - @Override - public PlatformTransactionManager annotationDrivenTransactionManager() { - return txManager1(); - } - - @Bean - public PlatformTransactionManager txManager1() { - return txManager1; - } - - @Bean - public PlatformTransactionManager txManager2() { - return txManager2; - } - } - - - @BeforeTransaction - public void beforeTransaction() { - txManager1.clear(); - txManager2.clear(); - } @Test - public void transactionalTest() { + void transactionalTest() { assertThat(txManager1.begun).isEqualTo(1); assertThat(txManager1.inflight).isEqualTo(1); assertThat(txManager1.commits).isEqualTo(0); @@ -88,7 +62,7 @@ public class LookUpTxMgrViaTransactionManagementConfigurerTests { } @AfterTransaction - public void afterTransaction() { + void afterTransaction() { assertThat(txManager1.begun).isEqualTo(1); assertThat(txManager1.inflight).isEqualTo(0); assertThat(txManager1.commits).isEqualTo(0); @@ -100,4 +74,25 @@ public class LookUpTxMgrViaTransactionManagementConfigurerTests { assertThat(txManager2.rollbacks).isEqualTo(0); } + + @Configuration + static class Config implements TransactionManagementConfigurer { + + @Override + public PlatformTransactionManager annotationDrivenTransactionManager() { + return txManager1(); + } + + @Bean + PlatformTransactionManager txManager1() { + return new CallCountingTransactionManager(); + } + + @Bean + PlatformTransactionManager txManager2() { + return new CallCountingTransactionManager(); + } + + } + } diff --git a/spring-test/src/test/java/org/springframework/test/context/transaction/PrimaryTransactionManagerTests.java b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/PrimaryTransactionManagerTests.java similarity index 88% rename from spring-test/src/test/java/org/springframework/test/context/transaction/PrimaryTransactionManagerTests.java rename to spring-test/src/test/java/org/springframework/test/context/transaction/manager/PrimaryTransactionManagerTests.java index 95e477d4c44..b7fcd5fefe6 100644 --- a/spring-test/src/test/java/org/springframework/test/context/transaction/PrimaryTransactionManagerTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/transaction/manager/PrimaryTransactionManagerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 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.transaction; +package org.springframework.test.context.transaction.manager; import javax.sql.DataSource; @@ -31,6 +31,8 @@ import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; import org.springframework.test.annotation.DirtiesContext; 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.test.jdbc.JdbcTestUtils; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; @@ -49,16 +51,16 @@ import static org.springframework.test.transaction.TransactionAssert.assertThatT */ @SpringJUnitConfig @DirtiesContext -final class PrimaryTransactionManagerTests { - - private JdbcTemplate jdbcTemplate; +final /* Intentionally FINAL */ class PrimaryTransactionManagerTests { + private final JdbcTemplate jdbcTemplate; @Autowired - void setDataSource(DataSource dataSource1) { + PrimaryTransactionManagerTests(DataSource dataSource1) { this.jdbcTemplate = new JdbcTemplate(dataSource1); } + @BeforeTransaction void beforeTransaction() { assertNumUsers(0); @@ -112,6 +114,7 @@ final class PrimaryTransactionManagerTests { DataSource dataSource2() { return new EmbeddedDatabaseBuilder().generateUniqueName(true).build(); } + } }