package com.ruoyi.config; import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; import com.ruoyi.device.bts.BtsDevelopmentSimulator; import com.ruoyi.device.discovery.InMemoryDeviceDiscoveryCandidateStore; import com.ruoyi.system.mapper.TCollectorMapper; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; class DevelopmentCollectorStatusSynchronizerTest { @Test void synchronizesOnlyConfiguredCollectorsWithoutRegisteringThem() throws Exception { try (BtsDevelopmentSimulator simulator = new BtsDevelopmentSimulator(0)) { InMemoryDeviceDiscoveryCandidateStore store = new InMemoryDeviceDiscoveryCandidateStore(); TCollectorMapper collectorMapper = mock(TCollectorMapper.class); DevelopmentCollectorStatusSynchronizer synchronizer = new DevelopmentCollectorStatusSynchronizer(simulator, store, collectorMapper); simulator.updateCollector(1, "127.0.1.2", 4, false); synchronizer.synchronizeOnlineStatus(); assertEquals(false, store.snapshot(java.time.Instant.now()).collectors().get(0).online()); verify(collectorMapper).updateRegisteredObservation("dev-sim-collector-1", "OFFLINE"); simulator.deleteCollector(1); synchronizer.synchronizeOnlineStatus(); assertEquals(0, store.snapshot(java.time.Instant.now()).collectors().size()); } } }