summaryrefslogtreecommitdiff
path: root/service/http/response_test.go
diff options
context:
space:
mode:
authorWolfy-J <[email protected]>2018-06-12 18:30:54 +0300
committerWolfy-J <[email protected]>2018-06-12 18:30:54 +0300
commit9980f8a1a4f8c2aebd8e40a8e892bda4bf734eb0 (patch)
tree6c6956e96498b8ba0fe78014117ee15fcbf5db07 /service/http/response_test.go
parent592bda7d2b2c58ce466979e567158202f07bda7e (diff)
tests!
Diffstat (limited to 'service/http/response_test.go')
-rw-r--r--service/http/response_test.go172
1 files changed, 90 insertions, 82 deletions
diff --git a/service/http/response_test.go b/service/http/response_test.go
index 157333a1..e45f5349 100644
--- a/service/http/response_test.go
+++ b/service/http/response_test.go
@@ -1,84 +1,92 @@
package http
-//
-//type testWriter struct {
-// h http.Header
-// buf bytes.Buffer
-// wroteHeader bool
-// code int
-// err error
-//}
-//
-//func (tw *testWriter) Header() http.Header { return tw.h }
-//
-//func (tw *testWriter) Write(p []byte) (int, error) {
-// if !tw.wroteHeader {
-// tw.WriteHeader(http.StatusOK)
-// }
-//
-// n, e := tw.buf.Write(p)
-// if e == nil {
-// e = tw.err
-// }
-//
-// return n, e
-//}
-//
-//func (tw *testWriter) WriteHeader(code int) { tw.wroteHeader = true; tw.code = code }
-//
-//func TestNewResponse_Error(t *testing.T) {
-// r, err := NewResponse(&roadrunner.Payload{Context: []byte(`invalid payload`)})
-// assert.Error(t, err)
-// assert.Nil(t, r)
-//}
-//
-//func TestNewResponse_Write(t *testing.T) {
-// r, err := NewResponse(&roadrunner.Payload{
-// Context: []byte(`{"headers":{"key":["value"]},"status": 301}`),
-// Body: []byte(`sample body`),
-// })
-//
-// assert.NoError(t, err)
-// assert.NotNil(t, r)
-//
-// w := &testWriter{h: http.Header(make(map[string][]string))}
-// assert.NoError(t, r.Write(w))
-//
-// assert.Equal(t, 301, w.code)
-// assert.Equal(t, "value", w.h.Get("key"))
-// assert.Equal(t, "sample body", w.buf.String())
-//}
-//
-//func TestNewResponse_Stream(t *testing.T) {
-// r, err := NewResponse(&roadrunner.Payload{
-// Context: []byte(`{"headers":{"key":["value"]},"status": 301}`),
-// })
-//
-// r.body = &bytes.Buffer{}
-// r.body.(*bytes.Buffer).WriteString("hello world")
-//
-// assert.NoError(t, err)
-// assert.NotNil(t, r)
-//
-// w := &testWriter{h: http.Header(make(map[string][]string))}
-// assert.NoError(t, r.Write(w))
-//
-// assert.Equal(t, 301, w.code)
-// assert.Equal(t, "value", w.h.Get("key"))
-// assert.Equal(t, "hello world", w.buf.String())
-//}
-//
-//func TestNewResponse_StreamError(t *testing.T) {
-// r, err := NewResponse(&roadrunner.Payload{
-// Context: []byte(`{"headers":{"key":["value"]},"status": 301}`),
-// })
-//
-// r.body = &bytes.Buffer{}
-// r.body.(*bytes.Buffer).WriteString("hello world")
-//
-// assert.NoError(t, err)
-// assert.NotNil(t, r)
-//
-// w := &testWriter{h: http.Header(make(map[string][]string)), err: errors.New("error")}
-// assert.Error(t, r.Write(w))
-//}
+import (
+ "net/http"
+ "bytes"
+ "testing"
+ "github.com/spiral/roadrunner"
+ "github.com/stretchr/testify/assert"
+ "errors"
+)
+
+type testWriter struct {
+ h http.Header
+ buf bytes.Buffer
+ wroteHeader bool
+ code int
+ err error
+}
+
+func (tw *testWriter) Header() http.Header { return tw.h }
+
+func (tw *testWriter) Write(p []byte) (int, error) {
+ if !tw.wroteHeader {
+ tw.WriteHeader(http.StatusOK)
+ }
+
+ n, e := tw.buf.Write(p)
+ if e == nil {
+ e = tw.err
+ }
+
+ return n, e
+}
+
+func (tw *testWriter) WriteHeader(code int) { tw.wroteHeader = true; tw.code = code }
+
+func TestNewResponse_Error(t *testing.T) {
+ r, err := NewResponse(&roadrunner.Payload{Context: []byte(`invalid payload`)})
+ assert.Error(t, err)
+ assert.Nil(t, r)
+}
+
+func TestNewResponse_Write(t *testing.T) {
+ r, err := NewResponse(&roadrunner.Payload{
+ Context: []byte(`{"headers":{"key":["value"]},"status": 301}`),
+ Body: []byte(`sample body`),
+ })
+
+ assert.NoError(t, err)
+ assert.NotNil(t, r)
+
+ w := &testWriter{h: http.Header(make(map[string][]string))}
+ assert.NoError(t, r.Write(w))
+
+ assert.Equal(t, 301, w.code)
+ assert.Equal(t, "value", w.h.Get("key"))
+ assert.Equal(t, "sample body", w.buf.String())
+}
+
+func TestNewResponse_Stream(t *testing.T) {
+ r, err := NewResponse(&roadrunner.Payload{
+ Context: []byte(`{"headers":{"key":["value"]},"status": 301}`),
+ })
+
+ r.body = &bytes.Buffer{}
+ r.body.(*bytes.Buffer).WriteString("hello world")
+
+ assert.NoError(t, err)
+ assert.NotNil(t, r)
+
+ w := &testWriter{h: http.Header(make(map[string][]string))}
+ assert.NoError(t, r.Write(w))
+
+ assert.Equal(t, 301, w.code)
+ assert.Equal(t, "value", w.h.Get("key"))
+ assert.Equal(t, "hello world", w.buf.String())
+}
+
+func TestNewResponse_StreamError(t *testing.T) {
+ r, err := NewResponse(&roadrunner.Payload{
+ Context: []byte(`{"headers":{"key":["value"]},"status": 301}`),
+ })
+
+ r.body = &bytes.Buffer{}
+ r.body.(*bytes.Buffer).WriteString("hello world")
+
+ assert.NoError(t, err)
+ assert.NotNil(t, r)
+
+ w := &testWriter{h: http.Header(make(map[string][]string)), err: errors.New("error")}
+ assert.Error(t, r.Write(w))
+}