Skip to content

Commit a57b4e6

Browse files
committed
coverage
Signed-off-by: Gregor Zeitlinger <[email protected]>
1 parent c8c1e9b commit a57b4e6

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/SnapshotEscaper.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ public class SnapshotEscaper {
1515
private SnapshotEscaper() {}
1616

1717
/** Escapes the given metric names and labels with the given escaping scheme. */
18-
public static MetricSnapshot escapeMetricSnapshot(MetricSnapshot v, EscapingScheme scheme) {
18+
@Nullable
19+
public static MetricSnapshot escapeMetricSnapshot(@Nullable MetricSnapshot v, EscapingScheme scheme) {
1920
if (v == null) {
2021
return null;
2122
}
@@ -338,7 +339,7 @@ public static String escapeName(String name, EscapingScheme scheme) {
338339
}
339340
}
340341

341-
private static boolean needsEscaping(String name, EscapingScheme scheme) {
342+
public static boolean needsEscaping(String name, EscapingScheme scheme) {
342343
return !PrometheusNaming.isValidLegacyMetricName(name)
343344
|| (scheme == EscapingScheme.DOTS_ESCAPING && (name.contains(".") || name.contains("_")));
344345
}

prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/SnapshotEscaperTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.escapeMetricSnapshot;
44
import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.escapeName;
5+
import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getSnapshotLabelName;
56
import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.unescapeName;
67
import static org.assertj.core.api.Assertions.assertThat;
78

@@ -282,4 +283,30 @@ private MetricSnapshot createTestSnapshot(
282283

283284
throw new IllegalArgumentException("Unsupported snapshot type: " + snapshotType);
284285
}
286+
287+
@Test
288+
void escapeIsNoop() {
289+
MetricSnapshot original = CounterSnapshot.builder().name("empty").build();
290+
assertThat(original)
291+
.isSameAs(escapeMetricSnapshot(original, EscapingScheme.NO_ESCAPING))
292+
.isSameAs(escapeMetricSnapshot(original, EscapingScheme.UNDERSCORE_ESCAPING));
293+
assertThat(escapeMetricSnapshot(null, EscapingScheme.NO_ESCAPING)).isNull();
294+
}
295+
296+
@Test
297+
void metadataName() {
298+
MetricMetadata metadata = new MetricMetadata("test.");
299+
assertThat(SnapshotEscaper.getMetadataName(metadata, EscapingScheme.NO_ESCAPING))
300+
.isEqualTo("test.");
301+
assertThat(SnapshotEscaper.getMetadataName(metadata, EscapingScheme.UNDERSCORE_ESCAPING))
302+
.isEqualTo("test_");
303+
}
304+
305+
@Test
306+
void snapshotLabelName() {
307+
Labels labels = Labels.builder().label("test.", "value").build();
308+
assertThat(getSnapshotLabelName(labels, 0, EscapingScheme.NO_ESCAPING)).isEqualTo("test.");
309+
assertThat(getSnapshotLabelName(labels, 0, EscapingScheme.UNDERSCORE_ESCAPING))
310+
.isEqualTo("test_");
311+
}
285312
}

0 commit comments

Comments
 (0)