Add generated file
This PR adds generated files under pkg/client and vendor folder.
This commit is contained in:
155
vendor/github.com/emicklei/go-restful/request_test.go
generated
vendored
Normal file
155
vendor/github.com/emicklei/go-restful/request_test.go
generated
vendored
Normal file
@@ -0,0 +1,155 @@
|
||||
package restful
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strconv"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestQueryParameter(t *testing.T) {
|
||||
hreq := http.Request{Method: "GET"}
|
||||
hreq.URL, _ = url.Parse("http://www.google.com/search?q=foo&q=bar")
|
||||
rreq := Request{Request: &hreq}
|
||||
if rreq.QueryParameter("q") != "foo" {
|
||||
t.Errorf("q!=foo %#v", rreq)
|
||||
}
|
||||
}
|
||||
|
||||
func TestQueryParameters(t *testing.T) {
|
||||
hreq := http.Request{Method: "GET"}
|
||||
hreq.URL, _ = url.Parse("http://www.google.com/search?q=foo&q=bar")
|
||||
rreq := Request{Request: &hreq}
|
||||
parameters := rreq.QueryParameters("q")
|
||||
if len(parameters) != 2 {
|
||||
t.Fatalf("len(q)!=2 %#v", rreq)
|
||||
} else {
|
||||
if parameters[0] != "foo" || parameters[1] != "bar" {
|
||||
t.Fatalf("invalid content: required [\"foo\" \"bar\", got: %#v", parameters)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
type Anything map[string]interface{}
|
||||
|
||||
type Number struct {
|
||||
ValueFloat float64
|
||||
ValueInt int64
|
||||
}
|
||||
|
||||
type Sample struct {
|
||||
Value string
|
||||
}
|
||||
|
||||
func TestReadEntityJson(t *testing.T) {
|
||||
bodyReader := strings.NewReader(`{"Value" : "42"}`)
|
||||
httpRequest, _ := http.NewRequest("GET", "/test", bodyReader)
|
||||
httpRequest.Header.Set("Content-Type", "application/json")
|
||||
request := &Request{Request: httpRequest}
|
||||
sam := new(Sample)
|
||||
request.ReadEntity(sam)
|
||||
if sam.Value != "42" {
|
||||
t.Fatal("read failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestReadEntityJsonCharset(t *testing.T) {
|
||||
bodyReader := strings.NewReader(`{"Value" : "42"}`)
|
||||
httpRequest, _ := http.NewRequest("GET", "/test", bodyReader)
|
||||
httpRequest.Header.Set("Content-Type", "application/json; charset=UTF-8")
|
||||
request := NewRequest(httpRequest)
|
||||
sam := new(Sample)
|
||||
request.ReadEntity(sam)
|
||||
if sam.Value != "42" {
|
||||
t.Fatal("read failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestReadEntityJsonNumber(t *testing.T) {
|
||||
bodyReader := strings.NewReader(`{"Value" : 4899710515899924123}`)
|
||||
httpRequest, _ := http.NewRequest("GET", "/test", bodyReader)
|
||||
httpRequest.Header.Set("Content-Type", "application/json")
|
||||
request := &Request{Request: httpRequest}
|
||||
any := make(Anything)
|
||||
request.ReadEntity(&any)
|
||||
number, ok := any["Value"].(json.Number)
|
||||
if !ok {
|
||||
t.Fatal("read failed")
|
||||
}
|
||||
vint, err := number.Int64()
|
||||
if err != nil {
|
||||
t.Fatal("convert failed")
|
||||
}
|
||||
if vint != 4899710515899924123 {
|
||||
t.Fatal("read failed")
|
||||
}
|
||||
vfloat, err := number.Float64()
|
||||
if err != nil {
|
||||
t.Fatal("convert failed")
|
||||
}
|
||||
// match the default behaviour
|
||||
vstring := strconv.FormatFloat(vfloat, 'e', 15, 64)
|
||||
if vstring != "4.899710515899924e+18" {
|
||||
t.Fatal("convert float64 failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestReadEntityJsonLong(t *testing.T) {
|
||||
bodyReader := strings.NewReader(`{"ValueFloat" : 4899710515899924123, "ValueInt": 4899710515899924123}`)
|
||||
httpRequest, _ := http.NewRequest("GET", "/test", bodyReader)
|
||||
httpRequest.Header.Set("Content-Type", "application/json")
|
||||
request := &Request{Request: httpRequest}
|
||||
number := new(Number)
|
||||
request.ReadEntity(&number)
|
||||
if number.ValueInt != 4899710515899924123 {
|
||||
t.Fatal("read failed")
|
||||
}
|
||||
// match the default behaviour
|
||||
vstring := strconv.FormatFloat(number.ValueFloat, 'e', 15, 64)
|
||||
if vstring != "4.899710515899924e+18" {
|
||||
t.Fatal("convert float64 failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestBodyParameter(t *testing.T) {
|
||||
bodyReader := strings.NewReader(`value1=42&value2=43`)
|
||||
httpRequest, _ := http.NewRequest("POST", "/test?value1=44", bodyReader) // POST and PUT body parameters take precedence over URL query string
|
||||
httpRequest.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
|
||||
request := NewRequest(httpRequest)
|
||||
v1, err := request.BodyParameter("value1")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
v2, err := request.BodyParameter("value2")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if v1 != "42" || v2 != "43" {
|
||||
t.Fatal("read failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestReadEntityUnkown(t *testing.T) {
|
||||
bodyReader := strings.NewReader("?")
|
||||
httpRequest, _ := http.NewRequest("GET", "/test", bodyReader)
|
||||
httpRequest.Header.Set("Content-Type", "application/rubbish")
|
||||
request := NewRequest(httpRequest)
|
||||
sam := new(Sample)
|
||||
err := request.ReadEntity(sam)
|
||||
if err == nil {
|
||||
t.Fatal("read should be in error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestSetAttribute(t *testing.T) {
|
||||
bodyReader := strings.NewReader("?")
|
||||
httpRequest, _ := http.NewRequest("GET", "/test", bodyReader)
|
||||
request := NewRequest(httpRequest)
|
||||
request.SetAttribute("go", "there")
|
||||
there := request.Attribute("go")
|
||||
if there != "there" {
|
||||
t.Fatalf("missing request attribute:%v", there)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user