|
19 | 19 | import java.util.concurrent.atomic.AtomicInteger; |
20 | 20 |
|
21 | 21 | import org.junit.jupiter.api.Test; |
| 22 | +import org.junit.jupiter.params.ParameterizedTest; |
| 23 | +import org.junit.jupiter.params.provider.CsvSource; |
22 | 24 | import org.mockito.MockedStatic; |
23 | 25 |
|
24 | 26 | class ExpositionFormatsTest { |
@@ -2766,51 +2768,20 @@ public void testLabelValueEscape() throws IOException { |
2766 | 2768 | assertPrometheusText(prometheus, counter); |
2767 | 2769 | } |
2768 | 2770 |
|
2769 | | - @Test |
2770 | | - public void testFindWriter() { |
| 2771 | + @ParameterizedTest |
| 2772 | + @CsvSource({ |
| 2773 | + "'application/vnd.google.protobuf;proto=io.prometheus.client.MetricFamily;encoding=delimited', 'application/vnd.google.protobuf; proto=io.prometheus.client.MetricFamily; encoding=delimited; escaping=values'", |
| 2774 | + "'text/plain;version=0.0.4', 'text/plain; version=0.0.4; charset=utf-8; escaping=values'", |
| 2775 | + "'application/vnd.google.protobuf;proto=io.prometheus.client.MetricFamily;encoding=delimited; escaping=allow-utf-8', 'application/vnd.google.protobuf; proto=io.prometheus.client.MetricFamily; encoding=delimited; escaping=allow-utf-8'", |
| 2776 | + "'application/openmetrics-text', 'application/openmetrics-text; version=1.0.0; charset=utf-8; escaping=values'", |
| 2777 | + "'application/openmetrics-text;version=0.0.1; escaping=underscores', 'application/openmetrics-text; version=1.0.0; charset=utf-8; escaping=underscores'", |
| 2778 | + "'text/plain;version=0.0.4; escaping=allow-utf-8', 'text/plain; version=0.0.4; charset=utf-8; escaping=allow-utf-8'" |
| 2779 | + }) |
| 2780 | + public void testFindWriter(String acceptHeaderValue, String expectedFmt) { |
2771 | 2781 | ExpositionFormats expositionFormats = ExpositionFormats.init(); |
2772 | | - |
2773 | | - // delimited format - should use default escaping scheme |
2774 | | - String acceptHeaderValue = "application/vnd.google.protobuf;proto=io.prometheus.client.MetricFamily;encoding=delimited"; |
2775 | | - String expectedFmt = "application/vnd.google.protobuf; proto=io.prometheus.client.MetricFamily; encoding=delimited; escaping=values"; |
2776 | 2782 | EscapingScheme escapingScheme = EscapingScheme.fromAcceptHeader(acceptHeaderValue); |
2777 | 2783 | ExpositionFormatWriter writer = expositionFormats.findWriter(acceptHeaderValue); |
2778 | 2784 | assertThat(writer.getContentType() + escapingScheme.toHeaderFormat()).hasToString(expectedFmt); |
2779 | | - |
2780 | | - // plain text format - should use default escaping scheme |
2781 | | - acceptHeaderValue = "text/plain;version=0.0.4"; |
2782 | | - expectedFmt = "text/plain; version=0.0.4; charset=utf-8; escaping=values"; |
2783 | | - escapingScheme = EscapingScheme.fromAcceptHeader(acceptHeaderValue); |
2784 | | - writer = expositionFormats.findWriter(acceptHeaderValue); |
2785 | | - assertThat(writer.getContentType() + escapingScheme.toHeaderFormat()).hasToString(expectedFmt); |
2786 | | - |
2787 | | - // delimited format UTF-8 - explicit escaping parameter |
2788 | | - acceptHeaderValue = "application/vnd.google.protobuf;proto=io.prometheus.client.MetricFamily;encoding=delimited; escaping=allow-utf-8"; |
2789 | | - expectedFmt = "application/vnd.google.protobuf; proto=io.prometheus.client.MetricFamily; encoding=delimited; escaping=allow-utf-8"; |
2790 | | - escapingScheme = EscapingScheme.fromAcceptHeader(acceptHeaderValue); |
2791 | | - writer = expositionFormats.findWriter(acceptHeaderValue); |
2792 | | - assertThat(writer.getContentType() + escapingScheme.toHeaderFormat()).hasToString(expectedFmt); |
2793 | | - |
2794 | | - // OM format, no version - should use default escaping scheme |
2795 | | - acceptHeaderValue = "application/openmetrics-text"; |
2796 | | - expectedFmt = "application/openmetrics-text; version=1.0.0; charset=utf-8; escaping=values"; |
2797 | | - escapingScheme = EscapingScheme.fromAcceptHeader(acceptHeaderValue); |
2798 | | - writer = expositionFormats.findWriter(acceptHeaderValue); |
2799 | | - assertThat(writer.getContentType() + escapingScheme.toHeaderFormat()).hasToString(expectedFmt); |
2800 | | - |
2801 | | - // OM format, 0.0.1 version - explicit escaping parameter |
2802 | | - acceptHeaderValue = "application/openmetrics-text;version=0.0.1; escaping=underscores"; |
2803 | | - expectedFmt = "application/openmetrics-text; version=1.0.0; charset=utf-8; escaping=underscores"; |
2804 | | - escapingScheme = EscapingScheme.fromAcceptHeader(acceptHeaderValue); |
2805 | | - writer = expositionFormats.findWriter(acceptHeaderValue); |
2806 | | - assertThat(writer.getContentType() + escapingScheme.toHeaderFormat()).hasToString(expectedFmt); |
2807 | | - |
2808 | | - // plain text format UTF-8 - explicit escaping parameter |
2809 | | - acceptHeaderValue = "text/plain;version=0.0.4; escaping=allow-utf-8"; |
2810 | | - expectedFmt = "text/plain; version=0.0.4; charset=utf-8; escaping=allow-utf-8"; |
2811 | | - escapingScheme = EscapingScheme.fromAcceptHeader(acceptHeaderValue); |
2812 | | - writer = expositionFormats.findWriter(acceptHeaderValue); |
2813 | | - assertThat(writer.getContentType() + escapingScheme.toHeaderFormat()).hasToString(expectedFmt); |
2814 | 2785 | } |
2815 | 2786 |
|
2816 | 2787 | @Test |
|
0 commit comments