Commit 2575b62a9114ad605d508b175666cf3e23a257ac

Authored by YunaiV
1 parent b4bfffeb

refactor(tests): replace JSON params with MapUtil for better readability in IOT tests

yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/data/action/IotTcpDataRuleActionTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.data.action;
2 2  
  3 +import cn.hutool.core.map.MapUtil;
3 4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
4 5 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
5 6 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.config.IotDataSinkTcpConfig;
... ... @@ -145,7 +146,7 @@ class IotTcpDataRuleActionTest {
145 146 IotDeviceMessage message = IotDeviceMessage.builder()
146 147 .deviceId(123L)
147 148 .method("thing.property.report")
148   - .params("{\"temperature\": 25.5}")
  149 + .params(MapUtil.of("temperature", 25.5))
149 150 .build();
150 151  
151 152 // 调用方法
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/IotSceneRuleTimerConditionIntegrationTest.java
... ... @@ -144,7 +144,8 @@ public class IotSceneRuleTimerConditionIntegrationTest extends BaseMockitoUnitTe
144 144 IotDevicePropertyDO property = new IotDevicePropertyDO();
145 145 property.setValue(value);
146 146 properties.put(identifier, property);
147   - when(devicePropertyService.getLatestDeviceProperties(deviceId)).thenReturn(properties);
  147 + // 使用 lenient:当首个条件组就匹配时,后续条件组的设备属性查询会被跳过,此 stubbing 可能未被使用
  148 + lenient().when(devicePropertyService.getLatestDeviceProperties(deviceId)).thenReturn(properties);
148 149 }
149 150  
150 151 private void mockDeviceState(Long deviceId, Integer state) {
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/condition/IotDeviceStateConditionMatcherTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.scene.matcher.condition;
2 2  
  3 +import cn.hutool.core.map.MapUtil;
  4 +import cn.iocoder.yudao.module.iot.core.enums.IotDeviceMessageMethodEnum;
3 5 import cn.iocoder.yudao.module.iot.core.enums.device.IotDeviceStateEnum;
4 6 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
5 7 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO;
... ... @@ -342,7 +344,8 @@ public class IotDeviceStateConditionMatcherTest extends IotBaseConditionMatcherT
342 344 private IotDeviceMessage createDeviceMessage(Integer deviceState) {
343 345 IotDeviceMessage message = new IotDeviceMessage();
344 346 message.setDeviceId(randomLongId());
345   - message.setParams(deviceState);
  347 + message.setMethod(IotDeviceMessageMethodEnum.STATE_UPDATE.getMethod());
  348 + message.setParams(MapUtil.of("state", deviceState));
346 349 return message;
347 350 }
348 351  
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/trigger/IotDeviceServiceInvokeTriggerMatcherTest.java
... ... @@ -4,6 +4,7 @@ import cn.hutool.core.map.MapUtil;
4 4 import cn.iocoder.yudao.module.iot.core.enums.IotDeviceMessageMethodEnum;
5 5 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
6 6 import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO;
  7 +import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionOperatorEnum;
7 8 import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleTriggerTypeEnum;
8 9 import cn.iocoder.yudao.module.iot.service.rule.scene.matcher.IotBaseConditionMatcherTest;
9 10 import org.junit.jupiter.api.BeforeEach;
... ... @@ -485,7 +486,7 @@ public class IotDeviceServiceInvokeTriggerMatcherTest extends IotBaseConditionMa
485 486 IotSceneRuleDO.Trigger trigger = new IotSceneRuleDO.Trigger();
486 487 trigger.setType(IotSceneRuleTriggerTypeEnum.DEVICE_SERVICE_INVOKE.getType());
487 488 trigger.setIdentifier(serviceIdentifier);
488   - trigger.setOperator("=="); // 等于操作符
  489 + trigger.setOperator(IotSceneRuleConditionOperatorEnum.EQUALS.getOperator()); // 等于操作符
489 490 trigger.setValue("auto");
490 491  
491 492 // 调用
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/trigger/IotDeviceStateUpdateTriggerMatcherTest.java
1 1 package cn.iocoder.yudao.module.iot.service.rule.scene.matcher.trigger;
2 2  
  3 +import cn.hutool.core.map.MapUtil;
3 4 import cn.iocoder.yudao.module.iot.core.enums.IotDeviceMessageMethodEnum;
4 5 import cn.iocoder.yudao.module.iot.core.enums.device.IotDeviceStateEnum;
5 6 import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage;
... ... @@ -248,7 +249,7 @@ public class IotDeviceStateUpdateTriggerMatcherTest extends IotBaseConditionMatc
248 249 IotDeviceMessage message = new IotDeviceMessage();
249 250 message.setDeviceId(randomLongId());
250 251 message.setMethod(IotDeviceMessageMethodEnum.STATE_UPDATE.getMethod());
251   - message.setParams(state);
  252 + message.setParams(MapUtil.of("state", state));
252 253 return message;
253 254 }
254 255  
... ...
yudao-module-iot/yudao-module-iot-biz/src/test/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/trigger/IotTimerTriggerMatcherTest.java
... ... @@ -247,7 +247,8 @@ public class IotTimerTriggerMatcherTest extends IotBaseConditionMatcherTest {
247 247 public void testMatches_rangeCronSuccess() {
248 248 // 准备参数
249 249 IotDeviceMessage message = createDeviceMessage();
250   - IotSceneRuleDO.Trigger trigger = createValidTrigger("0 0 9-17 * * MON-FRI"); // 工作日9-17点
  250 + // quartz cron 中,day-of-month 与 day-of-week 不能同时为 *,需要把其中一个改成 ?
  251 + IotSceneRuleDO.Trigger trigger = createValidTrigger("0 0 9-17 ? * MON-FRI"); // 工作日 9-17 点
251 252  
252 253 // 调用
253 254 boolean result = matcher.matches(message, trigger);
... ...