summaryrefslogtreecommitdiff
path: root/vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go')
-rw-r--r--vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go22
1 files changed, 13 insertions, 9 deletions
diff --git a/vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go b/vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go
index 4159335d0..8d6c44c7a 100644
--- a/vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go
+++ b/vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go
@@ -1,3 +1,5 @@
+// untested sections: 2
+
package matchers
import (
@@ -22,19 +24,21 @@ func (matcher *ContainElementMatcher) Match(actual interface{}) (success bool, e
}
value := reflect.ValueOf(actual)
- var keys []reflect.Value
+ var valueAt func(int) interface{}
if isMap(actual) {
- keys = value.MapKeys()
+ keys := value.MapKeys()
+ valueAt = func(i int) interface{} {
+ return value.MapIndex(keys[i]).Interface()
+ }
+ } else {
+ valueAt = func(i int) interface{} {
+ return value.Index(i).Interface()
+ }
}
+
var lastError error
for i := 0; i < value.Len(); i++ {
- var success bool
- var err error
- if isMap(actual) {
- success, err = elemMatcher.Match(value.MapIndex(keys[i]).Interface())
- } else {
- success, err = elemMatcher.Match(value.Index(i).Interface())
- }
+ success, err := elemMatcher.Match(valueAt(i))
if err != nil {
lastError = err
continue