initial commit
[govpp.git] / vendor / github.com / onsi / gomega / matchers / equal_matcher.go
diff --git a/vendor/github.com/onsi/gomega/matchers/equal_matcher.go b/vendor/github.com/onsi/gomega/matchers/equal_matcher.go
new file mode 100644 (file)
index 0000000..874e6a6
--- /dev/null
@@ -0,0 +1,33 @@
+package matchers
+
+import (
+       "fmt"
+       "reflect"
+
+       "github.com/onsi/gomega/format"
+)
+
+type EqualMatcher struct {
+       Expected interface{}
+}
+
+func (matcher *EqualMatcher) Match(actual interface{}) (success bool, err error) {
+       if actual == nil && matcher.Expected == nil {
+               return false, fmt.Errorf("Refusing to compare <nil> to <nil>.\nBe explicit and use BeNil() instead.  This is to avoid mistakes where both sides of an assertion are erroneously uninitialized.")
+       }
+       return reflect.DeepEqual(actual, matcher.Expected), nil
+}
+
+func (matcher *EqualMatcher) FailureMessage(actual interface{}) (message string) {
+       actualString, actualOK := actual.(string)
+       expectedString, expectedOK := matcher.Expected.(string)
+       if actualOK && expectedOK {
+               return format.MessageWithDiff(actualString, "to equal", expectedString)
+       }
+
+       return format.Message(actual, "to equal", matcher.Expected)
+}
+
+func (matcher *EqualMatcher) NegatedFailureMessage(actual interface{}) (message string) {
+       return format.Message(actual, "not to equal", matcher.Expected)
+}