mirror of
https://github.com/kataras/iris.git
synced 2025-02-02 15:30:36 +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