2019-09-20 10:45:13 +00:00
// untested sections: 2
2019-05-31 09:45:11 +00:00
package matchers
import (
"fmt"
"runtime"
"github.com/onsi/gomega/format"
)
type BeIdenticalToMatcher struct {
Expected interface { }
}
func ( matcher * BeIdenticalToMatcher ) Match ( actual interface { } ) ( success bool , matchErr 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." )
}
defer func ( ) {
if r := recover ( ) ; r != nil {
if _ , ok := r . ( runtime . Error ) ; ok {
success = false
matchErr = nil
}
}
} ( )
return actual == matcher . Expected , nil
}
func ( matcher * BeIdenticalToMatcher ) FailureMessage ( actual interface { } ) string {
return format . Message ( actual , "to be identical to" , matcher . Expected )
}
func ( matcher * BeIdenticalToMatcher ) NegatedFailureMessage ( actual interface { } ) string {
return format . Message ( actual , "not to be identical to" , matcher . Expected )
}