| package govalidator |
| |
| import ( |
| "fmt" |
| "testing" |
| ) |
| |
| func TestErrorsToString(t *testing.T) { |
| t.Parallel() |
| customErr := &Error{Name: "Custom Error Name", Err: fmt.Errorf("stdlib error")} |
| customErrWithCustomErrorMessage := &Error{Name: "Custom Error Name 2", Err: fmt.Errorf("Bad stuff happened"), CustomErrorMessageExists: true} |
| |
| var tests = []struct { |
| param1 Errors |
| expected string |
| }{ |
| {Errors{}, ""}, |
| {Errors{fmt.Errorf("Error 1")}, "Error 1"}, |
| {Errors{fmt.Errorf("Error 1"), fmt.Errorf("Error 2")}, "Error 1;Error 2"}, |
| {Errors{customErr, fmt.Errorf("Error 2")}, "Custom Error Name: stdlib error;Error 2"}, |
| {Errors{fmt.Errorf("Error 123"), customErrWithCustomErrorMessage}, "Bad stuff happened;Error 123"}, |
| } |
| for _, test := range tests { |
| actual := test.param1.Error() |
| if actual != test.expected { |
| t.Errorf("Expected Error() to return '%v', got '%v'", test.expected, actual) |
| } |
| } |
| } |