|
|
@@ -290,8 +290,8 @@ func TestShouldBindUri(t *testing.T) {
|
|
|
router := Default()
|
|
|
|
|
|
type Person struct {
|
|
|
- Name string `uri:"name"`
|
|
|
- Id string `uri:"id"`
|
|
|
+ Name string `uri:"name" binding:"required"`
|
|
|
+ Id string `uri:"id" binding:"required"`
|
|
|
}
|
|
|
router.Handle("GET", "/rest/:name/:id", func(c *Context) {
|
|
|
var person Person
|
|
|
@@ -304,6 +304,46 @@ func TestShouldBindUri(t *testing.T) {
|
|
|
path, _ := exampleFromPath("/rest/:name/:id")
|
|
|
w := performRequest(router, "GET", path)
|
|
|
assert.Equal(t, "ShouldBindUri test OK", w.Body.String())
|
|
|
+ assert.Equal(t, http.StatusOK, w.Code)
|
|
|
+}
|
|
|
+
|
|
|
+func TestBindUri(t *testing.T) {
|
|
|
+ DefaultWriter = os.Stdout
|
|
|
+ router := Default()
|
|
|
+
|
|
|
+ type Person struct {
|
|
|
+ Name string `uri:"name" binding:"required"`
|
|
|
+ Id string `uri:"id" binding:"required"`
|
|
|
+ }
|
|
|
+ router.Handle("GET", "/rest/:name/:id", func(c *Context) {
|
|
|
+ var person Person
|
|
|
+ assert.NoError(t, c.BindUri(&person))
|
|
|
+ assert.True(t, "" != person.Name)
|
|
|
+ assert.True(t, "" != person.Id)
|
|
|
+ c.String(http.StatusOK, "BindUri test OK")
|
|
|
+ })
|
|
|
+
|
|
|
+ path, _ := exampleFromPath("/rest/:name/:id")
|
|
|
+ w := performRequest(router, "GET", path)
|
|
|
+ assert.Equal(t, "BindUri test OK", w.Body.String())
|
|
|
+ assert.Equal(t, http.StatusOK, w.Code)
|
|
|
+}
|
|
|
+
|
|
|
+func TestBindUriError(t *testing.T) {
|
|
|
+ DefaultWriter = os.Stdout
|
|
|
+ router := Default()
|
|
|
+
|
|
|
+ type Member struct {
|
|
|
+ Number string `uri:"num" binding:"required,uuid"`
|
|
|
+ }
|
|
|
+ router.Handle("GET", "/new/rest/:num", func(c *Context) {
|
|
|
+ var m Member
|
|
|
+ c.BindUri(&m)
|
|
|
+ })
|
|
|
+
|
|
|
+ path1, _ := exampleFromPath("/new/rest/:num")
|
|
|
+ w1 := performRequest(router, "GET", path1)
|
|
|
+ assert.Equal(t, http.StatusBadRequest, w1.Code)
|
|
|
}
|
|
|
|
|
|
func githubConfigRouter(router *Engine) {
|