package com.battery.business.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.battery.business.runtime.DevelopmentCollectorDiscoveryService;
|
import com.battery.business.runtime.DevelopmentCollectorStatusSynchronizer;
|
import com.battery.device.simulator.BtsDevelopmentSimulator;
|
import com.battery.device.api.discovery.InMemoryDeviceDiscoveryCandidateStore;
|
import com.battery.business.domain.vo.DiscoveredCollectorVo;
|
import com.battery.business.mapper.TCollectorMapper;
|
import com.battery.business.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);
|
TCollectorMapper collectorMapper = mock(TCollectorMapper.class);
|
simulator.addDevice("127.0.0.8", 2);
|
simulator.addCollector("127.0.1.3", 6);
|
new DevelopmentCollectorStatusSynchronizer(simulator, store, collectorMapper).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 shouldReturnOfflineUnregisteredCollectors() 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);
|
TCollectorMapper collectorMapper = mock(TCollectorMapper.class);
|
simulator.updateCollector(1, "127.0.1.9", 8, false);
|
new DevelopmentCollectorStatusSynchronizer(simulator, store, collectorMapper).synchronizeOnlineStatus();
|
|
List<DiscoveredCollectorVo> result = service.selectDiscoveredCollectorList();
|
|
assertEquals(1, result.size());
|
assertEquals("dev-sim-collector-1", result.get(0).getDeviceCode());
|
assertEquals("离线", result.get(0).getOnlineStatus());
|
}
|
}
|
|
@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);
|
TCollectorMapper collectorMapper = mock(TCollectorMapper.class);
|
simulator.updateCollector(1, "127.0.1.2", 4, false);
|
new DevelopmentCollectorStatusSynchronizer(simulator, store, collectorMapper).synchronizeOnlineStatus();
|
when(collectorService.selectRegisteredCollectorCodes())
|
.thenReturn(Set.of("dev-sim-collector-1"))
|
.thenReturn(Set.of());
|
|
assertEquals(0, service.selectDiscoveredCollectorList().size());
|
assertEquals(1, service.selectDiscoveredCollectorList().size());
|
}
|
}
|
}
|