1// Copyright 2014 Manu Martinez-Almeida. All rights reserved. 2// Use of this source code is governed by a MIT style 3// license that can be found in the LICENSE file. 4 5//go:build !nomsgpack 6// +build !nomsgpack 7 8package render 9 10import ( 11 "bytes" 12 "net/http/httptest" 13 "testing" 14 15 "github.com/stretchr/testify/assert" 16 "github.com/ugorji/go/codec" 17) 18 19// TODO unit tests 20// test errors 21 22func TestRenderMsgPack(t *testing.T) { 23 w := httptest.NewRecorder() 24 data := map[string]interface{}{ 25 "foo": "bar", 26 } 27 28 (MsgPack{data}).WriteContentType(w) 29 assert.Equal(t, "application/msgpack; charset=utf-8", w.Header().Get("Content-Type")) 30 31 err := (MsgPack{data}).Render(w) 32 33 assert.NoError(t, err) 34 35 h := new(codec.MsgpackHandle) 36 assert.NotNil(t, h) 37 buf := bytes.NewBuffer([]byte{}) 38 assert.NotNil(t, buf) 39 err = codec.NewEncoder(buf, h).Encode(data) 40 41 assert.NoError(t, err) 42 assert.Equal(t, w.Body.String(), string(buf.Bytes())) 43 assert.Equal(t, "application/msgpack; charset=utf-8", w.Header().Get("Content-Type")) 44} 45