File tree Expand file tree Collapse file tree 2 files changed +36
-0
lines changed
libraries/tests/AWS.Lambda.Powertools.Tracing.Tests Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -67,6 +67,14 @@ public string[] HandleWithCaptureModeError(bool exception = false)
67
67
throw new Exception ( "Failed" ) ;
68
68
return new [ ] { "A" , "B" } ;
69
69
}
70
+
71
+ [ Tracing ( CaptureMode = TracingCaptureMode . Error ) ]
72
+ public string [ ] HandleWithCaptureModeErrorInner ( bool exception = false )
73
+ {
74
+ if ( exception )
75
+ throw new Exception ( "Failed" , new Exception ( "Inner Exception!!" ) ) ;
76
+ return new [ ] { "A" , "B" } ;
77
+ }
70
78
71
79
[ Tracing ( CaptureMode = TracingCaptureMode . Disabled ) ]
72
80
public string [ ] HandleWithCaptureModeDisabled ( bool exception = false )
Original file line number Diff line number Diff line change @@ -514,6 +514,34 @@ public void OnException_WhenTracerCaptureModeIsError_CapturesError()
514
514
var handlerErrorMessage = metadata . Values . Cast < string > ( ) . First ( ) ;
515
515
Assert . Contains ( handlerErrorMessage , GetException ( exception ) ) ;
516
516
}
517
+
518
+ [ Fact ]
519
+ public void OnException_WhenTracerCaptureModeIsError_CapturesError_Inner_Exception ( )
520
+ {
521
+ // Arrange
522
+ Environment . SetEnvironmentVariable ( "LAMBDA_TASK_ROOT" , "AWS" ) ;
523
+ Environment . SetEnvironmentVariable ( "POWERTOOLS_SERVICE_NAME" , "POWERTOOLS" ) ;
524
+
525
+ // Act
526
+ var segment = AWSXRayRecorder . Instance . TraceContext . GetEntity ( ) ;
527
+
528
+ var exception = Record . Exception ( ( ) =>
529
+ {
530
+ _handler . HandleWithCaptureModeErrorInner ( true ) ;
531
+ } ) ;
532
+ var subSegment = segment . Subsegments [ 0 ] ;
533
+
534
+ // Assert
535
+ Assert . NotNull ( exception ) ;
536
+ Assert . True ( segment . IsSubsegmentsAdded ) ;
537
+ Assert . Single ( segment . Subsegments ) ;
538
+ Assert . True ( subSegment . IsMetadataAdded ) ;
539
+ Assert . True ( subSegment . Metadata . ContainsKey ( "POWERTOOLS" ) ) ;
540
+ var metadata = subSegment . Metadata [ "POWERTOOLS" ] ;
541
+ Assert . Equal ( "HandleWithCaptureModeErrorInner error" , metadata . Keys . Cast < string > ( ) . First ( ) ) ;
542
+ Assert . NotNull ( exception . InnerException ) ;
543
+ Assert . Equal ( "Inner Exception!!" , exception . InnerException . Message ) ;
544
+ }
517
545
518
546
[ Fact ]
519
547
public void OnException_WhenTracerCaptureModeIsResponseAndError_CapturesError ( )
You can’t perform that action at this time.
0 commit comments