[WIP] add rocketmq test
parent
f73f804833
commit
5115aa483d
@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>rocketmq-tests</artifactId>
|
||||
<version>2021.0.1.1-SNAPSHOT</version>
|
||||
<modules>
|
||||
<module>rocketmq-bus-test</module>
|
||||
<module>rocketmq-stream-test</module>
|
||||
</modules>
|
||||
|
||||
<name>rocketmq-tests</name>
|
||||
|
||||
<parent>
|
||||
<artifactId>spring-cloud-alibaba-tests</artifactId>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.7</maven.compiler.source>
|
||||
<maven.compiler.target>1.7</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.11</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
|
||||
<plugins>
|
||||
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
</plugin>
|
||||
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-install-plugin</artifactId>
|
||||
<version>2.5.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>2.8.2</version>
|
||||
</plugin>
|
||||
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
|
||||
<plugin>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<version>3.7.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</project>
|
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>rocketmq-tests</artifactId>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<version>2021.0.1.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>rocketmq-bus-test</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>16</maven.compiler.source>
|
||||
<maven.compiler.target>16</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-alibaba-test-support</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -0,0 +1,7 @@
|
||||
brokerClusterName = DefaultCluster
|
||||
brokerName = broker-a
|
||||
brokerId = 0
|
||||
deleteWhen = 04
|
||||
fileReservedTime = 48
|
||||
brokerRole = ASYNC_MASTER
|
||||
flushDiskType = ASYNC_FLUSH
|
@ -0,0 +1,7 @@
|
||||
brokerClusterName = DefaultCluster
|
||||
brokerName = broker-b
|
||||
brokerId = 0
|
||||
deleteWhen = 04
|
||||
fileReservedTime = 48
|
||||
brokerRole = ASYNC_MASTER
|
||||
flushDiskType = ASYNC_FLUSH
|
@ -0,0 +1,46 @@
|
||||
services:
|
||||
#Service for nameserver
|
||||
namesrv:
|
||||
image: apache/rocketmq:4.9.3
|
||||
container_name: rmqnamesrv
|
||||
ports:
|
||||
- 9876:9876
|
||||
volumes:
|
||||
- ./data/namesrv/logs:/home/rocketmq/logs
|
||||
command: sh mqnamesrv
|
||||
|
||||
#Service for broker
|
||||
broker:
|
||||
image: apache/rocketmq:4.9.3
|
||||
container_name: rmqbroker
|
||||
links:
|
||||
- namesrv
|
||||
ports:
|
||||
- 10909:10909
|
||||
- 10911:10911
|
||||
- 10912:10912
|
||||
environment:
|
||||
- NAMESRV_ADDR=namesrv:9876
|
||||
volumes:
|
||||
- ./data/broker/logs:/home/rocketmq/logs
|
||||
- ./data/broker/store:/home/rocketmq/store
|
||||
- ./data/broker/conf/broker.conf:/opt/rocketmq-4.9.3/conf/broker.conf
|
||||
command: sh mqbroker -c /opt/rocketmq-4.9.3/conf/broker.conf
|
||||
|
||||
#Service for another broker -- broker1
|
||||
broker1:
|
||||
image: apache/rocketmq:4.9.3
|
||||
container_name: rmqbroker-b
|
||||
links:
|
||||
- namesrv
|
||||
ports:
|
||||
- 10929:10909
|
||||
- 10931:10911
|
||||
- 10932:10912
|
||||
environment:
|
||||
- NAMESRV_ADDR=namesrv:9876
|
||||
volumes:
|
||||
- ./data1/broker/logs:/home/rocketmq/logs
|
||||
- ./data1/broker/store:/home/rocketmq/store
|
||||
- ./data1/broker/conf/broker.conf:/opt/rocketmq-4.9.3/conf/broker.conf
|
||||
command: sh mqbroker -c /opt/rocketmq-4.9.3/conf/broker.conf
|
@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>rocketmq-stream-test</artifactId>
|
||||
<version>2021.0.1.1-SNAPSHOT</version>
|
||||
|
||||
<parent>
|
||||
<artifactId>rocketmq-tests</artifactId>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<version>2021.0.1.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<name>rocketmq-stream-test</name>
|
||||
<!-- FIXME change it to the project's website -->
|
||||
<url>http://www.example.com</url>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.7</maven.compiler.source>
|
||||
<maven.compiler.target>1.7</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-alibaba-test-support</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-commons</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
|
||||
<plugins>
|
||||
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
</plugin>
|
||||
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-install-plugin</artifactId>
|
||||
<version>2.5.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>2.8.2</version>
|
||||
</plugin>
|
||||
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
|
||||
<plugin>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<version>3.7.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</project>
|
@ -0,0 +1,84 @@
|
||||
package com.alibaba.cloud.stream.binder.rocketmq;
|
||||
|
||||
import com.alibaba.cloud.stream.binder.rocketmq.autoconfigurate.RocketMQBinderAutoConfiguration;
|
||||
import com.alibaba.cloud.stream.binder.rocketmq.properties.RocketMQBinderConfigurationProperties;
|
||||
import com.alibaba.cloud.stream.binder.rocketmq.properties.RocketMQExtendedBindingProperties;
|
||||
import com.alibaba.cloud.testsupport.SpringCloudAlibaba;
|
||||
import com.alibaba.cloud.testsupport.TestExtend;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import static com.alibaba.cloud.testsupport.Constant.TIME_OUT;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.NONE;
|
||||
|
||||
@SpringCloudAlibaba(composeFiles = "docker/rocket-compose-test.yml", serviceName = "rocketmq-standalone")
|
||||
@TestExtend(time = 6 * TIME_OUT)
|
||||
@SpringBootTest(classes = RocketMQAutoConfigurationTests.TestConfig.class, webEnvironment = NONE, properties = {
|
||||
"spring.cloud.stream.rocketmq.binder.name-server=127.0.0.1:9876,127.0.0.1:9877",
|
||||
"spring.cloud.stream.bindings.output.destination=TopicOrderTest",
|
||||
"spring.cloud.stream.bindings.output.content-type=application/json",
|
||||
|
||||
"spring.cloud.stream.bindings.input1.destination=TopicOrderTest",
|
||||
"spring.cloud.stream.bindings.input1.content-type=application/json",
|
||||
"spring.cloud.stream.bindings.input1.group=test-group1",
|
||||
"spring.cloud.stream.rocketmq.bindings.input1.consumer.push.orderly=true",
|
||||
"spring.cloud.stream.bindings.input1.consumer.maxAttempts=1",
|
||||
"spring.cloud.stream.bindings.input2.destination=TopicOrderTest",
|
||||
"spring.cloud.stream.bindings.input2.content-type=application/json",
|
||||
"spring.cloud.stream.bindings.input2.group=test-group2",
|
||||
"spring.cloud.stream.rocketmq.bindings.input2.consumer.push.orderly=false",
|
||||
"spring.cloud.stream.rocketmq.bindings.input2.consumer.subscription=tag1" })
|
||||
public class RocketMQAutoConfigurationTests {
|
||||
|
||||
@Autowired
|
||||
private RocketMQBinderConfigurationProperties binderConfigurationProperties;
|
||||
@Autowired
|
||||
private RocketMQExtendedBindingProperties bindingProperties;
|
||||
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
|
||||
.withConfiguration(
|
||||
AutoConfigurations.of(RocketMQBinderAutoConfiguration.class));
|
||||
|
||||
@BeforeAll
|
||||
public static void setUp() {
|
||||
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void prepare() {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testProperties() {
|
||||
this.contextRunner.run(context -> {
|
||||
assertThat(binderConfigurationProperties.getNameServer())
|
||||
.isEqualTo("127.0.0.1:9876,127.0.0.1:9877");
|
||||
assertThat(bindingProperties.getExtendedConsumerProperties("input2")
|
||||
.getSubscription()).isEqualTo("tag1");
|
||||
assertThat(bindingProperties.getExtendedConsumerProperties("input2").getPush()
|
||||
.getOrderly()).isFalse();
|
||||
assertThat(bindingProperties.getExtendedConsumerProperties("input1").getPush()
|
||||
.getOrderly()).isTrue();
|
||||
});
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@EnableAutoConfiguration
|
||||
@ImportAutoConfiguration({ AutoServiceRegistrationConfiguration.class,
|
||||
RocketMQBinderAutoConfiguration.class })
|
||||
public static class TestConfig {
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
brokerClusterName = DefaultCluster
|
||||
brokerName = broker-a
|
||||
brokerId = 0
|
||||
deleteWhen = 04
|
||||
fileReservedTime = 48
|
||||
brokerRole = ASYNC_MASTER
|
||||
flushDiskType = ASYNC_FLUSH
|
@ -0,0 +1,7 @@
|
||||
brokerClusterName = DefaultCluster
|
||||
brokerName = broker-b
|
||||
brokerId = 0
|
||||
deleteWhen = 04
|
||||
fileReservedTime = 48
|
||||
brokerRole = ASYNC_MASTER
|
||||
flushDiskType = ASYNC_FLUSH
|
@ -0,0 +1,46 @@
|
||||
services:
|
||||
#Service for nameserver
|
||||
namesrv:
|
||||
image: apache/rocketmq:4.9.3
|
||||
container_name: rmqnamesrv
|
||||
ports:
|
||||
- 9876:9876
|
||||
volumes:
|
||||
- ./data/namesrv/logs:/home/rocketmq/logs
|
||||
command: sh mqnamesrv
|
||||
|
||||
#Service for broker
|
||||
broker:
|
||||
image: apache/rocketmq:4.9.3
|
||||
container_name: rmqbroker
|
||||
links:
|
||||
- namesrv
|
||||
ports:
|
||||
- 10909:10909
|
||||
- 10911:10911
|
||||
- 10912:10912
|
||||
environment:
|
||||
- NAMESRV_ADDR=namesrv:9876
|
||||
volumes:
|
||||
- ./data/broker/logs:/home/rocketmq/logs
|
||||
- ./data/broker/store:/home/rocketmq/store
|
||||
- ./data/broker/conf/broker.conf:/opt/rocketmq-4.9.3/conf/broker.conf
|
||||
command: sh mqbroker -c /opt/rocketmq-4.9.3/conf/broker.conf
|
||||
|
||||
#Service for another broker -- broker1
|
||||
broker1:
|
||||
image: apache/rocketmq:4.9.3
|
||||
container_name: rmqbroker-b
|
||||
links:
|
||||
- namesrv
|
||||
ports:
|
||||
- 10929:10909
|
||||
- 10931:10911
|
||||
- 10932:10912
|
||||
environment:
|
||||
- NAMESRV_ADDR=namesrv:9876
|
||||
volumes:
|
||||
- ./data1/broker/logs:/home/rocketmq/logs
|
||||
- ./data1/broker/store:/home/rocketmq/store
|
||||
- ./data1/broker/conf/broker.conf:/opt/rocketmq-4.9.3/conf/broker.conf
|
||||
command: sh mqbroker -c /opt/rocketmq-4.9.3/conf/broker.conf
|
Loading…
Reference in New Issue