add test for "resolve the placeholder for listener.txProducerGroup() "
diff --git a/rocketmq-spring-boot/src/test/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfigurationTest.java b/rocketmq-spring-boot/src/test/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfigurationTest.java
index d613808..53c716e 100644
--- a/rocketmq-spring-boot/src/test/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfigurationTest.java
+++ b/rocketmq-spring-boot/src/test/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfigurationTest.java
@@ -21,7 +21,10 @@
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.spring.annotation.ExtRocketMQTemplateConfiguration;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
+import org.apache.rocketmq.spring.annotation.RocketMQTransactionListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
+import org.apache.rocketmq.spring.core.RocketMQLocalTransactionListener;
+import org.apache.rocketmq.spring.core.RocketMQLocalTransactionState;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer;
import org.junit.Assert;
@@ -34,6 +37,7 @@
import org.springframework.boot.test.context.runner.ContextConsumer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.messaging.Message;
import static org.assertj.core.api.Assertions.assertThat;
@@ -159,6 +163,18 @@
}
+ @Test
+ public void testRocketMQTransactionListener() {
+ runner.withPropertyValues("rocketmq.name-server=127.0.0.1:9876",
+ "rocketmq.producer.group=spring_rocketmq",
+ "demo.rocketmq.transaction.producer.group=transaction-group1").
+ withUserConfiguration(TestTransactionListenerConfig.class).
+ run((context) -> {
+ assertThat(context).hasSingleBean(MyRocketMQLocalTransactionListener.class);
+
+ });
+
+ }
@Configuration
static class TestConfig {
@@ -219,6 +235,30 @@
}
@Configuration
+ static class TestTransactionListenerConfig {
+ @Bean
+ public Object rocketMQLocalTransactionListener() {
+ return new MyRocketMQLocalTransactionListener();
+ }
+
+ }
+
+ @RocketMQTransactionListener(txProducerGroup = "${demo.rocketmq.transaction.producer.group}")
+ static class MyRocketMQLocalTransactionListener implements RocketMQLocalTransactionListener {
+
+
+ @Override
+ public RocketMQLocalTransactionState executeLocalTransaction(Message msg, Object arg) {
+ return RocketMQLocalTransactionState.COMMIT;
+ }
+
+ @Override
+ public RocketMQLocalTransactionState checkLocalTransaction(Message msg) {
+ return RocketMQLocalTransactionState.COMMIT;
+ }
+ }
+
+ @Configuration
static class ExtRocketMQTemplateConfig {
@Bean