MCPcopy
hub / github.com/go-playground/validator / TestAnonymous

Function TestAnonymous

validator_test.go:468–533  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

466}
467
468func TestAnonymous(t *testing.T) {
469 validate := New()
470 validate.RegisterTagNameFunc(func(fld reflect.StructField) string {
471 name := strings.SplitN(fld.Tag.Get("json"), ",", 2)[0]
472
473 if name == "-" {
474 return ""
475 }
476
477 return name
478 })
479
480 type Test struct {
481 Anonymous struct {
482 A string `validate:"required" json:"EH"`
483 }
484 AnonymousB struct {
485 B string `validate:"required" json:"BEE"`
486 }
487 anonymousC struct {
488 c string `validate:"required"`
489 }
490 }
491
492 tst := &Test{
493 Anonymous: struct {
494 A string `validate:"required" json:"EH"`
495 }{
496 A: "1",
497 },
498 AnonymousB: struct {
499 B string `validate:"required" json:"BEE"`
500 }{
501 B: "",
502 },
503 anonymousC: struct {
504 c string `validate:"required"`
505 }{
506 c: "",
507 },
508 }
509
510 Equal(t, tst.anonymousC.c, "")
511
512 err := validate.Struct(tst)
513 NotEqual(t, err, nil)
514
515 errs := err.(ValidationErrors)
516
517 Equal(t, len(errs), 1)
518 AssertError(t, errs, "Test.AnonymousB.BEE", "Test.AnonymousB.B", "BEE", "B", "required")
519
520 fe := getError(errs, "Test.AnonymousB.BEE", "Test.AnonymousB.B")
521 NotEqual(t, fe, nil)
522 Equal(t, fe.Field(), "BEE")
523 Equal(t, fe.StructField(), "B")
524
525 s := struct {

Callers

nothing calls this directly

Calls 8

NewFunction · 0.85
AssertErrorFunction · 0.85
getErrorFunction · 0.85
RegisterTagNameFuncMethod · 0.80
StructMethod · 0.80
FieldMethod · 0.65
StructFieldMethod · 0.65
GetMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…