diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/test/java/com/viewsh/module/ops/environment/manual/CleanOrderScenarioTest.java b/viewsh-module-ops/viewsh-module-environment-biz/src/test/java/com/viewsh/module/ops/environment/manual/CleanOrderScenarioTest.java new file mode 100644 index 0000000..a3ad25a --- /dev/null +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/test/java/com/viewsh/module/ops/environment/manual/CleanOrderScenarioTest.java @@ -0,0 +1,130 @@ +package com.viewsh.module.ops.environment.manual; + +import com.viewsh.module.ops.environment.integration.dto.*; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.FilterType; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * 本地全链路集成测试(客户端模式 - 仅发送消息) + *
+ * 前置条件:
+ * 1. 本地或远程的 Ops 服务已启动。
+ * 2. application.yml 配置正确连接到 RocketMQ。
+ */
+@Disabled("Manual integration test, requires external RocketMQ")
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = CleanOrderScenarioTest.TestApplication.class)
+public class CleanOrderScenarioTest {
+
+ @SpringBootApplication(excludeName = {
+ "org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration",
+ "org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration",
+ "com.mzt.logapi.starter.configuration.LogRecordProxyAutoConfiguration"
+ })
+ // 排除 Ops 模块的业务 Bean,防止重复启动或资源冲突
+ @ComponentScan(
+ basePackages = {"com.viewsh.framework"},
+ excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = "com.viewsh.module.*")
+ )
+ static class TestApplication {
+ }
+
+ @Autowired
+ private RocketMQTemplate rocketMQTemplate;
+
+ private final Long AREA_ID = 101L;
+ private final Long DEVICE_ID = 5001L;
+ private final String DEVICE_KEY = "badge-01";
+ private final String BEACON_MAC = "F0:C8:60:1D:10:BB";
+
+ private final Long ORDER_ID_FROM_STEP1 = 0L;
+
+ @Test
+ void step1_triggerCreate() {
+ String eventId = UUID.randomUUID().toString();
+
+ CleanOrderCreateEventDTO event = new CleanOrderCreateEventDTO();
+ event.setEventId(eventId);
+ event.setAreaId(AREA_ID);
+ event.setTriggerSource("IOT_TRAFFIC");
+ event.setTriggerDeviceId(8001L);
+ event.setTriggerDeviceKey("traffic-cam-01");
+
+ Map