mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.9 KiB
69 lines
1.9 KiB
package assertions |
|
|
|
import ( |
|
"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 |
|
}
|
|
|