47 lines
877 B
Go
47 lines
877 B
Go
package api
|
|
|
|
import (
|
|
"net/http"
|
|
"net/url"
|
|
"testing"
|
|
)
|
|
|
|
func TestRequestToProto(t *testing.T) {
|
|
testData := []*http.Request{
|
|
&http.Request{
|
|
Method: "GET",
|
|
Header: http.Header{
|
|
"Header": []string{"test"},
|
|
},
|
|
URL: &url.URL{
|
|
Scheme: "http",
|
|
Host: "localhost",
|
|
Path: "/foo/bar",
|
|
RawQuery: "param1=value1",
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, d := range testData {
|
|
p, err := requestToProto(d)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if p.Path != d.URL.Path {
|
|
t.Fatalf("Expected path %s got %s", d.URL.Path, p.Path)
|
|
}
|
|
if p.Method != d.Method {
|
|
t.Fatalf("Expected method %s got %s", d.Method, p.Method)
|
|
}
|
|
for k, v := range d.Header {
|
|
if val, ok := p.Header[k]; !ok {
|
|
t.Fatalf("Expected header %s", k)
|
|
} else {
|
|
if val.Values[0] != v[0] {
|
|
t.Fatalf("Expected val %s, got %s", val.Values[0], v[0])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|