Polish "Align use of transaction manager in MongoDB support"

See gh-51725
This commit is contained in:
Stéphane Nicoll
2026-09-16 19:43:03 +02:00
parent f5b8c5a72d
commit d479a6a42f
2 changed files with 5 additions and 41 deletions
@@ -56,7 +56,6 @@ import org.springframework.transaction.annotation.Isolation;
* {@link EnableAutoConfiguration Auto-configuration} for Spring Batch using Data MongoDB. * {@link EnableAutoConfiguration Auto-configuration} for Spring Batch using Data MongoDB.
* *
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Yanming Zhou
* @since 4.1.0 * @since 4.1.0
*/ */
@AutoConfiguration(before = { BatchAutoConfiguration.class, BatchJobLauncherAutoConfiguration.class }, @AutoConfiguration(before = { BatchAutoConfiguration.class, BatchJobLauncherAutoConfiguration.class },
@@ -50,7 +50,6 @@ import static org.mockito.Mockito.times;
* Tests for {@link BatchDataMongoAutoConfiguration}. * Tests for {@link BatchDataMongoAutoConfiguration}.
* *
* @author Stephane Nicoll * @author Stephane Nicoll
* @author Yanming Zhou
*/ */
class BatchDataMongoAutoConfigurationTests { class BatchDataMongoAutoConfigurationTests {
@@ -71,17 +70,7 @@ class BatchDataMongoAutoConfigurationTests {
} }
@Test @Test
void autConfigurationUsesMainMongoTransactionManager() { void autConfigurationUsesMainTransactionManager() {
MongoTransactionManager transactionManager = mock(MongoTransactionManager.class);
this.contextRunner.withBean(MongoDatabaseFactory.class, this::mockMongoDatabaseFactory)
.withBean(MongoTransactionManager.class, () -> transactionManager)
.run((context) -> assertThat(
context.getBean(SpringBootBatchMongoConfiguration.class).getTransactionManager())
.isSameAs(transactionManager));
}
@Test
void autConfigurationUsesMainPlatformTransactionManager() {
PlatformTransactionManager transactionManager = mock(PlatformTransactionManager.class); PlatformTransactionManager transactionManager = mock(PlatformTransactionManager.class);
this.contextRunner.withBean(MongoDatabaseFactory.class, this::mockMongoDatabaseFactory) this.contextRunner.withBean(MongoDatabaseFactory.class, this::mockMongoDatabaseFactory)
.withBean(PlatformTransactionManager.class, () -> transactionManager) .withBean(PlatformTransactionManager.class, () -> transactionManager)
@@ -91,24 +80,11 @@ class BatchDataMongoAutoConfigurationTests {
} }
@Test @Test
void autConfigurationFavorsBatchMongoTransactionManager() { void autConfigurationFavorsBatchTransactionManager() {
MongoTransactionManager transactionManager = mock(MongoTransactionManager.class); MongoTransactionManager transactionManager = mock(MongoTransactionManager.class);
this.contextRunner.withBean(MongoDatabaseFactory.class, this::mockMongoDatabaseFactory) this.contextRunner.withBean(MongoDatabaseFactory.class, this::mockMongoDatabaseFactory)
.withBean(MongoTransactionManager.class, () -> transactionManager) .withBean(MongoTransactionManager.class, () -> transactionManager)
.withUserConfiguration(BatchMongoTransactionManagerConfiguration.class) .withUserConfiguration(BatchTransactionManagerConfiguration.class)
.run((context) -> {
assertThat(context.getBeansOfType(MongoTransactionManager.class)).hasSize(2);
assertThat(context.getBean(SpringBootBatchMongoConfiguration.class).getTransactionManager())
.isSameAs(context.getBean("customTransactionManager"));
});
}
@Test
void autConfigurationFavorsBatchPlatformTransactionManager() {
PlatformTransactionManager transactionManager = mock(PlatformTransactionManager.class);
this.contextRunner.withBean(MongoDatabaseFactory.class, this::mockMongoDatabaseFactory)
.withBean(PlatformTransactionManager.class, () -> transactionManager)
.withUserConfiguration(BatchPlatformTransactionManagerConfiguration.class)
.run((context) -> { .run((context) -> {
assertThat(context.getBeansOfType(PlatformTransactionManager.class)).hasSize(2); assertThat(context.getBeansOfType(PlatformTransactionManager.class)).hasSize(2);
assertThat(context.getBean(SpringBootBatchMongoConfiguration.class).getTransactionManager()) assertThat(context.getBean(SpringBootBatchMongoConfiguration.class).getTransactionManager())
@@ -123,7 +99,7 @@ class BatchDataMongoAutoConfigurationTests {
assertThat(context).doesNotHaveBean(MongoTransactionManager.class); assertThat(context).doesNotHaveBean(MongoTransactionManager.class);
assertThat(context.getBean(SpringBootBatchMongoConfiguration.class).getTransactionManager()) assertThat(context.getBean(SpringBootBatchMongoConfiguration.class).getTransactionManager())
.isInstanceOfSatisfying(MongoTransactionManager.class, .isInstanceOfSatisfying(MongoTransactionManager.class,
(mongoTransactionManager) -> assertThat(mongoTransactionManager.getDatabaseFactory()) (transactionManager) -> assertThat(transactionManager.getDatabaseFactory())
.isSameAs(mongoDatabaseFactory)); .isSameAs(mongoDatabaseFactory));
}); });
} }
@@ -223,18 +199,7 @@ class BatchDataMongoAutoConfigurationTests {
} }
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
static class BatchMongoTransactionManagerConfiguration { static class BatchTransactionManagerConfiguration {
@Bean
@BatchTransactionManager
MongoTransactionManager customTransactionManager() {
return mock(MongoTransactionManager.class);
}
}
@Configuration(proxyBeanMethods = false)
static class BatchPlatformTransactionManagerConfiguration {
@Bean @Bean
@BatchTransactionManager @BatchTransactionManager