@@ -65,22 +65,7 @@ public void testSamplingOverrideFalseInLambda() throws Exception {
65
65
.withEmitter (mockedEmitted )
66
66
.build ();
67
67
68
- recorder .beginSubsegmentWithoutSampling ("Test" );
69
-
70
- Subsegment subsegment = ((Subsegment ) recorder .getTraceEntity ());
71
- assertThat (subsegment .shouldPropagate ()).isTrue ();
72
-
73
- DefaultRequest <Void > request = new DefaultRequest <>(new InvokeRequest (), "Test" );
74
-
75
- TracingHandler tracingHandler = new TracingHandler (recorder );
76
- tracingHandler .beforeRequest (request );
77
- tracingHandler .afterResponse (request , new Response (new InvokeResult (), new HttpResponse (request , null )));
78
-
79
- assertThat (TraceHeader .fromString (request .getHeaders ().get (TraceHeader .HEADER_KEY )).getSampled ())
80
- .isEqualTo (TraceHeader .SampleDecision .NOT_SAMPLED );
81
-
82
- recorder .endSubsegment ();
83
-
68
+ lambdaTestHelper (recorder , "testFalse" , false );
84
69
Mockito .verify (mockedEmitted , Mockito .times (0 )).sendSubsegment (any ());
85
70
}
86
71
@@ -102,16 +87,7 @@ public void testSamplingOverrideTrueInLambda() {
102
87
103
88
Mockito .doAnswer (invocation -> { return true ; }).when (mockedEmitted ).sendSubsegment (any ());
104
89
105
- recorder .beginSubsegment ("test1" );
106
- Subsegment subsegment = ((Subsegment ) recorder .getTraceEntity ());
107
- assertThat (subsegment .shouldPropagate ()).isTrue ();
108
- DefaultRequest <Void > request = new DefaultRequest <>(new InvokeRequest (), "Test" );
109
- TracingHandler tracingHandler = new TracingHandler (recorder );
110
- tracingHandler .beforeRequest (request );
111
- assertThat (TraceHeader .fromString (request .getHeaders ().get (TraceHeader .HEADER_KEY )).getSampled ())
112
- .isEqualTo (TraceHeader .SampleDecision .SAMPLED );
113
- tracingHandler .afterResponse (request , new Response (new InvokeResult (), new HttpResponse (request , null )));
114
- recorder .endSubsegment ();
90
+ lambdaTestHelper (recorder , "testTrue" , true );
115
91
Mockito .verify (mockedEmitted , Mockito .times (1 )).sendSubsegment (any ());
116
92
}
117
93
@@ -133,52 +109,43 @@ public void testSamplingOverrideMixedInLambda() {
133
109
134
110
Mockito .doAnswer (invocation -> { return true ; }).when (mockedEmitted ).sendSubsegment (any ());
135
111
136
- recorder .beginSubsegment ("test1" );
137
- Subsegment subsegment1 = ((Subsegment ) recorder .getTraceEntity ());
138
- assertThat (subsegment1 .shouldPropagate ()).isTrue ();
139
- DefaultRequest <Void > request1 = new DefaultRequest <>(new InvokeRequest (), "Test" );
140
- TracingHandler tracingHandler1 = new TracingHandler (recorder );
141
- tracingHandler1 .beforeRequest (request1 );
142
- assertThat (TraceHeader .fromString (request1 .getHeaders ().get (TraceHeader .HEADER_KEY )).getSampled ())
143
- .isEqualTo (TraceHeader .SampleDecision .SAMPLED );
144
- tracingHandler1 .afterResponse (request1 , new Response (new InvokeResult (), new HttpResponse (request1 , null )));
145
- recorder .endSubsegment ();
112
+ lambdaTestHelper (recorder , "test1" , true );
146
113
Mockito .verify (mockedEmitted , Mockito .times (1 )).sendSubsegment (any ());
147
114
148
- recorder .beginSubsegmentWithoutSampling ("test2" );
149
- Subsegment subsegment2 = ((Subsegment ) recorder .getTraceEntity ());
150
- assertThat (subsegment2 .shouldPropagate ()).isTrue ();
151
- DefaultRequest <Void > request2 = new DefaultRequest <>(new InvokeRequest (), "Test" );
152
- TracingHandler tracingHandler2 = new TracingHandler (recorder );
153
- tracingHandler2 .beforeRequest (request2 );
154
- assertThat (TraceHeader .fromString (request2 .getHeaders ().get (TraceHeader .HEADER_KEY )).getSampled ())
155
- .isEqualTo (TraceHeader .SampleDecision .NOT_SAMPLED );
156
- tracingHandler2 .afterResponse (request2 , new Response (new InvokeResult (), new HttpResponse (request2 , null )));
157
- recorder .endSubsegment ();
115
+ lambdaTestHelper (recorder , "test2" , false );
158
116
Mockito .verify (mockedEmitted , Mockito .times (1 )).sendSubsegment (any ());
159
117
160
- recorder .beginSubsegment ("test3" );
161
- Subsegment subsegment3 = ((Subsegment ) recorder .getTraceEntity ());
162
- assertThat (subsegment3 .shouldPropagate ()).isTrue ();
163
- DefaultRequest <Void > request3 = new DefaultRequest <>(new InvokeRequest (), "Test" );
164
- TracingHandler tracingHandler3 = new TracingHandler (recorder );
165
- tracingHandler3 .beforeRequest (request3 );
166
- assertThat (TraceHeader .fromString (request3 .getHeaders ().get (TraceHeader .HEADER_KEY )).getSampled ())
167
- .isEqualTo (TraceHeader .SampleDecision .SAMPLED );
168
- tracingHandler3 .afterResponse (request3 , new Response (new InvokeResult (), new HttpResponse (request3 , null )));
169
- recorder .endSubsegment ();
118
+ lambdaTestHelper (recorder , "test3" , true );
170
119
Mockito .verify (mockedEmitted , Mockito .times (2 )).sendSubsegment (any ());
171
120
172
- recorder .beginSubsegmentWithoutSampling ("test4" );
173
- Subsegment subsegment4 = ((Subsegment ) recorder .getTraceEntity ());
174
- assertThat (subsegment4 .shouldPropagate ()).isTrue ();
175
- DefaultRequest <Void > request4 = new DefaultRequest <>(new InvokeRequest (), "Test" );
176
- TracingHandler tracingHandler4 = new TracingHandler (recorder );
177
- tracingHandler4 .beforeRequest (request4 );
178
- assertThat (TraceHeader .fromString (request4 .getHeaders ().get (TraceHeader .HEADER_KEY )).getSampled ())
179
- .isEqualTo (TraceHeader .SampleDecision .NOT_SAMPLED );
180
- tracingHandler4 .afterResponse (request4 , new Response (new InvokeResult (), new HttpResponse (request4 , null )));
181
- recorder .endSubsegment ();
121
+ lambdaTestHelper (recorder , "test4" , false );
182
122
Mockito .verify (mockedEmitted , Mockito .times (2 )).sendSubsegment (any ());
183
123
}
124
+
125
+ public static void lambdaTestHelper (AWSXRayRecorder recorder , String name , boolean sampled ) {
126
+ if (sampled ) {
127
+ recorder .beginSubsegment (name );
128
+ } else {
129
+ recorder .beginSubsegmentWithoutSampling (name );
130
+ }
131
+
132
+ Subsegment subsegment = ((Subsegment ) recorder .getTraceEntity ());
133
+ assertThat (subsegment .shouldPropagate ()).isTrue ();
134
+ DefaultRequest <Void > request = new DefaultRequest <>(new InvokeRequest (), "Test" );
135
+ TracingHandler tracingHandler = new TracingHandler (recorder );
136
+ tracingHandler .beforeRequest (request );
137
+ TraceHeader traceHeader = TraceHeader .fromString (request .getHeaders ().get (TraceHeader .HEADER_KEY ));
138
+ String serviceEntityId = recorder .getCurrentSubsegment ().getId ();
139
+
140
+ assertThat (traceHeader .getSampled ()).isEqualTo (
141
+ subsegment .isSampled () ?
142
+ TraceHeader .SampleDecision .SAMPLED :
143
+ TraceHeader .SampleDecision .NOT_SAMPLED );
144
+ assertThat (traceHeader .getRootTraceId ()).isEqualTo (subsegment .getTraceId ());
145
+ assertThat (traceHeader .getParentId ()).isEqualTo (subsegment .isSampled () ? serviceEntityId : null );
146
+
147
+ tracingHandler .afterResponse (request , new Response (new InvokeResult (), new HttpResponse (request , null )));
148
+
149
+ recorder .endSubsegment ();
150
+ }
184
151
}
0 commit comments