From 210663040bf65ee00b5f86545fdc31bd0356fddf Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期四, 27 八月 2026 16:31:53 +0800
Subject: [PATCH] feat(device): persist simulator discovery in redis
---
ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/CollectorDiscoveryServiceImplTest.java | 79 ++++++++++++++++++++++++++++++++-------
1 files changed, 64 insertions(+), 15 deletions(-)
diff --git a/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/CollectorDiscoveryServiceImplTest.java b/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/CollectorDiscoveryServiceImplTest.java
index 06b186e..4133bba 100644
--- a/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/CollectorDiscoveryServiceImplTest.java
+++ b/ruoyi-admin/src/test/java/com/ruoyi/system/service/impl/CollectorDiscoveryServiceImplTest.java
@@ -1,38 +1,87 @@
package com.ruoyi.system.service.impl;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import java.util.List;
+import java.util.Set;
import org.junit.jupiter.api.Test;
+import com.ruoyi.config.DevelopmentCollectorDiscoveryService;
+import com.ruoyi.config.DevelopmentCollectorStatusSynchronizer;
+import com.ruoyi.device.bts.BtsDevelopmentSimulator;
+import com.ruoyi.device.discovery.InMemoryDeviceDiscoveryCandidateStore;
import com.ruoyi.system.domain.vo.DiscoveredCollectorVo;
+import com.ruoyi.system.service.ITCollectorService;
/**
* 采集器设备发现服务测试。
*/
public class CollectorDiscoveryServiceImplTest
{
- private final CollectorDiscoveryServiceImpl service = new CollectorDiscoveryServiceImpl();
-
@Test
- public void shouldReturnExpectedTestDevices()
+ public void shouldReturnCollectorsWithoutMixingCabinets() throws Exception
{
- List<DiscoveredCollectorVo> result = service.selectDiscoveredCollectorList();
+ try (BtsDevelopmentSimulator simulator = new BtsDevelopmentSimulator(0))
+ {
+ ITCollectorService collectorService = mock(ITCollectorService.class);
+ when(collectorService.selectRegisteredCollectorCodes()).thenReturn(Set.of());
+ InMemoryDeviceDiscoveryCandidateStore store = new InMemoryDeviceDiscoveryCandidateStore();
+ DevelopmentCollectorDiscoveryService service =
+ new DevelopmentCollectorDiscoveryService(store, collectorService);
+ simulator.addDevice("127.0.0.8", 2);
+ simulator.addCollector("127.0.1.3", 6);
+ new DevelopmentCollectorStatusSynchronizer(simulator, store).synchronizeOnlineStatus();
- assertEquals(6, result.size());
- DiscoveredCollectorVo first = result.get(0);
- assertEquals("45643176", first.getDeviceCode());
- assertEquals("192.1.1.162", first.getIp());
- assertEquals("00:1A:2B:3C:4D:01", first.getMac());
- assertEquals("在线", first.getOnlineStatus());
+ List<DiscoveredCollectorVo> result = service.selectDiscoveredCollectorList();
+
+ assertEquals(2, result.size());
+ DiscoveredCollectorVo first = result.get(0);
+ assertEquals("dev-sim-collector-1", first.getDeviceCode());
+ assertEquals("127.0.1.2", first.getIp());
+ assertEquals("02:43:00:00:00:01", first.getMac());
+ assertEquals("dev-sim 采集器 1", first.getName());
+ assertEquals("开发模拟器", first.getManufacturer());
+ assertEquals("Virtual Collector", first.getModel());
+ assertEquals(4, first.getChannelCount());
+ assertEquals("在线", first.getOnlineStatus());
+ }
}
@Test
- public void shouldReturnIndependentListContainers()
+ public void shouldHideOfflineCollectors() throws Exception
{
- List<DiscoveredCollectorVo> firstResult = service.selectDiscoveredCollectorList();
- firstResult.clear();
+ try (BtsDevelopmentSimulator simulator = new BtsDevelopmentSimulator(0))
+ {
+ ITCollectorService collectorService = mock(ITCollectorService.class);
+ when(collectorService.selectRegisteredCollectorCodes()).thenReturn(Set.of());
+ InMemoryDeviceDiscoveryCandidateStore store = new InMemoryDeviceDiscoveryCandidateStore();
+ DevelopmentCollectorDiscoveryService service =
+ new DevelopmentCollectorDiscoveryService(store, collectorService);
+ simulator.updateCollector(1, "127.0.1.9", 8, false);
+ new DevelopmentCollectorStatusSynchronizer(simulator, store).synchronizeOnlineStatus();
- List<DiscoveredCollectorVo> secondResult = service.selectDiscoveredCollectorList();
+ List<DiscoveredCollectorVo> result = service.selectDiscoveredCollectorList();
- assertEquals(6, secondResult.size());
+ assertEquals(0, result.size());
+ }
+ }
+
+ @Test
+ public void shouldExcludeRegisteredCollectorAndReturnItAfterDeletion() throws Exception
+ {
+ try (BtsDevelopmentSimulator simulator = new BtsDevelopmentSimulator(0))
+ {
+ ITCollectorService collectorService = mock(ITCollectorService.class);
+ InMemoryDeviceDiscoveryCandidateStore store = new InMemoryDeviceDiscoveryCandidateStore();
+ DevelopmentCollectorDiscoveryService service =
+ new DevelopmentCollectorDiscoveryService(store, collectorService);
+ new DevelopmentCollectorStatusSynchronizer(simulator, store).synchronizeOnlineStatus();
+ when(collectorService.selectRegisteredCollectorCodes())
+ .thenReturn(Set.of("dev-sim-collector-1"))
+ .thenReturn(Set.of());
+
+ assertEquals(0, service.selectDiscoveredCollectorList().size());
+ assertEquals(1, service.selectDiscoveredCollectorList().size());
+ }
}
}
--
Gitblit v1.7.1