MCPcopy Create free account
hub / github.com/goadesign/goa / TestValidationErrors

Function TestValidationErrors

eval/eval_test.go:129–233  ·  view source on GitHub ↗

TestValidationErrors tests the ValidationErrors type methods

(t *testing.T)

Source from the content-addressed store, hash-verified

127
128// TestValidationErrors tests the ValidationErrors type methods
129func TestValidationErrors(t *testing.T) {
130 t.Run("Error", func(t *testing.T) {
131 // Test Error() method
132 expr1 := &mockExpr{}
133 expr2 := &mockExpr{}
134
135 verr := &eval.ValidationErrors{
136 Errors: []error{errors.New("error1"), errors.New("error2")},
137 Expressions: []eval.Expression{expr1, expr2},
138 }
139
140 errStr := verr.Error()
141 assert.Contains(t, errStr, "MockExpression: error1")
142 assert.Contains(t, errStr, "MockExpression: error2")
143 assert.Contains(t, errStr, "\n") // Should contain a newline between errors
144 })
145
146 t.Run("Merge", func(t *testing.T) {
147 // Test Merge() method
148 expr1 := &mockExpr{}
149 expr2 := &mockExpr{}
150 expr3 := &mockExpr{}
151
152 verr1 := &eval.ValidationErrors{
153 Errors: []error{errors.New("error1")},
154 Expressions: []eval.Expression{expr1},
155 }
156
157 verr2 := &eval.ValidationErrors{
158 Errors: []error{errors.New("error2"), errors.New("error3")},
159 Expressions: []eval.Expression{expr2, expr3},
160 }
161
162 // Test merging with nil
163 verrCopy := *verr1
164 verrCopy.Merge(nil)
165 assert.Equal(t, 1, len(verrCopy.Errors))
166 assert.Equal(t, 1, len(verrCopy.Expressions))
167
168 // Test merging with empty but non-nil ValidationErrors
169 verrCopy2 := *verr1
170 emptyVerr := &eval.ValidationErrors{}
171 verrCopy2.Merge(emptyVerr)
172 assert.Equal(t, 1, len(verrCopy2.Errors), "Merging with empty ValidationErrors should not change the error count")
173 assert.Equal(t, 1, len(verrCopy2.Expressions), "Merging with empty ValidationErrors should not change the expression count")
174
175 // Test normal merge
176 verr1.Merge(verr2)
177 assert.Equal(t, 3, len(verr1.Errors))
178 assert.Equal(t, 3, len(verr1.Expressions))
179 assert.Equal(t, expr1, verr1.Expressions[0])
180 assert.Equal(t, expr2, verr1.Expressions[1])
181 assert.Equal(t, expr3, verr1.Expressions[2])
182 })
183
184 t.Run("Add", func(t *testing.T) {
185 // Test Add() method
186 expr1 := &mockExpr{}

Callers

nothing calls this directly

Calls 6

ErrorMethod · 0.95
MergeMethod · 0.95
AddMethod · 0.95
AddErrorMethod · 0.95
RunMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected