|
40 | 40 | import org.springframework.boot.test.context.FilteredClassLoader; |
41 | 41 | import org.springframework.boot.test.context.TestConfiguration; |
42 | 42 | import org.springframework.boot.test.context.runner.ApplicationContextRunner; |
| 43 | +import org.springframework.boot.transaction.autoconfigure.TransactionManagerCustomizationAutoConfiguration; |
43 | 44 | import org.springframework.context.annotation.Bean; |
44 | 45 | import org.springframework.context.annotation.Configuration; |
45 | 46 | import org.springframework.core.annotation.Order; |
|
78 | 79 | import org.springframework.pulsar.function.PulsarFunctionAdministration; |
79 | 80 | import org.springframework.pulsar.listener.PulsarContainerProperties.TransactionSettings; |
80 | 81 | import org.springframework.pulsar.transaction.PulsarAwareTransactionManager; |
| 82 | +import org.springframework.pulsar.transaction.PulsarTransactionManager; |
81 | 83 | import org.springframework.test.util.ReflectionTestUtils; |
| 84 | +import org.springframework.transaction.TransactionExecutionListener; |
82 | 85 |
|
83 | 86 | import static org.assertj.core.api.Assertions.assertThat; |
84 | 87 | import static org.mockito.BDDMockito.given; |
|
92 | 95 | * @author Alexander Preuß |
93 | 96 | * @author Soby Chacko |
94 | 97 | * @author Phillip Webb |
| 98 | + * @author Yanming Zhou |
95 | 99 | */ |
96 | 100 | class PulsarAutoConfigurationTests { |
97 | 101 |
|
@@ -173,6 +177,18 @@ void whenHasUserDefinedContainerFactoryCustomizersBeanDoesNotAutoConfigureBean() |
173 | 177 | .isSameAs(customizers)); |
174 | 178 | } |
175 | 179 |
|
| 180 | + @Test |
| 181 | + void pulsarTransactionManagerWithTransactionExecutionListenersIsConfigured() { |
| 182 | + TransactionExecutionListener listener = mock(TransactionExecutionListener.class); |
| 183 | + this.contextRunner.withPropertyValues("spring.pulsar.transaction.enabled=true") |
| 184 | + .withConfiguration(AutoConfigurations.of(TransactionManagerCustomizationAutoConfiguration.class)) |
| 185 | + .withBean(TransactionExecutionListener.class, () -> listener) |
| 186 | + .run((context) -> { |
| 187 | + PulsarTransactionManager transactionManager = context.getBean(PulsarTransactionManager.class); |
| 188 | + assertThat(transactionManager.getTransactionExecutionListeners()).containsExactly(listener); |
| 189 | + }); |
| 190 | + } |
| 191 | + |
176 | 192 | @Nested |
177 | 193 | class ClientTests { |
178 | 194 |
|
|
0 commit comments