package com.battery.business.runtime; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import org.junit.jupiter.api.Test; import org.springframework.boot.DefaultApplicationArguments; import org.mockito.ArgumentCaptor; import com.battery.device.api.registry.AdapterInstanceConfig; import com.battery.device.api.registry.DeviceAdapterRegistry; import com.battery.device.simulator.BtsDevelopmentSimulator; class DeviceAdapterRuntimeConfigTest { @Test void registersDevelopmentSimulatorInstanceBeforeApplicationReady() throws Exception { DeviceAdapterRegistry registry = mock(DeviceAdapterRegistry.class); BtsDevelopmentSimulator simulator = mock(BtsDevelopmentSimulator.class); var runner = new DevelopmentSimulatorConfig().registerDevelopmentSimulatorAdapter(registry, simulator, 15021); runner.run(new DefaultApplicationArguments(new String[0])); // 注册模拟器对象本身:发现与取数落在同一实例上,不再单独注入扩展观测 Bean。 ArgumentCaptor adapter = ArgumentCaptor.forClass(AdapterInstanceConfig.class); verify(registry).register(adapter.capture(), org.mockito.ArgumentMatchers.same(simulator)); assertEquals("dev-sim", adapter.getValue().adapterCode()); assertEquals("127.0.0.1", adapter.getValue().host()); assertEquals(15021, adapter.getValue().port()); assertEquals(5000, adapter.getValue().pollIntervalMs()); } }