1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
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))
//}
|