From d2b53841c31b82df4f71b800ad18a323694c10d7 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 29 八月 2026 23:13:40 +0800
Subject: [PATCH] 修复设备发现状态同步与开始接收边界
---
ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/DeviceAdapterServiceImplTest.java | 31 ++++++++++++++++++++++++++++++-
1 files changed, 30 insertions(+), 1 deletions(-)
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/DeviceAdapterServiceImplTest.java b/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/DeviceAdapterServiceImplTest.java
index 8001b0d..4f1d265 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/DeviceAdapterServiceImplTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/DeviceAdapterServiceImplTest.java
@@ -39,6 +39,7 @@
import com.ruoyi.system.domain.TDetectionChannel;
import com.ruoyi.system.domain.TDeviceAdapter;
import com.ruoyi.system.mapper.TDeviceAdapterMapper;
+import com.ruoyi.system.mapper.TDetectionCabinetMapper;
import com.ruoyi.system.service.DeviceAdapterErrorCodes;
@ExtendWith(MockitoExtension.class)
@@ -53,6 +54,9 @@
@Mock
private DeviceAdapter deviceAdapter;
+ @Mock
+ private TDetectionCabinetMapper detectionCabinetMapper;
+
private DeviceAdapterServiceImpl service;
private TDeviceAdapter adapter;
private InMemoryDeviceDiscoveryCandidateStore candidateStore;
@@ -62,7 +66,7 @@
{
candidateStore = new InMemoryDeviceDiscoveryCandidateStore();
service = new DeviceAdapterServiceImpl(adapterMapper, registry,
- new DeviceDiscoveryPersistenceService(candidateStore), candidateStore);
+ new DeviceDiscoveryPersistenceService(candidateStore, detectionCabinetMapper), candidateStore);
adapter = new TDeviceAdapter();
adapter.setAdapterId(7L);
adapter.setAdapterCode("lab-bts");
@@ -162,6 +166,10 @@
var channel = candidateStore.snapshot(Instant.now()).cabinets().get(0).channels().get(0);
assertEquals(DeviceWorkStatus.WORKING, channel.workStatus());
+ verify(detectionCabinetMapper).updateRegisteredChannelObservation(eq("lab-bts"), eq(22), eq(1), eq(2),
+ eq(3), eq("ONLINE"), eq("WORKING"), any(), eq(true));
+ verify(detectionCabinetMapper).updateRegisteredCabinetObservation(eq("lab-bts"), eq(22), eq(1),
+ eq("ONLINE"), any(), eq(true));
}
@Test
@@ -179,6 +187,27 @@
verify(deviceAdapter, never()).inquire(any());
assertEquals(false, cabinet.online());
assertTrue(cabinet.channels().stream().noneMatch(channel -> channel.online()));
+ verify(detectionCabinetMapper).updateRegisteredChannelObservation(eq("lab-bts"), eq(22), eq(1), eq(1),
+ eq(1), eq("OFFLINE"), eq("UNKNOWN"), any(), eq(false));
+ verify(detectionCabinetMapper).updateRegisteredCabinetObservation(eq("lab-bts"), eq(22), eq(1),
+ eq("OFFLINE"), any(), eq(false));
+ }
+
+ @Test
+ void availableChannelWithoutSuccessfulSnapshotCannotAdvanceLastSeenBoundary()
+ {
+ ChannelIdentity identity = new ChannelIdentity("lab-bts", 22, 1, 1, 1);
+ when(adapterMapper.selectDeviceAdapterById(7L)).thenReturn(adapter);
+ when(deviceAdapter.discoverChannels()).thenReturn(List.of(new DetectedChannel(identity, "127.0.0.1", true)));
+ when(deviceAdapter.inquire(Set.of(identity))).thenReturn(Map.of());
+ stubRegistryExecution();
+
+ service.discover(7L);
+
+ verify(detectionCabinetMapper).updateRegisteredChannelObservation(eq("lab-bts"), eq(22), eq(1), eq(1),
+ eq(1), eq("ONLINE"), eq("UNKNOWN"), any(), eq(false));
+ verify(detectionCabinetMapper).updateRegisteredCabinetObservation(eq("lab-bts"), eq(22), eq(1),
+ eq("ONLINE"), any(), eq(false));
}
@Test
--
Gitblit v1.7.1