2020import static org .mockito .Mockito .verify ;
2121import static software .amazon .lambda .powertools .tracing .TracingUtils .withEntitySubsegment ;
2222
23- import ch .qos .logback .classic .Level ;
24- import ch .qos .logback .classic .Logger ;
25- import ch .qos .logback .classic .spi .ILoggingEvent ;
26- import ch .qos .logback .core .read .ListAppender ;
2723import com .amazonaws .services .lambda .runtime .Context ;
2824import com .amazonaws .xray .AWSXRay ;
2925import com .amazonaws .xray .entities .Entity ;
30- import java .util .List ;
3126import org .junit .jupiter .api .AfterEach ;
3227import org .junit .jupiter .api .BeforeEach ;
3328import org .junit .jupiter .api .Test ;
34- import org .slf4j .LoggerFactory ;
3529
3630class TracingUtilsTest {
37-
3831 @ BeforeEach
3932 void setUp () {
4033 AWSXRay .beginSegment ("test" );
@@ -130,45 +123,21 @@ void shouldInvokeCodeBlockWrappedWithinSubsegment() {
130123 }
131124
132125 @ Test
133- void shouldEmitNoLogWarnIfValidCharacterInKey () {
126+ void shouldNotAddAnnotationIfInvalidCharacterInKey () {
134127 AWSXRay .beginSubsegment ("subSegment" );
135- Logger logger = (Logger ) LoggerFactory .getLogger (TracingUtils .class );
136-
137- // create and start a ListAppender
138- ListAppender <ILoggingEvent > listAppender = new ListAppender <>();
139- listAppender .start ();
140-
141- // add the appender to the logger
142- logger .addAppender (listAppender );
143-
144- TracingUtils .putAnnotation ("stringKey" , "val" );
145-
146- List <ILoggingEvent > logsList = listAppender .list ;
147- assertThat (AWSXRay .getTraceEntity ().getAnnotations ())
148- .hasSize (1 )
149- .contains (
150- entry ("stringKey" , "val" )
151- );
152- assertThat (logsList .size ()).isZero ();
128+ String inputKey = "stringKey with spaces" ;
129+ TracingUtils .putAnnotation (inputKey , "val" );
130+ AWSXRay .getCurrentSubsegmentOptional ()
131+ .ifPresent (segment -> assertThat (segment .getAnnotations ()).size ().isEqualTo (0 ));
153132 }
154133
155134 @ Test
156- void shouldEmitLogWarnIfInvalidCharacterInKey () {
135+ void shouldAddAnnotationIfValidCharactersInKey () {
157136 AWSXRay .beginSubsegment ("subSegment" );
158- Logger logger = (Logger ) LoggerFactory .getLogger (TracingUtils .class );
159-
160- // create and start a ListAppender
161- ListAppender <ILoggingEvent > listAppender = new ListAppender <>();
162- listAppender .start ();
163-
164- // add the appender to the logger
165- logger .addAppender (listAppender );
166- String inputKey = "stringKey with spaces" ;
137+ String inputKey = "validKey" ;
167138 TracingUtils .putAnnotation (inputKey , "val" );
168-
169- List <ILoggingEvent > logsList = listAppender .list ;
170- assertThat (logsList .get (0 ).getLevel ()).isEqualTo (Level .WARN );
171- assertThat (logsList .get (0 ).getMessage ()).isEqualTo ("Ignoring annotation with unsupported characters in key: {}" ,inputKey );
139+ AWSXRay .getCurrentSubsegmentOptional ()
140+ .ifPresent (segment -> assertThat (segment .getAnnotations ()).size ().isEqualTo (1 ));
172141 }
173142
174143 @ Test
@@ -269,4 +238,4 @@ void shouldInvokeCodeBlockWrappedWithinNamespacedEntitySubsegment() throws Inter
269238 .containsEntry ("key" , "val" );
270239 });
271240 }
272- }
241+ }
0 commit comments