vendor: Mega update all dependencies
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4080
This commit is contained in:
56
vendor/github.com/onsi/gomega/gstruct/pointer.go
generated
vendored
Normal file
56
vendor/github.com/onsi/gomega/gstruct/pointer.go
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
package gstruct
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
|
||||
"github.com/onsi/gomega/format"
|
||||
"github.com/onsi/gomega/types"
|
||||
)
|
||||
|
||||
//PointTo applies the given matcher to the value pointed to by actual. It fails if the pointer is
|
||||
//nil.
|
||||
// actual := 5
|
||||
// Expect(&actual).To(PointTo(Equal(5)))
|
||||
func PointTo(matcher types.GomegaMatcher) types.GomegaMatcher {
|
||||
return &PointerMatcher{
|
||||
Matcher: matcher,
|
||||
}
|
||||
}
|
||||
|
||||
type PointerMatcher struct {
|
||||
Matcher types.GomegaMatcher
|
||||
|
||||
// Failure message.
|
||||
failure string
|
||||
}
|
||||
|
||||
func (m *PointerMatcher) Match(actual interface{}) (bool, error) {
|
||||
val := reflect.ValueOf(actual)
|
||||
|
||||
// return error if actual type is not a pointer
|
||||
if val.Kind() != reflect.Ptr {
|
||||
return false, fmt.Errorf("PointerMatcher expects a pointer but we have '%s'", val.Kind())
|
||||
}
|
||||
|
||||
if !val.IsValid() || val.IsNil() {
|
||||
m.failure = format.Message(actual, "not to be <nil>")
|
||||
return false, nil
|
||||
}
|
||||
|
||||
// Forward the value.
|
||||
elem := val.Elem().Interface()
|
||||
match, err := m.Matcher.Match(elem)
|
||||
if !match {
|
||||
m.failure = m.Matcher.FailureMessage(elem)
|
||||
}
|
||||
return match, err
|
||||
}
|
||||
|
||||
func (m *PointerMatcher) FailureMessage(_ interface{}) (message string) {
|
||||
return m.failure
|
||||
}
|
||||
|
||||
func (m *PointerMatcher) NegatedFailureMessage(actual interface{}) (message string) {
|
||||
return m.Matcher.NegatedFailureMessage(actual)
|
||||
}
|
||||
Reference in New Issue
Block a user