// InternalNewExpectation is exported for purposes of testing only. You should // not touch it. func InternalNewExpectation( reporter ErrorReporter, methodSignature reflect.Type, args []interface{}, fileName string, lineNumber int) *InternalExpectation { result := &InternalExpectation{} // Store fields that can be stored directly. result.methodSignature = methodSignature result.errorReporter = reporter result.FileName = fileName result.LineNumber = lineNumber // Set up defaults. result.ExpectedNumMatches = -1 result.OneTimeActions = make([]Action, 0) // Set up the ArgMatchers slice, using Equals(x) for each x that is not a // matcher itself. result.ArgMatchers = make([]oglematchers.Matcher, len(args)) for i, x := range args { if matcher, ok := x.(oglematchers.Matcher); ok { result.ArgMatchers[i] = matcher } else { result.ArgMatchers[i] = oglematchers.Equals(x) } } return result }
func shouldEqual(actual, expected interface{}) (message string) { defer func() { if r := recover(); r != nil { message = serializer.serialize(expected, actual, fmt.Sprintf(shouldHaveBeenEqual, expected, actual)) return } }() if matchError := oglematchers.Equals(expected).Matches(actual); matchError != nil { message = serializer.serialize(expected, actual, fmt.Sprintf(shouldHaveBeenEqual, expected, actual)) return } return success }