-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathgroup_test.go
64 lines (53 loc) · 1.23 KB
/
group_test.go
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
package bon
import (
"net/http"
"testing"
)
func TestGroupRouting1(t *testing.T) {
r := NewRouter()
users := r.Group("/users/:name")
users.Get("/:age", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("name=" + URLParam(r, "name") + ", age=" + URLParam(r, "age")))
})
if err := Verify(r,
[]*Want{
{"/users/aaa/24", 200, "name=aaa, age=24"},
{"/users/bbb/23", 200, "name=bbb, age=23"},
},
); err != nil {
t.Fatal(err)
}
}
func TestGroupMiddleware(t *testing.T) {
r := NewRouter()
a := r.Group("/a")
a.Use(WriteMiddleware("MA"))
a.Get("/a", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("a"))
})
aa := a.Group("/a")
aa.Use(WriteMiddleware("MAA"))
aa.Get("/a", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("aa"))
})
r.Use(WriteMiddleware("M"))
b := r.Group("/b")
b.Use(WriteMiddleware("MB"))
b.Get("/b", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("b"))
})
c := r.Group("/c")
c.Get("/c", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("c"))
})
if err := Verify(r,
[]*Want{
{"/a/a", 200, "MAa"},
{"/a/a/a", 200, "MAMAAaa"},
{"/b/b", 200, "MMBb"},
{"/c/c", 200, "Mc"},
},
); err != nil {
t.Fatal(err)
}
}