From 01925e342a8819294fccd13699820dc67c129190 Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Sat, 6 Aug 2016 14:09:18 -0400 Subject: [PATCH] regain 100% test coverage --- validator_test.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/validator_test.go b/validator_test.go index 11817c6..b6fb08c 100644 --- a/validator_test.go +++ b/validator_test.go @@ -2933,6 +2933,39 @@ func TestMapDiveValidation(t *testing.T) { errs = validate.Struct(msp2) Equal(t, errs, nil) + + v2 := New() + v2.RegisterTagNameFunc(func(fld reflect.StructField) string { + name := strings.SplitN(fld.Tag.Get("json"), ",", 2)[0] + + if name == "-" { + return "" + } + + return name + }) + + type MapDiveJsonTest struct { + Map map[string]string `validate:"required,gte=1,dive,gte=1" json:"MyName"` + } + + mdjt := &MapDiveJsonTest{ + Map: map[string]string{ + "Key1": "Value1", + "Key2": "", + }, + } + + err := v2.Struct(mdjt) + NotEqual(t, err, nil) + + errs = err.(ValidationErrors) + fe := getError(errs, "MapDiveJsonTest.MyName[Key2]", "MapDiveJsonTest.Map[Key2]") + NotEqual(t, fe, nil) + Equal(t, fe.Tag(), "gte") + Equal(t, fe.ActualTag(), "gte") + Equal(t, fe.Field(), "MyName[Key2]") + Equal(t, fe.StructField(), "Map[Key2]") } func TestArrayDiveValidation(t *testing.T) {