extend tests, update readme
This commit is contained in:
68
client_test.go
Normal file
68
client_test.go
Normal file
@@ -0,0 +1,68 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type TestRequestRequest struct {
|
||||
FirstField string `json:"first_field"`
|
||||
SecondField int32 `json:"second_field"`
|
||||
}
|
||||
|
||||
type TestRequestResponse struct {
|
||||
FirstField string `json:"first_header"`
|
||||
SecondField struct {
|
||||
Key int32 `json:"key"`
|
||||
} `json:"second_header"`
|
||||
ThirdField []struct {
|
||||
FirstElement string `json:"first_element"`
|
||||
} `json:"third_header"`
|
||||
}
|
||||
|
||||
func TestRequest(t *testing.T) {
|
||||
tests := []struct {
|
||||
statusCode int
|
||||
headers map[string]string
|
||||
params *TestRequestRequest
|
||||
response string
|
||||
}{
|
||||
{
|
||||
http.StatusOK,
|
||||
map[string]string{
|
||||
"first_header": "first-value",
|
||||
"second_header": "second-value",
|
||||
},
|
||||
&TestRequestRequest{
|
||||
FirstField: "test",
|
||||
SecondField: 123,
|
||||
},
|
||||
`{
|
||||
"first_field": "first-value",
|
||||
"second_field": {
|
||||
"key": 12
|
||||
},
|
||||
"third_field": [
|
||||
{
|
||||
"first_element": "first-element-value"
|
||||
}
|
||||
]
|
||||
}`,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
c := NewMockClient(NewMockHttpHandler(test.statusCode, test.response, test.headers))
|
||||
|
||||
respStruct := &TestRequestResponse{}
|
||||
resp, err := c.Request(http.MethodPost, "/", test.params, respStruct)
|
||||
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if resp.StatusCode != test.statusCode {
|
||||
t.Errorf("got wrong status code: got: %d, expected: %d", resp.StatusCode, test.statusCode)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user