summaryrefslogtreecommitdiff
path: root/service/http/response_test.go
blob: 157333a1e4865b677ad71c54822185d33fb6c3b1 (plain)
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))
//}