@@ -20,90 +20,10 @@ import (
20
20
"time"
21
21
22
22
"github.com/candango/gopeasant/dummy"
23
- "github.com/candango/gopeasant /testrunner"
23
+ "github.com/candango/httpok /testrunner"
24
24
"github.com/stretchr/testify/assert"
25
25
)
26
26
27
- type PlainHandler struct {
28
- http.Handler
29
- }
30
-
31
- func (h * PlainHandler ) GetSomething (w http.ResponseWriter , r * http.Request ) {
32
- w .Write ([]byte ("Something" ))
33
- }
34
-
35
- func (h * PlainHandler ) GetSomethingElse (w http.ResponseWriter , r * http.Request ) {
36
- w .Write ([]byte ("Something else" ))
37
- }
38
-
39
- func NewPlainServeMux () http.Handler {
40
- plain := & PlainHandler {}
41
- h := http .NewServeMux ()
42
- h .HandleFunc ("/something" , plain .GetSomething )
43
- h .HandleFunc ("/something_else" , plain .GetSomethingElse )
44
- return h
45
- }
46
-
47
- func TestChainMiddlewareServer (t * testing.T ) {
48
- plain := NewPlainServeMux ()
49
-
50
- runner := testrunner .NewHttpTestRunner (t ).WithHandler (plain )
51
-
52
- t .Run ("Plain runner" , func (t * testing.T ) {
53
- res , err := runner .WithPath ("/something" ).Get ()
54
- if err != nil {
55
- t .Error (err )
56
- }
57
- assert .Equal (t , "200 OK" , res .Status )
58
- assert .Equal (t , "Something" , testrunner .BodyAsString (t , res ))
59
-
60
- res , err = runner .WithPath ("/something_else" ).Get ()
61
- if err != nil {
62
- t .Error (err )
63
- }
64
- assert .Equal (t , "200 OK" , res .Status )
65
- assert .Equal (t , "Something else" , testrunner .BodyAsString (t , res ))
66
- })
67
-
68
- changeSomething := func (next http.Handler ) http.Handler {
69
- return http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
70
- if r .URL .String () == "/something" {
71
- w .Write ([]byte ("First Middleware with " ))
72
- }
73
- next .ServeHTTP (w , r )
74
- })
75
- }
76
-
77
- blockSomethingElse := func (next http.Handler ) http.Handler {
78
- return http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
79
- if r .URL .String () == "/something_else" {
80
- http .Error (w , "Not allowed" , http .StatusMethodNotAllowed )
81
- return
82
- }
83
- next .ServeHTTP (w , r )
84
- })
85
- }
86
-
87
- chain := Chain (plain , changeSomething , blockSomethingElse )
88
- runner = testrunner .NewHttpTestRunner (t ).WithHandler (chain )
89
-
90
- t .Run ("Chained runner" , func (t * testing.T ) {
91
- res , err := runner .WithPath ("/something" ).Get ()
92
- if err != nil {
93
- t .Error (err )
94
- }
95
- assert .Equal (t , "200 OK" , res .Status )
96
- assert .Equal (t , "First Middleware with Something" , testrunner .BodyAsString (t , res ))
97
-
98
- res , err = runner .WithPath ("/something_else" ).Get ()
99
- if err != nil {
100
- t .Error (err )
101
- }
102
- assert .Equal (t , "405 Method Not Allowed" , res .Status )
103
- assert .Equal (t , "Not allowed\n " , testrunner .BodyAsString (t , res ))
104
- })
105
- }
106
-
107
27
func NewNoncedServeMux (t * testing.T ) http.Handler {
108
28
s := dummy .NewDummyInMemoryNonceService ()
109
29
nonced := NewNoncedHandler (s )
0 commit comments