33import java .io .ByteArrayOutputStream ;
44import java .io .PrintStream ;
55import java .util .Map ;
6+ import java .util .function .Consumer ;
67
78import com .fasterxml .jackson .core .JsonProcessingException ;
89import com .fasterxml .jackson .databind .ObjectMapper ;
1213import org .junit .jupiter .api .Test ;
1314import org .mockito .MockedStatic ;
1415import software .amazon .cloudwatchlogs .emf .config .SystemWrapper ;
16+ import software .amazon .cloudwatchlogs .emf .logger .MetricsLogger ;
1517import software .amazon .cloudwatchlogs .emf .model .DimensionSet ;
1618import software .amazon .cloudwatchlogs .emf .model .Unit ;
1719
@@ -124,13 +126,29 @@ void singleMetricsCaptureUtilityWithDefaultNameSpace() {
124126
125127 @ Test
126128 void metricsLoggerCaptureUtilityWithDefaultNameSpace () {
129+ testLogger (MetricsUtils ::withMetricsLogger );
130+ }
131+
132+ @ Test
133+ void deprecatedMetricLoggerCaptureUtilityWithDefaultNameSpace () {
134+ testLogger (MetricsUtils ::withMetricLogger );
135+ }
136+
137+ @ Test
138+ void shouldThrowExceptionWhenDefaultDimensionIsNull () {
139+ assertThatNullPointerException ()
140+ .isThrownBy (() -> MetricsUtils .defaultDimensionSet (null ))
141+ .withMessage ("Null dimension set not allowed" );
142+ }
143+
144+ private void testLogger (Consumer <Consumer <MetricsLogger >> methodToTest ) {
127145 try (MockedStatic <SystemWrapper > mocked = mockStatic (SystemWrapper .class );
128146 MockedStatic <software .amazon .lambda .powertools .core .internal .SystemWrapper > internalWrapper = mockStatic (software .amazon .lambda .powertools .core .internal .SystemWrapper .class )) {
129147 mocked .when (() -> SystemWrapper .getenv ("AWS_EMF_ENVIRONMENT" )).thenReturn ("Lambda" );
130148 mocked .when (() -> SystemWrapper .getenv ("POWERTOOLS_METRICS_NAMESPACE" )).thenReturn ("GlobalName" );
131149 internalWrapper .when (() -> getenv ("_X_AMZN_TRACE_ID" )).thenReturn ("Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;Sampled=1\" " );
132150
133- MetricsUtils . withMetricLogger (metricsLogger -> {
151+ methodToTest . accept (metricsLogger -> {
134152 metricsLogger .setDimensions (DimensionSet .of ("Dimension1" , "Value1" ));
135153 metricsLogger .putMetric ("Metric1" , 1 , Unit .COUNT );
136154 });
@@ -154,13 +172,6 @@ void metricsLoggerCaptureUtilityWithDefaultNameSpace() {
154172 }
155173 }
156174
157- @ Test
158- void shouldThrowExceptionWhenDefaultDimensionIsNull () {
159- assertThatNullPointerException ()
160- .isThrownBy (() -> MetricsUtils .defaultDimensionSet (null ))
161- .withMessage ("Null dimension set not allowed" );
162- }
163-
164175 private Map <String , Object > readAsJson (String s ) {
165176 try {
166177 return mapper .readValue (s , Map .class );
0 commit comments