@@ -302,20 +302,24 @@ func TestVerifyPhase(t *testing.T) {
302
302
303
303
func TestVerifyMeasurement (t * testing.T ) {
304
304
for _ , test := range []struct {
305
- name string
306
- input Measurement
307
- expected bool
305
+ name string
306
+ input Measurement
307
+ expected bool
308
+ registered bool
308
309
}{
309
310
{
310
311
name : "Identifier specified only" ,
311
312
input : Measurement {
313
+ Method : "TestMethod1" ,
312
314
Identifier : "Measurement" ,
313
315
},
314
- expected : true ,
316
+ expected : true ,
317
+ registered : true ,
315
318
},
316
319
{
317
320
name : "Instances specified only" ,
318
321
input : Measurement {
322
+ Method : "TestMethod2" ,
319
323
Instances : []* MeasurementInstanceConfig {
320
324
{
321
325
Identifier : "Measurement1" ,
@@ -325,11 +329,13 @@ func TestVerifyMeasurement(t *testing.T) {
325
329
},
326
330
},
327
331
},
328
- expected : true ,
332
+ expected : true ,
333
+ registered : true ,
329
334
},
330
335
{
331
336
name : "Both identifier and instances specified" ,
332
337
input : Measurement {
338
+ Method : "TestMethod3" ,
333
339
Identifier : "Measurement" ,
334
340
Instances : []* MeasurementInstanceConfig {
335
341
{
@@ -340,15 +346,37 @@ func TestVerifyMeasurement(t *testing.T) {
340
346
},
341
347
},
342
348
},
343
- expected : false ,
349
+ expected : false ,
350
+ registered : true ,
344
351
},
345
352
{
346
- name : "Identifier and instances empty" ,
347
- input : Measurement {},
348
- expected : false ,
353
+ name : "Identifier and instances empty" ,
354
+ input : Measurement {Method : "TestMethod4" },
355
+ expected : false ,
356
+ registered : true ,
357
+ },
358
+ {
359
+ name : "Measurement not registered" ,
360
+ input : Measurement {
361
+ Method : "UnregisteredMethod" ,
362
+ Identifier : "Measurement" ,
363
+ },
364
+ expected : false ,
365
+ registered : false ,
366
+ },
367
+ {
368
+ name : "Missing method" ,
369
+ input : Measurement {
370
+ Identifier : "Measurement" ,
371
+ },
372
+ expected : false ,
373
+ registered : false ,
349
374
},
350
375
} {
351
376
t .Run (test .name , func (t * testing.T ) {
377
+ if test .registered {
378
+ RegisteredMeasurements [test .input .Method ] = true
379
+ }
352
380
v := NewConfigValidator ("" , & Config {})
353
381
got := isValid (v .validateMeasurement (& test .input , field .NewPath ("" )))
354
382
if test .expected != got {
@@ -360,9 +388,10 @@ func TestVerifyMeasurement(t *testing.T) {
360
388
361
389
func TestVerifyDependency (t * testing.T ) {
362
390
for _ , test := range []struct {
363
- name string
364
- input Dependency
365
- expected bool
391
+ name string
392
+ input Dependency
393
+ expected bool
394
+ registered bool
366
395
}{
367
396
{
368
397
name : "Valid dependency - name and method specified" ,
@@ -374,7 +403,8 @@ func TestVerifyDependency(t *testing.T) {
374
403
"param1" : "value1" ,
375
404
},
376
405
},
377
- expected : true ,
406
+ expected : true ,
407
+ registered : true ,
378
408
},
379
409
{
380
410
name : "Valid dependency - zero timeout" ,
@@ -383,15 +413,17 @@ func TestVerifyDependency(t *testing.T) {
383
413
Method : "TestMethod" ,
384
414
Timeout : Duration (0 ),
385
415
},
386
- expected : true ,
416
+ expected : true ,
417
+ registered : true ,
387
418
},
388
419
{
389
420
name : "Valid dependency - minimal fields" ,
390
421
input : Dependency {
391
422
Name : "test-dependency" ,
392
423
Method : "TestMethod" ,
393
424
},
394
- expected : true ,
425
+ expected : true ,
426
+ registered : true ,
395
427
},
396
428
{
397
429
name : "Invalid dependency - negative timeout" ,
@@ -400,21 +432,24 @@ func TestVerifyDependency(t *testing.T) {
400
432
Method : "TestMethod" ,
401
433
Timeout : Duration (- 1 ),
402
434
},
403
- expected : false ,
435
+ expected : false ,
436
+ registered : true ,
404
437
},
405
438
{
406
439
name : "Invalid dependency - missing name" ,
407
440
input : Dependency {
408
441
Method : "TestMethod" ,
409
442
},
410
- expected : false ,
443
+ expected : false ,
444
+ registered : true ,
411
445
},
412
446
{
413
447
name : "Invalid dependency - missing method" ,
414
448
input : Dependency {
415
449
Name : "test-dependency" ,
416
450
},
417
- expected : false ,
451
+ expected : false ,
452
+ registered : true ,
418
453
},
419
454
{
420
455
name : "Invalid dependency - both name and method missing" ,
@@ -423,11 +458,24 @@ func TestVerifyDependency(t *testing.T) {
423
458
"param1" : "value1" ,
424
459
},
425
460
},
426
- expected : false ,
461
+ expected : false ,
462
+ registered : true ,
463
+ },
464
+ {
465
+ name : "Invalid dependency - method not registered" ,
466
+ input : Dependency {
467
+ Name : "test-dependency" ,
468
+ Method : "UnregisteredMethod" ,
469
+ },
470
+ expected : false ,
471
+ registered : false ,
427
472
},
428
473
} {
429
474
t .Run (test .name , func (t * testing.T ) {
430
475
v := NewConfigValidator ("" , & Config {})
476
+ if test .registered {
477
+ RegisteredDependencies [test .input .Method ] = true
478
+ }
431
479
got := isValid (v .validateDependency (& test .input , field .NewPath ("" )))
432
480
if test .expected != got {
433
481
t .Errorf ("wanted: %v, got: %v" , test .expected , got )
@@ -490,6 +538,11 @@ func TestVerifyStep(t *testing.T) {
490
538
} {
491
539
t .Run (test .name , func (t * testing.T ) {
492
540
v := NewConfigValidator ("" , & Config {})
541
+ if len (test .input .Measurements ) > 0 {
542
+ for _ , m := range test .input .Measurements {
543
+ RegisteredMeasurements [m .Method ] = true
544
+ }
545
+ }
493
546
got := isValid (v .validateStep (& test .input , field .NewPath ("" )))
494
547
if test .expected != got {
495
548
t .Errorf ("wanted: %v, got: %v" , test .expected , got )
0 commit comments