XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEServerManager

【Java】我的世界XFE服务器管理器

公开
关注 0 Fork 0 Star 0
UTF-8
package com.xfestudio.xfeservermanager.infra.http;

import static org.assertj.core.api.Assertions.assertThat;

import com.xfestudio.xfeservermanager.api.status.DimensionMetrics;
import com.xfestudio.xfeservermanager.api.status.MemoryMetrics;
import com.xfestudio.xfeservermanager.api.status.ServerStatusSnapshot;
import com.xfestudio.xfeservermanager.api.status.TickMetrics;
import java.time.Duration;
import java.time.Instant;
import java.util.Map;
import org.junit.jupiter.api.Test;

class OpenMetricsFormatterTest {
    @Test
    void rendersRequiredMetricsAndEscapesDimensionLabel() {
        var snapshot = new ServerStatusSnapshot(
                Instant.EPOCH,
                Duration.ofSeconds(30),
                new TickMetrics(19.9, 4, 8, 12, 1),
                0.5,
                new MemoryMetrics(10, 20, 30, 2, 5),
                1_000,
                3,
                20,
                42,
                Map.of("mod:\"dimension\r\nnext", new DimensionMetrics(12, 34)));

        String metrics = new OpenMetricsFormatter().format(snapshot);

        assertThat(metrics).contains("xfesm_tick_tps 19.900000");
        assertThat(metrics).contains("dimension=\"mod:\\\"dimension\\n\\nnext\"");
        assertThat(metrics).contains("# TYPE xfesm_gc_collections_total counter");
        assertThat(metrics).endsWith("# EOF\n");
    }
}