refactor: gate mqtt inbound startup
This commit is contained in:
@@ -31,6 +31,7 @@ lingniu:
|
||||
ingest:
|
||||
mqtt:
|
||||
enabled: ${YUTONG_MQTT_ENABLED:false}
|
||||
auto-startup: ${YUTONG_MQTT_AUTO_STARTUP:true}
|
||||
endpoints:
|
||||
- name: ${YUTONG_MQTT_ENDPOINT_NAME:yutong}
|
||||
uri: ${YUTONG_MQTT_URI:}
|
||||
|
||||
@@ -15,12 +15,16 @@ import com.lingniu.ingest.sink.mq.KafkaEventSink;
|
||||
import com.lingniu.ingest.sink.mq.SinkMqAutoConfiguration;
|
||||
import org.apache.kafka.clients.producer.KafkaProducer;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.boot.test.system.CapturedOutput;
|
||||
import org.springframework.boot.test.system.OutputCaptureExtension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
@ExtendWith(OutputCaptureExtension.class)
|
||||
class YutongMqttAppCompositionTest {
|
||||
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
|
||||
@@ -34,6 +38,7 @@ class YutongMqttAppCompositionTest {
|
||||
.withBean("kafkaProducer", KafkaProducer.class, YutongMqttAppCompositionTest::kafkaProducer)
|
||||
.withPropertyValues(
|
||||
"lingniu.ingest.mqtt.enabled=true",
|
||||
"lingniu.ingest.mqtt.auto-startup=false",
|
||||
"lingniu.ingest.mqtt.endpoints[0].name=yutong-test",
|
||||
"lingniu.ingest.mqtt.endpoints[0].uri=tcp://127.0.0.1:1883",
|
||||
"lingniu.ingest.mqtt.endpoints[0].topic=/yutong/#",
|
||||
@@ -51,7 +56,7 @@ class YutongMqttAppCompositionTest {
|
||||
"lingniu.ingest.vehicle-stat.enabled=false");
|
||||
|
||||
@Test
|
||||
void createsMqttIngressAndKafkaSinksWithoutHistoryStorage() {
|
||||
void createsMqttIngressAndKafkaSinksWithoutHistoryStorage(CapturedOutput output) {
|
||||
contextRunner.run(context -> {
|
||||
assertThat(context).hasSingleBean(MqttEndpointManager.class);
|
||||
assertThat(context).hasSingleBean(MqttProfileRegistry.class);
|
||||
@@ -61,6 +66,17 @@ class YutongMqttAppCompositionTest {
|
||||
assertThat(context).hasSingleBean(KafkaEnvelopeDeadLetterSink.class);
|
||||
assertThat(context).hasSingleBean(ArchiveStore.class);
|
||||
assertThat(context).hasSingleBean(RawArchiveEventSink.class);
|
||||
assertThat(context).doesNotHaveBean("mqttEndpointStartupRunner");
|
||||
});
|
||||
assertThat(output).doesNotContain("mqtt endpoint [yutong-test] initializing");
|
||||
assertThat(output).doesNotContain("mqtt endpoint [yutong-test] init failed");
|
||||
}
|
||||
|
||||
@Test
|
||||
void createsStartupRunnerWhenAutoStartupIsEnabled() {
|
||||
contextRunner.withPropertyValues("lingniu.ingest.mqtt.auto-startup=true").run(context -> {
|
||||
assertThat(context).hasSingleBean(MqttEndpointManager.class);
|
||||
assertThat(context).hasBean("mqttEndpointStartupRunner");
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ class YutongMqttAppDefaultsTest {
|
||||
.containsEntry("spring.cloud.nacos.config.server-addr", "${NACOS_SERVER_ADDR:127.0.0.1:8848}")
|
||||
.containsEntry("server.port", "${HTTP_PORT:20500}")
|
||||
.containsEntry("lingniu.ingest.mqtt.enabled", "${YUTONG_MQTT_ENABLED:false}")
|
||||
.containsEntry("lingniu.ingest.mqtt.auto-startup", "${YUTONG_MQTT_AUTO_STARTUP:true}")
|
||||
.containsEntry("lingniu.ingest.mqtt.endpoints[0].uri", "${YUTONG_MQTT_URI:}")
|
||||
.containsEntry("lingniu.ingest.mqtt.endpoints[0].topic", "${YUTONG_MQTT_TOPIC:#}")
|
||||
.containsEntry("lingniu.ingest.mqtt.endpoints[0].profile", "yutong")
|
||||
|
||||
Reference in New Issue
Block a user