| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | package assertionsimport (	"encoding/json"	"fmt"	"github.com/smartystreets/assertions/internal/go-render/render")type Serializer interface {	serialize(expected, actual interface{}, message string) string	serializeDetailed(expected, actual interface{}, message string) string}type failureSerializer struct{}func (self *failureSerializer) serializeDetailed(expected, actual interface{}, message string) string {	view := FailureView{		Message:  message,		Expected: render.Render(expected),		Actual:   render.Render(actual),	}	serialized, err := json.Marshal(view)	if err != nil {		return message	}	return string(serialized)}func (self *failureSerializer) serialize(expected, actual interface{}, message string) string {	view := FailureView{		Message:  message,		Expected: fmt.Sprintf("%+v", expected),		Actual:   fmt.Sprintf("%+v", actual),	}	serialized, err := json.Marshal(view)	if err != nil {		return message	}	return string(serialized)}func newSerializer() *failureSerializer {	return &failureSerializer{}}///////////////////////////////////////////////////////////////////////////////// This struct is also declared in github.com/smartystreets/goconvey/convey/reporting.// The json struct tags should be equal in both declarations.type FailureView struct {	Message  string `json:"Message"`	Expected string `json:"Expected"`	Actual   string `json:"Actual"`}///////////////////////////////////////////////////////// noopSerializer just gives back the original message. This is useful when we are using// the assertions from a context other than the web UI, that requires the JSON structure// provided by the failureSerializer.type noopSerializer struct{}func (self *noopSerializer) serialize(expected, actual interface{}, message string) string {	return message}func (self *noopSerializer) serializeDetailed(expected, actual interface{}, message string) string {	return message}
 |