Commit 796d69b241a229510a0ecf39d6085c085855e5c3

Authored by puhui999
1 parent 2b3e2d6d

refactor: 【IoT 物联网】test BaseMockitoUnitTest → BaseMatcherTest,支持 Spring 上下文

Showing 10 changed files with 109 additions and 33 deletions
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/IotSceneRuleMatcherHelper.java
... ... @@ -91,7 +91,7 @@ public final class IotSceneRuleMatcherHelper {
91 91 Map<String, Object> springExpressionVariables = new HashMap<>();
92 92  
93 93 // 设置源值
94   - springExpressionVariables.put(IotSceneRuleConditionOperatorEnum.SPRING_EXPRESSION_SOURCE, sourceValue);
  94 + springExpressionVariables.put(IotSceneRuleConditionOperatorEnum.SPRING_EXPRESSION_SOURCE, StrUtil.toString(sourceValue));
95 95  
96 96 // 处理参数值
97 97 if (StrUtil.isNotBlank(paramValue)) {
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/BaseMatcherTest.java 0 → 100644
  1 +package cn.iocoder.yudao.module.iot.service.rule.scene.matcher;
  2 +
  3 +import cn.hutool.extra.spring.SpringUtil;
  4 +import cn.iocoder.yudao.framework.common.util.spring.SpringExpressionUtils;
  5 +import org.springframework.context.annotation.Bean;
  6 +import org.springframework.context.annotation.Configuration;
  7 +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
  8 +
  9 +/**
  10 + * Matcher 测试基类
  11 + * 提供通用的 Spring 测试配置
  12 + *
  13 + * @author HUIHUI
  14 + */
  15 +@SpringJUnitConfig
  16 +public abstract class BaseMatcherTest {
  17 +
  18 + /**
  19 + * 注入一下 SpringUtil,解析 EL 表达式时需要
  20 + * {@link SpringExpressionUtils#parseExpression}
  21 + */
  22 + @Configuration
  23 + static class TestConfig {
  24 +
  25 + @Bean
  26 + public SpringUtil springUtil() {
  27 + return new SpringUtil();
  28 + }
  29 +
  30 + }
  31 +
  32 +}
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/condition/CurrentTimeConditionMatcherTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.scene.matcher.condition;
2 2  
3   -import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
4 3 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
5 4 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO;
6 5 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionOperatorEnum;
7 6 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionTypeEnum;
  7 +import cn.iocoder.yudao.module.iot.service.rule.scene.matcher.BaseMatcherTest;
  8 +import org.junit.jupiter.api.BeforeEach;
8 9 import org.junit.jupiter.api.Test;
9   -import org.mockito.InjectMocks;
10 10  
11 11 import java.time.LocalDateTime;
12 12 import java.time.ZoneOffset;
... ... @@ -20,11 +20,15 @@ import static org.junit.jupiter.api.Assertions.*;
20 20 *
21 21 * @author HUIHUI
22 22 */
23   -public class CurrentTimeConditionMatcherTest extends BaseMockitoUnitTest {
  23 +public class CurrentTimeConditionMatcherTest extends BaseMatcherTest {
24 24  
25   - @InjectMocks
26 25 private CurrentTimeConditionMatcher matcher;
27 26  
  27 + @BeforeEach
  28 + public void setUp() {
  29 + matcher = new CurrentTimeConditionMatcher();
  30 + }
  31 +
28 32 @Test
29 33 public void testGetSupportedConditionType() {
30 34 // 调用
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/condition/DevicePropertyConditionMatcherTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.scene.matcher.condition;
2 2  
3 3 import cn.hutool.core.map.MapUtil;
4   -import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
5 4 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
6 5 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO;
7 6 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionOperatorEnum;
8 7 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionTypeEnum;
  8 +import cn.iocoder.yudao.module.iot.service.rule.scene.matcher.BaseMatcherTest;
  9 +import org.junit.jupiter.api.BeforeEach;
9 10 import org.junit.jupiter.api.Test;
10   -import org.mockito.InjectMocks;
11 11  
12 12 import java.util.HashMap;
13 13 import java.util.Map;
... ... @@ -21,11 +21,15 @@ import static org.junit.jupiter.api.Assertions.*;
21 21 *
22 22 * @author HUIHUI
23 23 */
24   -public class DevicePropertyConditionMatcherTest extends BaseMockitoUnitTest {
  24 +public class DevicePropertyConditionMatcherTest extends BaseMatcherTest {
25 25  
26   - @InjectMocks
27 26 private DevicePropertyConditionMatcher matcher;
28 27  
  28 + @BeforeEach
  29 + public void setUp() {
  30 + matcher = new DevicePropertyConditionMatcher();
  31 + }
  32 +
29 33 @Test
30 34 public void testGetSupportedConditionType() {
31 35 // 调用
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/condition/DeviceStateConditionMatcherTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.scene.matcher.condition;
2 2  
3   -import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
4 3 import cn.iocoder.yudao.module.iot.core.enums.IotDeviceStateEnum;
5 4 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
6 5 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO;
7 6 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionOperatorEnum;
8 7 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionTypeEnum;
  8 +import cn.iocoder.yudao.module.iot.service.rule.scene.matcher.BaseMatcherTest;
  9 +import org.junit.jupiter.api.BeforeEach;
9 10 import org.junit.jupiter.api.Test;
10   -import org.mockito.InjectMocks;
11 11  
12 12 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
13 13 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString;
... ... @@ -18,11 +18,15 @@ import static org.junit.jupiter.api.Assertions.*;
18 18 *
19 19 * @author HUIHUI
20 20 */
21   -public class DeviceStateConditionMatcherTest extends BaseMockitoUnitTest {
  21 +public class DeviceStateConditionMatcherTest extends BaseMatcherTest {
22 22  
23   - @InjectMocks
24 23 private DeviceStateConditionMatcher matcher;
25 24  
  25 + @BeforeEach
  26 + public void setUp() {
  27 + matcher = new DeviceStateConditionMatcher();
  28 + }
  29 +
26 30 @Test
27 31 public void testGetSupportedConditionType() {
28 32 // 调用
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/trigger/DeviceEventPostTriggerMatcherTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.scene.matcher.trigger;
2 2  
3 3 import cn.hutool.core.map.MapUtil;
4   -import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
5 4 import cn.iocoder.yudao.module.iot.core.enums.IotDeviceMessageMethodEnum;
6 5 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
7 6 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO;
8 7 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleTriggerTypeEnum;
  8 +import cn.iocoder.yudao.module.iot.service.rule.scene.matcher.BaseMatcherTest;
  9 +import org.junit.jupiter.api.BeforeEach;
9 10 import org.junit.jupiter.api.Test;
10   -import org.mockito.InjectMocks;
11 11  
12 12 import java.util.HashMap;
13 13 import java.util.Map;
... ... @@ -22,11 +22,15 @@ import static org.junit.jupiter.api.Assertions.*;
22 22 *
23 23 * @author HUIHUI
24 24 */
25   -public class DeviceEventPostTriggerMatcherTest extends BaseMockitoUnitTest {
  25 +public class DeviceEventPostTriggerMatcherTest extends BaseMatcherTest {
26 26  
27   - @InjectMocks
28 27 private DeviceEventPostTriggerMatcher matcher;
29 28  
  29 + @BeforeEach
  30 + public void setUp() {
  31 + matcher = new DeviceEventPostTriggerMatcher();
  32 + }
  33 +
30 34 @Test
31 35 public void testGetSupportedTriggerType_success() {
32 36 // 准备参数
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/trigger/DevicePropertyPostTriggerMatcherTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.scene.matcher.trigger;
2 2  
3 3 import cn.hutool.core.map.MapUtil;
4   -import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
5 4 import cn.iocoder.yudao.module.iot.core.enums.IotDeviceMessageMethodEnum;
6 5 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
7 6 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO;
8 7 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionOperatorEnum;
9 8 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleTriggerTypeEnum;
  9 +import cn.iocoder.yudao.module.iot.service.rule.scene.matcher.BaseMatcherTest;
  10 +import org.junit.jupiter.api.BeforeEach;
10 11 import org.junit.jupiter.api.Test;
11   -import org.mockito.InjectMocks;
12 12  
13 13 import java.util.HashMap;
14 14 import java.util.Map;
... ... @@ -24,11 +24,15 @@ import static org.junit.jupiter.api.Assertions.*;
24 24 *
25 25 * @author HUIHUI
26 26 */
27   -public class DevicePropertyPostTriggerMatcherTest extends BaseMockitoUnitTest {
  27 +public class DevicePropertyPostTriggerMatcherTest extends BaseMatcherTest {
28 28  
29   - @InjectMocks
30 29 private DevicePropertyPostTriggerMatcher matcher;
31 30  
  31 + @BeforeEach
  32 + public void setUp() {
  33 + matcher = new DevicePropertyPostTriggerMatcher();
  34 + }
  35 +
32 36 @Test
33 37 public void testGetSupportedTriggerType_success() {
34 38 // 准备参数
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/trigger/DeviceServiceInvokeTriggerMatcherTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.scene.matcher.trigger;
2 2  
3 3 import cn.hutool.core.map.MapUtil;
4   -import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
5 4 import cn.iocoder.yudao.module.iot.core.enums.IotDeviceMessageMethodEnum;
6 5 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
7 6 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO;
8 7 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleTriggerTypeEnum;
  8 +import cn.iocoder.yudao.module.iot.service.rule.scene.matcher.BaseMatcherTest;
  9 +import org.junit.jupiter.api.BeforeEach;
9 10 import org.junit.jupiter.api.Test;
10   -import org.mockito.InjectMocks;
11 11  
12 12 import java.util.HashMap;
13 13 import java.util.Map;
... ... @@ -22,11 +22,15 @@ import static org.junit.jupiter.api.Assertions.*;
22 22 *
23 23 * @author HUIHUI
24 24 */
25   -public class DeviceServiceInvokeTriggerMatcherTest extends BaseMockitoUnitTest {
  25 +public class DeviceServiceInvokeTriggerMatcherTest extends BaseMatcherTest {
26 26  
27   - @InjectMocks
28 27 private DeviceServiceInvokeTriggerMatcher matcher;
29 28  
  29 + @BeforeEach
  30 + public void setUp() {
  31 + matcher = new DeviceServiceInvokeTriggerMatcher();
  32 + }
  33 +
30 34 @Test
31 35 public void testGetSupportedTriggerType_success() {
32 36 // 准备参数
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/trigger/DeviceStateUpdateTriggerMatcherTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.scene.matcher.trigger;
2 2  
3   -import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
  3 +import cn.hutool.extra.spring.SpringUtil;
4 4 import cn.iocoder.yudao.module.iot.core.enums.IotDeviceMessageMethodEnum;
5 5 import cn.iocoder.yudao.module.iot.core.enums.IotDeviceStateEnum;
6 6 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
7 7 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO;
8 8 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionOperatorEnum;
9 9 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleTriggerTypeEnum;
  10 +import org.junit.jupiter.api.BeforeEach;
10 11 import org.junit.jupiter.api.Test;
11   -import org.mockito.InjectMocks;
  12 +import org.springframework.context.annotation.Bean;
  13 +import org.springframework.context.annotation.Configuration;
  14 +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
12 15  
13 16 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
14 17 import static org.junit.jupiter.api.Assertions.*;
... ... @@ -18,11 +21,24 @@ import static org.junit.jupiter.api.Assertions.*;
18 21 *
19 22 * @author HUIHUI
20 23 */
21   -public class DeviceStateUpdateTriggerMatcherTest extends BaseMockitoUnitTest {
  24 +@SpringJUnitConfig(DeviceStateUpdateTriggerMatcherTest.TestConfig.class)
  25 +public class DeviceStateUpdateTriggerMatcherTest {
  26 +
  27 + @Configuration
  28 + static class TestConfig {
  29 + @Bean
  30 + public SpringUtil springUtil() {
  31 + return new SpringUtil();
  32 + }
  33 + }
22 34  
23   - @InjectMocks
24 35 private DeviceStateUpdateTriggerMatcher matcher;
25 36  
  37 + @BeforeEach
  38 + public void setUp() {
  39 + matcher = new DeviceStateUpdateTriggerMatcher();
  40 + }
  41 +
26 42 @Test
27 43 public void testGetSupportedTriggerType_success() {
28 44 // 准备参数
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/trigger/TimerTriggerMatcherTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.scene.matcher.trigger;
2 2  
3   -import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
4 3 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
5 4 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO;
6 5 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleTriggerTypeEnum;
  6 +import cn.iocoder.yudao.module.iot.service.rule.scene.matcher.BaseMatcherTest;
  7 +import org.junit.jupiter.api.BeforeEach;
7 8 import org.junit.jupiter.api.Test;
8   -import org.mockito.InjectMocks;
9 9  
10 10 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
11 11 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString;
... ... @@ -16,11 +16,15 @@ import static org.junit.jupiter.api.Assertions.*;
16 16 *
17 17 * @author HUIHUI
18 18 */
19   -public class TimerTriggerMatcherTest extends BaseMockitoUnitTest {
  19 +public class TimerTriggerMatcherTest extends BaseMatcherTest {
20 20  
21   - @InjectMocks
22 21 private TimerTriggerMatcher matcher;
23 22  
  23 + @BeforeEach
  24 + public void setUp() {
  25 + matcher = new TimerTriggerMatcher();
  26 + }
  27 +
24 28 @Test
25 29 public void testGetSupportedTriggerType_success() {
26 30 // 准备参数
... ...