...
1 package matchers
2
3 import (
4 "errors"
5 "fmt"
6
7 "github.com/onsi/gomega/format"
8 )
9
10 type HaveExistingFieldMatcher struct {
11 Field string
12 }
13
14 func (matcher *HaveExistingFieldMatcher) Match(actual interface{}) (success bool, err error) {
15
16
17 _, err = extractField(actual, matcher.Field, "HaveExistingField")
18 if err == nil {
19 return true, nil
20 }
21 var mferr missingFieldError
22 if errors.As(err, &mferr) {
23
24
25 return false, nil
26 }
27 return false, err
28 }
29
30 func (matcher *HaveExistingFieldMatcher) FailureMessage(actual interface{}) (message string) {
31 return fmt.Sprintf("Expected\n%s\nto have field '%s'", format.Object(actual, 1), matcher.Field)
32 }
33
34 func (matcher *HaveExistingFieldMatcher) NegatedFailureMessage(actual interface{}) (message string) {
35 return fmt.Sprintf("Expected\n%s\nnot to have field '%s'", format.Object(actual, 1), matcher.Field)
36 }
37
View as plain text