Files
ai-security-xdr/haobang-security-dm/syslog-serve/src/test/java/com/haobang/wal/SyslogWalSpringWiringTest.java
T
王绍宏 00c0a1fb7f feat: 新增设备 API 拉取采集及配套处理能力
- 接入 NDRServer 告警和流量日志,支持凭据与任务管理
- 支持分页拉取、窗口拆分、调度优先级及 WAL 持久化后推进断点
- 增加迟到告警规则重放,优化多条泛化规则选择和事件时间处理
- 补充回归测试、数据库升级脚本及部署文档
2026-09-06 16:46:21 +08:00

60 lines
2.3 KiB
Java

package com.haobang.wal;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.haobang.config.AppProperties;
import java.nio.file.Path;
import java.util.Collections;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.env.MapPropertySource;
/** 验证 WAL 服务在真实 Spring 构造器选择和生命周期规则下可以完成装配。 */
class SyslogWalSpringWiringTest {
@TempDir Path tempDirectory;
@Test
void springSelectsTheProductionConstructor() {
try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext()) {
context
.getEnvironment()
.getPropertySources()
.addFirst(
new MapPropertySource(
"wal-wiring-test",
Collections.singletonMap("syslog.wal.directory", tempDirectory.toString())));
context.registerBean(AppProperties.class, this::walProperties);
context.registerBean(ObjectMapper.class, () -> new ObjectMapper());
context.register(SyslogWalService.class);
context.refresh();
assertNotNull(context.getBean(SyslogWalService.class));
}
}
private AppProperties walProperties() {
AppProperties properties = new AppProperties();
properties.setSyslogWalEnabled(true);
properties.setSyslogWalDirectory(tempDirectory.toString());
properties.setSyslogWalQueueCapacity(16);
properties.setSyslogWalHighWatermarkPercent(70);
properties.setSyslogWalLowWatermarkPercent(40);
properties.setSyslogWalRetryIntervalMs(5);
properties.setSyslogWalDiskRetryIntervalMs(50);
properties.setSyslogWalFlushRecords(1);
properties.setSyslogWalFlushIntervalMs(5);
properties.setSyslogWalSegmentMaxBytes(1024 * 1024);
properties.setSyslogWalRetentionDays(0);
properties.setSyslogWalShutdownTimeoutMs(5000);
properties.setSyslogWalCheckpointFlushRecords(1);
properties.setSyslogWalCheckpointFlushIntervalMs(5);
properties.setSyslogWalDiskHighWatermarkPercent(98);
properties.setSyslogWalMinFreeBytes(0);
properties.setSyslogCharset("UTF-8");
return properties;
}
}