add EmptyRender and unregister render type test case and optimized code to pass codecov report

This commit is contained in:
Michael Li 2018-12-30 00:51:20 +08:00
parent f7f798f408
commit 585bde7dad
4 changed files with 24 additions and 9 deletions

View File

@ -19,21 +19,22 @@ func (EmptyRenderFactory) Instance() RenderRecycler {
}
// Render writes data with custom ContentType.
func (*EmptyRender) Render(http.ResponseWriter) error {
func (r *EmptyRender) Render(w http.ResponseWriter) error {
r.WriteContentType(w)
return fmt.Errorf("empty render,you need register one first")
}
// WriteContentType writes custom ContentType.
func (*EmptyRender) WriteContentType(w http.ResponseWriter) {
func (r *EmptyRender) WriteContentType(w http.ResponseWriter) {
// Empty
}
// Setup set data and opts
func (*EmptyRender) Setup(data interface{}, opts ...interface{}) {
func (r *EmptyRender) Setup(data interface{}, opts ...interface{}) {
// Empty
}
// Reset clean data and opts
func (*EmptyRender) Reset() {
func (r *EmptyRender) Reset() {
// Empty
}

View File

@ -168,11 +168,7 @@ func (r *SecureJSON) WriteContentType(w http.ResponseWriter) {
func (r *JsonpJSON) Setup(data interface{}, opts ...interface{}) {
r.Data = data
if len(opts) == 1 {
if callback, ok := opts[0].(string); ok {
r.Callback = callback
} else {
r.Callback = ""
}
r.Callback, _ = opts[0].(string)
}
}

View File

@ -22,6 +22,7 @@ const (
MsgPackRenderType // MsgPack Render Type
ProtoBufRenderType // ProtoBuf Render Type
EmptyRenderType // Empty Render Type
unknownRenderType // Unknown Render Type,just used for test
)
var (

View File

@ -25,6 +25,23 @@ import (
// TODO unit tests
// test errors
func TestRenderEmpty(t *testing.T) {
w := httptest.NewRecorder()
data := "empty data"
r := Default(EmptyRenderType)
r.Setup(data)
err := r.Render(w)
Recycle(EmptyRenderType, r)
assert.EqualError(t, err, "empty render,you need register one first")
}
// test not registered render type
func TestRenderUnknown(t *testing.T) {
r := Default(unknownRenderType)
_, ok := r.(*EmptyRender)
assert.True(t, ok)
}
func TestRenderMsgPack(t *testing.T) {
w := httptest.NewRecorder()
data := map[string]interface{}{