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");
}
}
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");
}
}