@@ -37,6 +37,7 @@ public class ContextTest {
37
37
// DO NOT use dash in trace and span id because W3C traceparent format uses dash as a delimieter
38
38
private static final String TEST_TRACE_ID = "test_trace_id" ;
39
39
private static final String TEST_SPAN_ID = "test_span_id" ;
40
+ private static final boolean TEST_TRACE_SAMPLED = true ;
40
41
41
42
private static final HttpRequest REQUEST =
42
43
HttpRequest .newBuilder ()
@@ -68,6 +69,7 @@ public class ContextTest {
68
69
.setRequest (PARTIAL_REQUEST )
69
70
.setTraceId (TEST_TRACE_ID )
70
71
.setSpanId (TEST_SPAN_ID )
72
+ .setTraceSampled (TEST_TRACE_SAMPLED )
71
73
.build ();
72
74
73
75
@ Test
@@ -87,6 +89,7 @@ public void testCompareContexts() {
87
89
.setServerIp (SERVER_IP )
88
90
.setTraceId (TEST_TRACE_ID )
89
91
.setSpanId (TEST_SPAN_ID )
92
+ .setTraceSampled (TEST_TRACE_SAMPLED )
90
93
.build ();
91
94
92
95
assertNotEquals (TEST_CONTEXT , context1 );
@@ -103,9 +106,11 @@ public void testContextBuilder() {
103
106
assertEquals (PARTIAL_REQUEST , TEST_CONTEXT .getHttpRequest ());
104
107
assertEquals (TEST_TRACE_ID , TEST_CONTEXT .getTraceId ());
105
108
assertEquals (TEST_SPAN_ID , TEST_CONTEXT .getSpanId ());
109
+ assertEquals (TEST_TRACE_SAMPLED , TEST_CONTEXT .getTraceSampled ());
106
110
assertNull (emptyContext .getHttpRequest ());
107
111
assertNull (emptyContext .getTraceId ());
108
112
assertNull (emptyContext .getSpanId ());
113
+ assertFalse (emptyContext .getTraceSampled ());
109
114
assertEquals (TEST_CONTEXT , anotherContext );
110
115
}
111
116
@@ -114,40 +119,47 @@ public void testParsingCloudTraceContext() {
114
119
final String X_CLOUD_TRACE_NO_TRACE = "/SPAN_ID;o=TRACE_TRUE" ;
115
120
final String X_CLOUD_TRACE_ONLY = TEST_TRACE_ID ;
116
121
final String X_CLOUD_TRACE_WITH_SPAN = TEST_TRACE_ID + "/" + TEST_SPAN_ID ;
117
- final String X_CLOUD_TRACE_FULL = TEST_TRACE_ID + "/" + TEST_SPAN_ID + ";o=TRACE_TRUE" ;
122
+ final String X_CLOUD_TRACE_FULL = TEST_TRACE_ID + "/" + TEST_SPAN_ID + ";o=" + TEST_TRACE_SAMPLED ;
118
123
119
124
Context .Builder builder = Context .newBuilder ();
120
125
121
126
builder .loadCloudTraceContext (null );
122
- assertTraceAndSpan (builder .build (), null , null );
127
+ assertTraceSpanAndSampled (builder .build (), null , null , false );
123
128
builder .loadCloudTraceContext ("" );
124
- assertTraceAndSpan (builder .build (), null , null );
129
+ assertTraceSpanAndSampled (builder .build (), null , null , false );
125
130
builder .loadCloudTraceContext (X_CLOUD_TRACE_NO_TRACE );
126
- assertTraceAndSpan (builder .build (), null , null );
131
+ assertTraceSpanAndSampled (builder .build (), null , null , false );
127
132
builder .loadCloudTraceContext (X_CLOUD_TRACE_ONLY );
128
- assertTraceAndSpan (builder .build (), TEST_TRACE_ID , null );
133
+ assertTraceSpanAndSampled (builder .build (), TEST_TRACE_ID , null , false );
129
134
builder .loadCloudTraceContext (X_CLOUD_TRACE_WITH_SPAN );
130
- assertTraceAndSpan (builder .build (), TEST_TRACE_ID , TEST_SPAN_ID );
135
+ assertTraceSpanAndSampled (builder .build (), TEST_TRACE_ID , TEST_SPAN_ID , false );
131
136
builder .loadCloudTraceContext (X_CLOUD_TRACE_FULL );
132
- assertTraceAndSpan (builder .build (), TEST_TRACE_ID , TEST_SPAN_ID );
137
+ assertTraceSpanAndSampled (builder .build (), TEST_TRACE_ID , TEST_SPAN_ID , TEST_TRACE_SAMPLED );
133
138
}
134
139
135
140
@ Test
136
141
public void testParsingW3CTraceParent () {
137
142
final String W3C_TEST_TRACE_ID = "12345678901234567890123456789012" ;
138
143
final String W3C_TEST_SPAN_ID = "1234567890123456" ;
139
- final String W3C_TRACE_CONTEXT = "00-" + W3C_TEST_TRACE_ID + "-" + W3C_TEST_SPAN_ID + "-00" ;
144
+ final String W3C_TEST_TRACE_SAMPLED = "0f" ;
145
+ final String W3C_TRACE_CONTEXT = "00-" + W3C_TEST_TRACE_ID + "-" + W3C_TEST_SPAN_ID + "-" + W3C_TEST_TRACE_SAMPLED ;
140
146
141
147
Context .Builder builder = Context .newBuilder ();
142
148
143
149
builder .loadW3CTraceParentContext (null );
144
- assertTraceAndSpan (builder .build (), null , null );
150
+ assertTraceSpanAndSampled (builder .build (), null , null , false );
145
151
builder .loadW3CTraceParentContext (W3C_TRACE_CONTEXT );
146
- assertTraceAndSpan (builder .build (), W3C_TEST_TRACE_ID , W3C_TEST_SPAN_ID );
152
+ assertTraceSpanAndSampled (builder .build (), W3C_TEST_TRACE_ID , W3C_TEST_SPAN_ID , true );
147
153
}
148
154
149
- private void assertTraceAndSpan (Context context , String expectedTraceId , String expectedSpanId ) {
155
+ private void assertTraceAndSpan1 (Context context , String expectedTraceId , String expectedSpanId ) {
150
156
assertEquals (expectedTraceId , context .getTraceId ());
151
157
assertEquals (expectedSpanId , context .getSpanId ());
152
158
}
159
+
160
+ private void assertTraceSpanAndSampled (Context context , String expectedTraceId , String expectedSpanId , boolean expectedTraceSampled ) {
161
+ assertEquals (expectedTraceId , context .getTraceId ());
162
+ assertEquals (expectedSpanId , context .getSpanId ());
163
+ assertEquals (expectedTraceSampled , context .getTraceSampled ());
164
+ }
153
165
}
0 commit comments