77import org .junit .jupiter .params .provider .CsvSource ;
88import org .junit .jupiter .params .provider .MethodSource ;
99import org .junitpioneer .jupiter .SetSystemProperty ;
10- import org .mockito .MockedStatic ;
1110
1211import java .util .stream .Stream ;
1312
2322import static io .prometheus .metrics .model .snapshots .PrometheusNaming .validateUnitName ;
2423import static org .assertj .core .api .Assertions .assertThat ;
2524import static org .assertj .core .api .Assertions .assertThatExceptionOfType ;
26- import static org .mockito .Mockito .CALLS_REAL_METHODS ;
27- import static org .mockito .Mockito .mockStatic ;
2825
2926class PrometheusNamingTest {
3027
@@ -339,62 +336,58 @@ public void testEscapeMetricSnapshotEmpty() {
339336 assertThat (original .getMetadata ().getName ()).isEqualTo ("empty" );
340337 }
341338
339+ @ SetSystemProperty (key = "io.prometheus.naming.validationScheme" , value = "utf-8" )
342340 @ Test
343341 public void testEscapeMetricSnapshotSimpleNoEscapingNeeded () {
344342 testEscapeMetricSnapshot (
345343 "my_metric" ,
346344 "some_label" ,
347345 "labelvalue" ,
348- "some help text" ,
349346 "my_metric" ,
350347 "some_label" ,
351348 "labelvalue" ,
352- "some help text" ,
353349 EscapingScheme .VALUE_ENCODING_ESCAPING ,
354350 CounterSnapshot .class );
355351 }
356352
353+ @ SetSystemProperty (key = "io.prometheus.naming.validationScheme" , value = "utf-8" )
357354 @ Test
358355 public void testEscapeMetricSnapshotLabelNameEscapingNeeded () {
359356 testEscapeMetricSnapshot (
360357 "my_metric" ,
361358 "some.label" ,
362359 "labelvalue" ,
363- "some help text" ,
364360 "my_metric" ,
365361 "U__some_2e_label" ,
366362 "labelvalue" ,
367- "some help text" ,
368363 EscapingScheme .VALUE_ENCODING_ESCAPING ,
369364 CounterSnapshot .class );
370365 }
371366
367+ @ SetSystemProperty (key = "io.prometheus.naming.validationScheme" , value = "utf-8" )
372368 @ Test
373369 public void testEscapeMetricSnapshotCounterEscapingNeeded () {
374370 testEscapeMetricSnapshot (
375371 "my.metric" ,
376372 "some?label" ,
377373 "label??value" ,
378- "some help text" ,
379374 "U__my_2e_metric" ,
380375 "U__some_3f_label" ,
381376 "label??value" ,
382- "some help text" ,
383377 EscapingScheme .VALUE_ENCODING_ESCAPING ,
384378 CounterSnapshot .class );
385379 }
386380
381+ @ SetSystemProperty (key = "io.prometheus.naming.validationScheme" , value = "utf-8" )
387382 @ Test
388383 public void testEscapeMetricSnapshotGaugeEscapingNeeded () {
389384 testEscapeMetricSnapshot (
390385 "unicode.and.dots.花火" ,
391386 "some_label" ,
392387 "label??value" ,
393- "some help text" ,
394388 "unicode_dot_and_dot_dots_dot_____" ,
395389 "some_label" ,
396390 "label??value" ,
397- "some help text" ,
398391 EscapingScheme .DOTS_ESCAPING ,
399392 GaugeSnapshot .class );
400393 }
@@ -403,70 +396,57 @@ private void testEscapeMetricSnapshot(
403396 String name ,
404397 String labelName ,
405398 String labelValue ,
406- String help ,
407399 String expectedName ,
408400 String expectedLabelName ,
409401 String expectedLabelValue ,
410- String expectedHelp ,
411402 EscapingScheme escapingScheme ,
412403 Class <? extends MetricSnapshot > snapshotType ) {
404+ PrometheusNaming .resetForTest ();
413405
414- try (MockedStatic <PrometheusNaming > mock =
415- mockStatic (PrometheusNaming .class , CALLS_REAL_METHODS )) {
416- mock .when (PrometheusNaming ::getValidationScheme )
417- .thenReturn (ValidationScheme .UTF_8_VALIDATION );
418-
419- MetricSnapshot original =
420- createTestSnapshot (name , labelName , labelValue , help , 34.2 , snapshotType );
421- MetricSnapshot got = escapeMetricSnapshot (original , escapingScheme );
422-
423- assertThat (got .getMetadata ().getName ()).isEqualTo (expectedName );
424- assertThat (got .getMetadata ().getHelp ()).isEqualTo (expectedHelp );
425- assertThat (got .getDataPoints ().size ()).isEqualTo (1 );
426-
427- DataPointSnapshot escapedData = got .getDataPoints ().get (0 );
428- assertThat ((Iterable <? extends Label >) escapedData .getLabels ())
429- .isEqualTo (
430- Labels .builder ()
431- .label ("__name__" , expectedName )
432- .label (expectedLabelName , expectedLabelValue )
433- .build ());
434-
435- assertThat (original .getMetadata ().getName ()).isEqualTo (name );
436- assertThat (original .getMetadata ().getHelp ()).isEqualTo (help );
437- assertThat (original .getDataPoints ().size ()).isEqualTo (1 );
438-
439- DataPointSnapshot originalData = original .getDataPoints ().get (0 );
440- assertThat ((Iterable <? extends Label >) originalData .getLabels ())
441- .isEqualTo (Labels .builder ().label ("__name__" , name ).label (labelName , labelValue ).build ());
442- }
406+ MetricSnapshot original = createTestSnapshot (name , labelName , labelValue , snapshotType );
407+ MetricSnapshot got = escapeMetricSnapshot (original , escapingScheme );
408+
409+ assertThat (got .getMetadata ().getName ()).isEqualTo (expectedName );
410+ assertThat (got .getMetadata ().getHelp ()).isEqualTo ("some help text" );
411+ assertThat (got .getDataPoints ()).hasSize (1 );
412+
413+ DataPointSnapshot escapedData = got .getDataPoints ().get (0 );
414+ assertThat ((Iterable <? extends Label >) escapedData .getLabels ())
415+ .isEqualTo (
416+ Labels .builder ()
417+ .label ("__name__" , expectedName )
418+ .label (expectedLabelName , expectedLabelValue )
419+ .build ());
420+
421+ assertThat (original .getMetadata ().getName ()).isEqualTo (name );
422+ assertThat (original .getMetadata ().getHelp ()).isEqualTo ("some help text" );
423+ assertThat (original .getDataPoints ()).hasSize (1 );
424+
425+ DataPointSnapshot originalData = original .getDataPoints ().get (0 );
426+ assertThat ((Iterable <? extends Label >) originalData .getLabels ())
427+ .isEqualTo (Labels .builder ().label ("__name__" , name ).label (labelName , labelValue ).build ());
443428 }
444429
445430 private MetricSnapshot createTestSnapshot (
446431 String name ,
447432 String labelName ,
448433 String labelValue ,
449- String help ,
450- double value ,
451434 Class <? extends MetricSnapshot > snapshotType ) {
452435 Labels labels = Labels .builder ().label ("__name__" , name ).label (labelName , labelValue ).build ();
453436
454437 if (snapshotType .equals (CounterSnapshot .class )) {
455438 return CounterSnapshot .builder ()
456439 .name (name )
457- .help (help )
440+ .help ("some help text" )
458441 .dataPoint (
459- CounterSnapshot .CounterDataPointSnapshot .builder ()
460- .value (value )
461- .labels (labels )
462- .build ())
442+ CounterSnapshot .CounterDataPointSnapshot .builder ().value (34.2 ).labels (labels ).build ())
463443 .build ();
464444 } else if (snapshotType .equals (GaugeSnapshot .class )) {
465445 return GaugeSnapshot .builder ()
466446 .name (name )
467- .help (help )
447+ .help ("some help text" )
468448 .dataPoint (
469- GaugeSnapshot .GaugeDataPointSnapshot .builder ().value (value ).labels (labels ).build ())
449+ GaugeSnapshot .GaugeDataPointSnapshot .builder ().value (34.2 ).labels (labels ).build ())
470450 .build ();
471451 }
472452
0 commit comments