mirror of
https://github.com/kataras/iris.git
synced 2025-02-02 23:40:35 +01:00
add an example (and a test case) for same route path pattern but different macro function's input argument
Former-commit-id: f20ac838a08473b6b8114b407cb0dcde7765f634
This commit is contained in:
parent
85fc0f5dab
commit
beb3f730a0
|
@ -0,0 +1,33 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "github.com/kataras/iris/v12"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
app := newApp()
|
||||||
|
app.Logger().SetLevel("debug")
|
||||||
|
app.Listen(":8080")
|
||||||
|
}
|
||||||
|
|
||||||
|
func newApp() *iris.Application {
|
||||||
|
app := iris.New()
|
||||||
|
|
||||||
|
app.HandleMany(iris.MethodGet, "/ /api/{page:string suffix(.html)}", handler1)
|
||||||
|
app.Get("/api/{name:string suffix(.zip)}", handler2)
|
||||||
|
|
||||||
|
return app
|
||||||
|
}
|
||||||
|
|
||||||
|
func handler1(ctx iris.Context) {
|
||||||
|
reply(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
func handler2(ctx iris.Context) {
|
||||||
|
reply(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
func reply(ctx iris.Context) {
|
||||||
|
ctx.JSON(iris.Map{
|
||||||
|
"handler": ctx.HandlerName(),
|
||||||
|
"params": ctx.Params().Store,
|
||||||
|
})
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/kataras/iris/v12/core/memstore"
|
||||||
|
"github.com/kataras/iris/v12/httptest"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSameParameterTypeDifferentMacroFunctions(t *testing.T) {
|
||||||
|
app := newApp()
|
||||||
|
e := httptest.New(t, app)
|
||||||
|
|
||||||
|
type resp struct {
|
||||||
|
Handler string `json:"handler"`
|
||||||
|
Params memstore.Store `json:"params"`
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
expectedIndex = resp{
|
||||||
|
Handler: "iris/_examples/routing/dynamic-path/same-pattern-different-func.handler1",
|
||||||
|
Params: nil,
|
||||||
|
}
|
||||||
|
expectedHTMLPage = resp{
|
||||||
|
Handler: "iris/_examples/routing/dynamic-path/same-pattern-different-func.handler1",
|
||||||
|
Params: memstore.Store{
|
||||||
|
{Key: "page", ValueRaw: "random.html"},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
expectedZipName = resp{
|
||||||
|
Handler: "iris/_examples/routing/dynamic-path/same-pattern-different-func.handler2",
|
||||||
|
Params: memstore.Store{
|
||||||
|
{Key: "name", ValueRaw: "random.zip"},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
e.GET("/").Expect().Status(httptest.StatusOK).JSON().Equal(expectedIndex)
|
||||||
|
e.GET("/api/random.html").Expect().Status(httptest.StatusOK).JSON().Equal(expectedHTMLPage)
|
||||||
|
e.GET("/api/random.zip").Expect().Status(httptest.StatusOK).JSON().Equal(expectedZipName)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user