|
@@ -33,7 +33,48 @@ func emptyHandler(name string) macaron.Handler {
|
|
|
return struct{ name string }{name: name}
|
|
return struct{ name string }{name: name}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func TestRouteRegister(t *testing.T) {
|
|
|
|
|
|
|
+func TestRouteSimpleRegister(t *testing.T) {
|
|
|
|
|
+ testTable := []route{
|
|
|
|
|
+ {method: "DELETE", pattern: "/admin", handlers: emptyHandlers(2)},
|
|
|
|
|
+ {method: "GET", pattern: "/down", handlers: emptyHandlers(3)},
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Setup
|
|
|
|
|
+ rr := newRouteRegister(func(name string) macaron.Handler {
|
|
|
|
|
+ return emptyHandler(name)
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ rr.Delete("/admin", emptyHandler("1"))
|
|
|
|
|
+ rr.Get("/down", emptyHandler("1"), emptyHandler("2"))
|
|
|
|
|
+
|
|
|
|
|
+ fr := &fakeRouter{}
|
|
|
|
|
+ rr.Register(fr)
|
|
|
|
|
+
|
|
|
|
|
+ // Validation
|
|
|
|
|
+ if len(fr.route) != len(testTable) {
|
|
|
|
|
+ t.Errorf("want %v routes, got %v", len(testTable), len(fr.route))
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for i, _ := range testTable {
|
|
|
|
|
+ if testTable[i].method != fr.route[i].method {
|
|
|
|
|
+ t.Errorf("want %s got %v", testTable[i].method, fr.route[i].method)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if testTable[i].pattern != fr.route[i].pattern {
|
|
|
|
|
+ t.Errorf("want %s got %v", testTable[i].pattern, fr.route[i].pattern)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if len(testTable[i].handlers) != len(fr.route[i].handlers) {
|
|
|
|
|
+ t.Errorf("want %d handlers got %d handlers \ntestcase: %v\nroute: %v\n",
|
|
|
|
|
+ len(testTable[i].handlers),
|
|
|
|
|
+ len(fr.route[i].handlers),
|
|
|
|
|
+ testTable[i],
|
|
|
|
|
+ fr.route[i])
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func TestRouteGroupedRegister(t *testing.T) {
|
|
|
testTable := []route{
|
|
testTable := []route{
|
|
|
{method: "DELETE", pattern: "/admin", handlers: emptyHandlers(1)},
|
|
{method: "DELETE", pattern: "/admin", handlers: emptyHandlers(1)},
|
|
|
{method: "GET", pattern: "/down", handlers: emptyHandlers(2)},
|
|
{method: "GET", pattern: "/down", handlers: emptyHandlers(2)},
|
|
@@ -86,3 +127,59 @@ func TestRouteRegister(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+func TestNamedMiddlewareRouteRegister(t *testing.T) {
|
|
|
|
|
+ testTable := []route{
|
|
|
|
|
+ {method: "DELETE", pattern: "/admin", handlers: emptyHandlers(2)},
|
|
|
|
|
+ {method: "GET", pattern: "/down", handlers: emptyHandlers(3)},
|
|
|
|
|
+ {method: "POST", pattern: "/user", handlers: emptyHandlers(2)},
|
|
|
|
|
+ {method: "PUT", pattern: "/user/friends", handlers: emptyHandlers(2)},
|
|
|
|
|
+ {method: "DELETE", pattern: "/user/admin", handlers: emptyHandlers(3)},
|
|
|
|
|
+ {method: "GET", pattern: "/user/admin/all", handlers: emptyHandlers(5)},
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Setup
|
|
|
|
|
+ rr := newRouteRegister(func(name string) macaron.Handler {
|
|
|
|
|
+ return emptyHandler(name)
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ rr.Delete("/admin", emptyHandler("1"))
|
|
|
|
|
+ rr.Get("/down", emptyHandler("1"), emptyHandler("2"))
|
|
|
|
|
+
|
|
|
|
|
+ rr.Group("/user", func(user RouteRegister) {
|
|
|
|
|
+ user.Post("", emptyHandler("1"))
|
|
|
|
|
+ user.Put("/friends", emptyHandler("2"))
|
|
|
|
|
+
|
|
|
|
|
+ user.Group("/admin", func(admin RouteRegister) {
|
|
|
|
|
+ admin.Delete("", emptyHandler("3"))
|
|
|
|
|
+ admin.Get("/all", emptyHandler("3"), emptyHandler("4"), emptyHandler("5"))
|
|
|
|
|
+
|
|
|
|
|
+ }, emptyHandler("3"))
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
|
|
+ fr := &fakeRouter{}
|
|
|
|
|
+ rr.Register(fr)
|
|
|
|
|
+
|
|
|
|
|
+ // Validation
|
|
|
|
|
+ if len(fr.route) != len(testTable) {
|
|
|
|
|
+ t.Errorf("want %v routes, got %v", len(testTable), len(fr.route))
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for i, _ := range testTable {
|
|
|
|
|
+ if testTable[i].method != fr.route[i].method {
|
|
|
|
|
+ t.Errorf("want %s got %v", testTable[i].method, fr.route[i].method)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if testTable[i].pattern != fr.route[i].pattern {
|
|
|
|
|
+ t.Errorf("want %s got %v", testTable[i].pattern, fr.route[i].pattern)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if len(testTable[i].handlers) != len(fr.route[i].handlers) {
|
|
|
|
|
+ t.Errorf("want %d handlers got %d handlers \ntestcase: %v\nroute: %v\n",
|
|
|
|
|
+ len(testTable[i].handlers),
|
|
|
|
|
+ len(fr.route[i].handlers),
|
|
|
|
|
+ testTable[i],
|
|
|
|
|
+ fr.route[i])
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|