forked from mystiq/dex
31 lines
807 B
Go
31 lines
807 B
Go
|
package matchers
|
||
|
|
||
|
import (
|
||
|
"github.com/onsi/gomega/internal/oraclematcher"
|
||
|
"github.com/onsi/gomega/types"
|
||
|
)
|
||
|
|
||
|
type NotMatcher struct {
|
||
|
Matcher types.GomegaMatcher
|
||
|
}
|
||
|
|
||
|
func (m *NotMatcher) Match(actual interface{}) (bool, error) {
|
||
|
success, err := m.Matcher.Match(actual)
|
||
|
if err != nil {
|
||
|
return false, err
|
||
|
}
|
||
|
return !success, nil
|
||
|
}
|
||
|
|
||
|
func (m *NotMatcher) FailureMessage(actual interface{}) (message string) {
|
||
|
return m.Matcher.NegatedFailureMessage(actual) // works beautifully
|
||
|
}
|
||
|
|
||
|
func (m *NotMatcher) NegatedFailureMessage(actual interface{}) (message string) {
|
||
|
return m.Matcher.FailureMessage(actual) // works beautifully
|
||
|
}
|
||
|
|
||
|
func (m *NotMatcher) MatchMayChangeInTheFuture(actual interface{}) bool {
|
||
|
return oraclematcher.MatchMayChangeInTheFuture(m.Matcher, actual) // just return m.Matcher's value
|
||
|
}
|