(t *testing.T)
| 2378 | } |
| 2379 | |
| 2380 | func TestSQLValueValidation(t *testing.T) { |
| 2381 | validate := New() |
| 2382 | validate.RegisterCustomTypeFunc(ValidateValuerType, (*driver.Valuer)(nil), valuer{}) |
| 2383 | validate.RegisterCustomTypeFunc(ValidateCustomType, MadeUpCustomType{}) |
| 2384 | validate.RegisterCustomTypeFunc(OverrideIntTypeForSomeReason, 1) |
| 2385 | |
| 2386 | val := valuer{ |
| 2387 | Name: "", |
| 2388 | } |
| 2389 | |
| 2390 | errs := validate.Var(val, "required") |
| 2391 | NotEqual(t, errs, nil) |
| 2392 | AssertError(t, errs, "", "", "", "", "required") |
| 2393 | |
| 2394 | val.Name = "Valid Name" |
| 2395 | errs = validate.Var(val, "required") |
| 2396 | Equal(t, errs, nil) |
| 2397 | |
| 2398 | val.Name = "errorme" |
| 2399 | |
| 2400 | PanicMatches(t, func() { errs = validate.Var(val, "required") }, "SQL Driver Valuer error: some kind of error") |
| 2401 | |
| 2402 | myVal := valuer{ |
| 2403 | Name: "", |
| 2404 | } |
| 2405 | |
| 2406 | errs = validate.Var(myVal, "required") |
| 2407 | NotEqual(t, errs, nil) |
| 2408 | AssertError(t, errs, "", "", "", "", "required") |
| 2409 | |
| 2410 | cust := MadeUpCustomType{ |
| 2411 | FirstName: "Joey", |
| 2412 | LastName: "Bloggs", |
| 2413 | } |
| 2414 | |
| 2415 | c := CustomMadeUpStruct{MadeUp: cust, OverriddenInt: 2} |
| 2416 | |
| 2417 | errs = validate.Struct(c) |
| 2418 | Equal(t, errs, nil) |
| 2419 | |
| 2420 | c.MadeUp.FirstName = "" |
| 2421 | c.OverriddenInt = 1 |
| 2422 | |
| 2423 | errs = validate.Struct(c) |
| 2424 | NotEqual(t, errs, nil) |
| 2425 | Equal(t, len(errs.(ValidationErrors)), 2) |
| 2426 | AssertError(t, errs, "CustomMadeUpStruct.MadeUp", "CustomMadeUpStruct.MadeUp", "MadeUp", "MadeUp", "required") |
| 2427 | AssertError(t, errs, "CustomMadeUpStruct.OverriddenInt", "CustomMadeUpStruct.OverriddenInt", "OverriddenInt", "OverriddenInt", "gt") |
| 2428 | |
| 2429 | // Test for empty field on structs without tags |
| 2430 | type InvalidValuePanicSafetyTest struct { |
| 2431 | V valuer |
| 2432 | } |
| 2433 | errs = validate.Struct(InvalidValuePanicSafetyTest{}) |
| 2434 | Equal(t, errs, nil) |
| 2435 | } |
| 2436 | |
| 2437 | func TestMACValidation(t *testing.T) { |
nothing calls this directly
no test coverage detected
searching dependent graphs…