26
26
import java .io .ByteArrayOutputStream ;
27
27
import java .io .OutputStream ;
28
28
import java .util .Map ;
29
+ import org .junit .jupiter .api .BeforeEach ;
29
30
import org .junit .jupiter .api .Test ;
30
31
31
32
/** Unit tests for {@link TraceConfigzZPageHandler}. */
32
33
public final class TraceConfigzZPageHandlerTest {
33
34
private static final TracerSdkProvider tracerProvider = OpenTelemetrySdk .getTracerProvider ();
34
35
private static final Map <String , String > emptyQueryMap = ImmutableMap .of ();
35
36
37
+ @ BeforeEach
38
+ void setup () {
39
+ // Restore default config
40
+ OutputStream output = new ByteArrayOutputStream ();
41
+ Map <String , String > queryMap = ImmutableMap .of ("action" , "default" );
42
+
43
+ TraceConfigzZPageHandler traceConfigzZPageHandler =
44
+ new TraceConfigzZPageHandler (tracerProvider );
45
+ traceConfigzZPageHandler .processRequest ("POST" , queryMap , output );
46
+ traceConfigzZPageHandler .emitHtml (queryMap , output );
47
+
48
+ assertThat (tracerProvider .getActiveTraceConfig ().getSampler ().getDescription ())
49
+ .isEqualTo (TraceConfig .getDefault ().getSampler ().getDescription ());
50
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfAttributes ())
51
+ .isEqualTo (TraceConfig .getDefault ().getMaxNumberOfAttributes ());
52
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfEvents ())
53
+ .isEqualTo (TraceConfig .getDefault ().getMaxNumberOfEvents ());
54
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfLinks ())
55
+ .isEqualTo (TraceConfig .getDefault ().getMaxNumberOfLinks ());
56
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfAttributesPerEvent ())
57
+ .isEqualTo (TraceConfig .getDefault ().getMaxNumberOfAttributesPerEvent ());
58
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfAttributesPerLink ())
59
+ .isEqualTo (TraceConfig .getDefault ().getMaxNumberOfAttributesPerLink ());
60
+ }
61
+
36
62
@ Test
37
63
void changeTable_emitRowsCorrectly () {
38
64
OutputStream output = new ByteArrayOutputStream ();
@@ -154,6 +180,7 @@ void appliesChangesCorrectly_formSubmit() {
154
180
155
181
TraceConfigzZPageHandler traceConfigzZPageHandler =
156
182
new TraceConfigzZPageHandler (tracerProvider );
183
+ traceConfigzZPageHandler .processRequest ("POST" , queryMap , output );
157
184
traceConfigzZPageHandler .emitHtml (queryMap , output );
158
185
159
186
assertThat (tracerProvider .getActiveTraceConfig ().getSampler ().getDescription ())
@@ -179,6 +206,7 @@ void appliesChangesCorrectly_restoreDefault() {
179
206
180
207
TraceConfigzZPageHandler traceConfigzZPageHandler =
181
208
new TraceConfigzZPageHandler (tracerProvider );
209
+ traceConfigzZPageHandler .processRequest ("POST" , queryMap , output );
182
210
traceConfigzZPageHandler .emitHtml (queryMap , output );
183
211
184
212
assertThat (tracerProvider .getActiveTraceConfig ().getSampler ().getDescription ())
@@ -203,6 +231,7 @@ void appliesChangesCorrectly_doNotCrashOnNullParameters() {
203
231
204
232
TraceConfigzZPageHandler traceConfigzZPageHandler =
205
233
new TraceConfigzZPageHandler (tracerProvider );
234
+ traceConfigzZPageHandler .processRequest ("POST" , queryMap , output );
206
235
traceConfigzZPageHandler .emitHtml (queryMap , output );
207
236
208
237
assertThat (tracerProvider .getActiveTraceConfig ().getSampler ().getDescription ())
@@ -228,69 +257,69 @@ void applyChanges_emitErrorOnInvalidInput() {
228
257
Map <String , String > queryMap =
229
258
ImmutableMap .of ("action" , "change" , "samplingprobability" , "invalid" );
230
259
231
- traceConfigzZPageHandler .emitHtml ( queryMap , output );
260
+ traceConfigzZPageHandler .processRequest ( "POST" , queryMap , output );
232
261
233
- assertThat (output .toString ()).contains ("Error while generating HTML : " );
262
+ assertThat (output .toString ()).contains ("Error while applying trace config changes : " );
234
263
assertThat (output .toString ()).contains ("SamplingProbability must be of the type double" );
235
264
236
265
// Invalid samplingProbability (< 0)
237
266
output = new ByteArrayOutputStream ();
238
267
traceConfigzZPageHandler = new TraceConfigzZPageHandler (tracerProvider );
239
268
queryMap = ImmutableMap .of ("action" , "change" , "samplingprobability" , "-1" );
240
269
241
- traceConfigzZPageHandler .emitHtml ( queryMap , output );
270
+ traceConfigzZPageHandler .processRequest ( "POST" , queryMap , output );
242
271
243
- assertThat (output .toString ()).contains ("Error while generating HTML : " );
272
+ assertThat (output .toString ()).contains ("Error while applying trace config changes : " );
244
273
assertThat (output .toString ()).contains ("probability must be in range [0.0, 1.0]" );
245
274
246
275
// Invalid samplingProbability (> 1)
247
276
output = new ByteArrayOutputStream ();
248
277
traceConfigzZPageHandler = new TraceConfigzZPageHandler (tracerProvider );
249
278
queryMap = ImmutableMap .of ("action" , "change" , "samplingprobability" , "1.1" );
250
279
251
- traceConfigzZPageHandler .emitHtml ( queryMap , output );
280
+ traceConfigzZPageHandler .processRequest ( "POST" , queryMap , output );
252
281
253
- assertThat (output .toString ()).contains ("Error while generating HTML : " );
282
+ assertThat (output .toString ()).contains ("Error while applying trace config changes : " );
254
283
assertThat (output .toString ()).contains ("probability must be in range [0.0, 1.0]" );
255
284
256
285
// Invalid maxNumOfAttributes
257
286
output = new ByteArrayOutputStream ();
258
287
traceConfigzZPageHandler = new TraceConfigzZPageHandler (tracerProvider );
259
288
queryMap = ImmutableMap .of ("action" , "change" , "maxnumofattributes" , "invalid" );
260
289
261
- traceConfigzZPageHandler .emitHtml ( queryMap , output );
290
+ traceConfigzZPageHandler .processRequest ( "POST" , queryMap , output );
262
291
263
- assertThat (output .toString ()).contains ("Error while generating HTML : " );
292
+ assertThat (output .toString ()).contains ("Error while applying trace config changes : " );
264
293
assertThat (output .toString ()).contains ("MaxNumOfAttributes must be of the type integer" );
265
294
266
295
// Invalid maxNumOfEvents
267
296
output = new ByteArrayOutputStream ();
268
297
traceConfigzZPageHandler = new TraceConfigzZPageHandler (tracerProvider );
269
298
queryMap = ImmutableMap .of ("action" , "change" , "maxnumofevents" , "invalid" );
270
299
271
- traceConfigzZPageHandler .emitHtml ( queryMap , output );
300
+ traceConfigzZPageHandler .processRequest ( "POST" , queryMap , output );
272
301
273
- assertThat (output .toString ()).contains ("Error while generating HTML : " );
302
+ assertThat (output .toString ()).contains ("Error while applying trace config changes : " );
274
303
assertThat (output .toString ()).contains ("MaxNumOfEvents must be of the type integer" );
275
304
276
305
// Invalid maxNumLinks
277
306
output = new ByteArrayOutputStream ();
278
307
traceConfigzZPageHandler = new TraceConfigzZPageHandler (tracerProvider );
279
308
queryMap = ImmutableMap .of ("action" , "change" , "maxnumoflinks" , "invalid" );
280
309
281
- traceConfigzZPageHandler .emitHtml ( queryMap , output );
310
+ traceConfigzZPageHandler .processRequest ( "POST" , queryMap , output );
282
311
283
- assertThat (output .toString ()).contains ("Error while generating HTML : " );
312
+ assertThat (output .toString ()).contains ("Error while applying trace config changes : " );
284
313
assertThat (output .toString ()).contains ("MaxNumOfLinks must be of the type integer" );
285
314
286
315
// Invalid maxNumOfAttributesPerEvent
287
316
output = new ByteArrayOutputStream ();
288
317
traceConfigzZPageHandler = new TraceConfigzZPageHandler (tracerProvider );
289
318
queryMap = ImmutableMap .of ("action" , "change" , "maxnumofattributesperevent" , "invalid" );
290
319
291
- traceConfigzZPageHandler .emitHtml ( queryMap , output );
320
+ traceConfigzZPageHandler .processRequest ( "POST" , queryMap , output );
292
321
293
- assertThat (output .toString ()).contains ("Error while generating HTML : " );
322
+ assertThat (output .toString ()).contains ("Error while applying trace config changes : " );
294
323
assertThat (output .toString ())
295
324
.contains ("MaxNumOfAttributesPerEvent must be of the type integer" );
296
325
@@ -299,9 +328,75 @@ void applyChanges_emitErrorOnInvalidInput() {
299
328
traceConfigzZPageHandler = new TraceConfigzZPageHandler (tracerProvider );
300
329
queryMap = ImmutableMap .of ("action" , "change" , "maxnumofattributesperlink" , "invalid" );
301
330
302
- traceConfigzZPageHandler .emitHtml ( queryMap , output );
331
+ traceConfigzZPageHandler .processRequest ( "POST" , queryMap , output );
303
332
304
- assertThat (output .toString ()).contains ("Error while generating HTML : " );
333
+ assertThat (output .toString ()).contains ("Error while applying trace config changes : " );
305
334
assertThat (output .toString ()).contains ("MaxNumOfAttributesPerLink must be of the type integer" );
306
335
}
336
+
337
+ @ Test
338
+ void applyChanges_shouldNotUpdateOnGetRequest () {
339
+ OutputStream output = new ByteArrayOutputStream ();
340
+ String querySamplingProbability = "samplingprobability" ;
341
+ String queryMaxNumOfAttributes = "maxnumofattributes" ;
342
+ String queryMaxNumOfEvents = "maxnumofevents" ;
343
+ String queryMaxNumOfLinks = "maxnumoflinks" ;
344
+ String queryMaxNumOfAttributesPerEvent = "maxnumofattributesperevent" ;
345
+ String queryMaxNumOfAttributesPerLink = "maxnumofattributesperlink" ;
346
+ String newSamplingProbability = "0.001" ;
347
+ String newMaxNumOfAttributes = "16" ;
348
+ String newMaxNumOfEvents = "16" ;
349
+ String newMaxNumOfLinks = "16" ;
350
+ String newMaxNumOfAttributesPerEvent = "16" ;
351
+ String newMaxNumOfAttributesPerLink = "16" ;
352
+
353
+ // Apply new config
354
+ Map <String , String > queryMap =
355
+ new ImmutableMap .Builder <String , String >()
356
+ .put ("action" , "change" )
357
+ .put (querySamplingProbability , newSamplingProbability )
358
+ .put (queryMaxNumOfAttributes , newMaxNumOfAttributes )
359
+ .put (queryMaxNumOfEvents , newMaxNumOfEvents )
360
+ .put (queryMaxNumOfLinks , newMaxNumOfLinks )
361
+ .put (queryMaxNumOfAttributesPerEvent , newMaxNumOfAttributesPerEvent )
362
+ .put (queryMaxNumOfAttributesPerLink , newMaxNumOfAttributesPerLink )
363
+ .build ();
364
+
365
+ TraceConfigzZPageHandler traceConfigzZPageHandler =
366
+ new TraceConfigzZPageHandler (tracerProvider );
367
+
368
+ // GET request, Should not apply changes
369
+ traceConfigzZPageHandler .emitHtml (queryMap , output );
370
+
371
+ assertThat (tracerProvider .getActiveTraceConfig ().getSampler ().getDescription ())
372
+ .isEqualTo (TraceConfig .getDefault ().getSampler ().getDescription ());
373
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfAttributes ())
374
+ .isEqualTo (TraceConfig .getDefault ().getMaxNumberOfAttributes ());
375
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfEvents ())
376
+ .isEqualTo (TraceConfig .getDefault ().getMaxNumberOfEvents ());
377
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfLinks ())
378
+ .isEqualTo (TraceConfig .getDefault ().getMaxNumberOfLinks ());
379
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfAttributesPerEvent ())
380
+ .isEqualTo (TraceConfig .getDefault ().getMaxNumberOfAttributesPerEvent ());
381
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfAttributesPerLink ())
382
+ .isEqualTo (TraceConfig .getDefault ().getMaxNumberOfAttributesPerLink ());
383
+
384
+ // POST request, Should apply changes
385
+ traceConfigzZPageHandler .processRequest ("POST" , queryMap , output );
386
+ traceConfigzZPageHandler .emitHtml (queryMap , output );
387
+
388
+ assertThat (tracerProvider .getActiveTraceConfig ().getSampler ().getDescription ())
389
+ .isEqualTo (
390
+ Samplers .probability (Double .parseDouble (newSamplingProbability )).getDescription ());
391
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfAttributes ())
392
+ .isEqualTo (Integer .parseInt (newMaxNumOfAttributes ));
393
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfEvents ())
394
+ .isEqualTo (Integer .parseInt (newMaxNumOfEvents ));
395
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfLinks ())
396
+ .isEqualTo (Integer .parseInt (newMaxNumOfLinks ));
397
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfAttributesPerEvent ())
398
+ .isEqualTo (Integer .parseInt (newMaxNumOfAttributesPerEvent ));
399
+ assertThat (tracerProvider .getActiveTraceConfig ().getMaxNumberOfAttributesPerLink ())
400
+ .isEqualTo (Integer .parseInt (newMaxNumOfAttributesPerLink ));
401
+ }
307
402
}
0 commit comments