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
|
{
|
@Test
|
public void shouldReturnCollectorsWithoutMixingCabinets() throws Exception
|
{
|
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();
|
|
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 shouldHideOfflineCollectors() throws Exception
|
{
|
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> result = service.selectDiscoveredCollectorList();
|
|
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());
|
}
|
}
|
}
|