diff --git a/binding/binding.go b/binding/binding.go
index 6d58c3cd..eede3409 100644
--- a/binding/binding.go
+++ b/binding/binding.go
@@ -25,7 +25,6 @@ const (
// data present in the request such as JSON request body, query parameters or
// the form POST.
type Binding interface {
- Name() string
Bind(*http.Request, interface{}) error
}
diff --git a/binding/binding_test.go b/binding/binding_test.go
index caabaace..426b08da 100644
--- a/binding/binding_test.go
+++ b/binding/binding_test.go
@@ -24,6 +24,27 @@ import (
"github.com/ugorji/go/codec"
)
+func TestBindingName(t *testing.T) {
+ for _, test := range []struct {
+ name string
+ namer interface{ Name() string }
+ }{
+ {"json", JSON},
+ {"xml", XML},
+ {"form", Form},
+ {"query", Query},
+ {"form-urlencoded", FormPost},
+ {"multipart/form-data", FormMultipart},
+ {"protobuf", ProtoBuf},
+ {"msgpack", MsgPack},
+ {"yaml", YAML},
+ {"uri", Uri},
+ {"header", Header},
+ } {
+ assert.Equal(t, test.name, test.namer.Name())
+ }
+}
+
type appkey struct {
Appkey string `json:"appkey" form:"appkey"`
}
@@ -179,21 +200,21 @@ func TestBindingJSONNilBody(t *testing.T) {
func TestBindingJSON(t *testing.T) {
testBodyBinding(t,
- JSON, "json",
+ JSON,
"/", "/",
`{"foo": "bar"}`, `{"bar": "foo"}`)
}
func TestBindingJSONUseNumber(t *testing.T) {
testBodyBindingUseNumber(t,
- JSON, "json",
+ JSON,
"/", "/",
`{"foo": 123}`, `{"bar": "foo"}`)
}
func TestBindingJSONUseNumber2(t *testing.T) {
testBodyBindingUseNumber2(t,
- JSON, "json",
+ JSON,
"/", "/",
`{"foo": 123}`, `{"bar": "foo"}`)
}
@@ -372,28 +393,28 @@ func TestBindingQueryBoolFail(t *testing.T) {
func TestBindingXML(t *testing.T) {
testBodyBinding(t,
- XML, "xml",
+ XML,
"/", "/",
"", "")
}
func TestBindingXMLFail(t *testing.T) {
testBodyBindingFail(t,
- XML, "xml",
+ XML,
"/", "/",
"", "")
}
func TestBindingYAML(t *testing.T) {
testBodyBinding(t,
- YAML, "yaml",
+ YAML,
"/", "/",
`foo: bar`, `bar: foo`)
}
func TestBindingYAMLFail(t *testing.T) {
testBodyBindingFail(t,
- YAML, "yaml",
+ YAML,
"/", "/",
`foo:\nbar`, `bar: foo`)
}
@@ -613,7 +634,7 @@ func TestBindingProtoBuf(t *testing.T) {
data, _ := proto.Marshal(test)
testProtoBodyBinding(t,
- ProtoBuf, "protobuf",
+ ProtoBuf,
"/", "/",
string(data), string(data[1:]))
}
@@ -625,7 +646,7 @@ func TestBindingProtoBufFail(t *testing.T) {
data, _ := proto.Marshal(test)
testProtoBodyBindingFail(t,
- ProtoBuf, "protobuf",
+ ProtoBuf,
"/", "/",
string(data), string(data[1:]))
}
@@ -645,7 +666,7 @@ func TestBindingMsgPack(t *testing.T) {
data := buf.Bytes()
testMsgPackBodyBinding(t,
- MsgPack, "msgpack",
+ MsgPack,
"/", "/",
string(data), string(data[1:]))
}
@@ -1120,9 +1141,7 @@ func testQueryBindingBoolFail(t *testing.T, method, path, badPath, body, badBody
assert.Error(t, err)
}
-func testBodyBinding(t *testing.T, b Binding, name, path, badPath, body, badBody string) {
- assert.Equal(t, name, b.Name())
-
+func testBodyBinding(t *testing.T, b Binding, path, badPath, body, badBody string) {
obj := FooStruct{}
req := requestWithBody("POST", path, body)
err := b.Bind(req, &obj)
@@ -1135,9 +1154,7 @@ func testBodyBinding(t *testing.T, b Binding, name, path, badPath, body, badBody
assert.Error(t, err)
}
-func testBodyBindingUseNumber(t *testing.T, b Binding, name, path, badPath, body, badBody string) {
- assert.Equal(t, name, b.Name())
-
+func testBodyBindingUseNumber(t *testing.T, b Binding, path, badPath, body, badBody string) {
obj := FooStructUseNumber{}
req := requestWithBody("POST", path, body)
EnableDecoderUseNumber = true
@@ -1154,9 +1171,7 @@ func testBodyBindingUseNumber(t *testing.T, b Binding, name, path, badPath, body
assert.Error(t, err)
}
-func testBodyBindingUseNumber2(t *testing.T, b Binding, name, path, badPath, body, badBody string) {
- assert.Equal(t, name, b.Name())
-
+func testBodyBindingUseNumber2(t *testing.T, b Binding, path, badPath, body, badBody string) {
obj := FooStructUseNumber{}
req := requestWithBody("POST", path, body)
EnableDecoderUseNumber = false
@@ -1191,9 +1206,7 @@ func testBodyBindingDisallowUnknownFields(t *testing.T, b Binding, path, badPath
assert.Contains(t, err.Error(), "what")
}
-func testBodyBindingFail(t *testing.T, b Binding, name, path, badPath, body, badBody string) {
- assert.Equal(t, name, b.Name())
-
+func testBodyBindingFail(t *testing.T, b Binding, path, badPath, body, badBody string) {
obj := FooStruct{}
req := requestWithBody("POST", path, body)
err := b.Bind(req, &obj)
@@ -1206,9 +1219,7 @@ func testBodyBindingFail(t *testing.T, b Binding, name, path, badPath, body, bad
assert.Error(t, err)
}
-func testProtoBodyBinding(t *testing.T, b Binding, name, path, badPath, body, badBody string) {
- assert.Equal(t, name, b.Name())
-
+func testProtoBodyBinding(t *testing.T, b Binding, path, badPath, body, badBody string) {
obj := protoexample.Test{}
req := requestWithBody("POST", path, body)
req.Header.Add("Content-Type", MIMEPROTOBUF)
@@ -1229,9 +1240,7 @@ func (h hook) Read([]byte) (int, error) {
return 0, errors.New("error")
}
-func testProtoBodyBindingFail(t *testing.T, b Binding, name, path, badPath, body, badBody string) {
- assert.Equal(t, name, b.Name())
-
+func testProtoBodyBindingFail(t *testing.T, b Binding, path, badPath, body, badBody string) {
obj := protoexample.Test{}
req := requestWithBody("POST", path, body)
@@ -1247,9 +1256,7 @@ func testProtoBodyBindingFail(t *testing.T, b Binding, name, path, badPath, body
assert.Error(t, err)
}
-func testMsgPackBodyBinding(t *testing.T, b Binding, name, path, badPath, body, badBody string) {
- assert.Equal(t, name, b.Name())
-
+func testMsgPackBodyBinding(t *testing.T, b Binding, path, badPath, body, badBody string) {
obj := FooStruct{}
req := requestWithBody("POST", path, body)
req.Header.Add("Content-Type", MIMEMSGPACK)