diff --git a/controller/northbound/server/utils_test.go b/controller/northbound/server/utils_test.go index d86de701bf8e6c97d960497b6c8e42f8aeb6c268..7a4636caabf0f8d66d6e36383e59026d2f376315 100644 --- a/controller/northbound/server/utils_test.go +++ b/controller/northbound/server/utils_test.go @@ -9,7 +9,7 @@ import ( func contains(array []*validate.Violation, err *validate.Violation) bool { for _, v := range array { - if *v.FieldPath == *err.FieldPath && *v.ConstraintId == *err.ConstraintId && *v.Message == *err.Message { + if isEqualFieldPaths(v.Field, err.Field) && *v.ConstraintId == *err.ConstraintId && *v.Message == *err.Message { return true } } @@ -17,6 +17,20 @@ func contains(array []*validate.Violation, err *validate.Violation) bool { return false } +func isEqualFieldPaths(violationFieldPath, errFieldPath *validate.FieldPath) bool { + if len(violationFieldPath.GetElements()) != len(errFieldPath.GetElements()) { + return false + } + + for i, elem := range violationFieldPath.GetElements() { + if elem != errFieldPath.GetElements()[i] { + return false + } + } + + return true +} + func assertValidationErrors(t *testing.T, err error, expectedValidationErrors []*validate.Violation) { st := status.Convert(err) errDetails := st.Details()