Commit 796d69b241a229510a0ecf39d6085c085855e5c3
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 | // 准备参数 | ... | ... |