yeg
2026-09-02 409b5ac5a3b160eacb1fefa6a10bf97b5f6860d7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package com.ruoyi.config;
 
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.springframework.beans.factory.annotation.Autowired;
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 productionConstructorIsExplicitlyAutowired()
    {
        var constructors = DevelopmentCollectorStatusSynchronizer.class.getDeclaredConstructors();
        assertEquals(1, constructors.length);
        var production = java.util.Arrays.stream(constructors)
                .filter(item -> item.isAnnotationPresent(Autowired.class)).findFirst().orElseThrow();
        assertEquals(3, production.getParameterCount());
    }
    @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());
        }
    }
}