mirror of
https://github.com/cubixle/ebay.git
synced 2026-04-25 00:54:45 +01:00
82 lines
2.2 KiB
Go
82 lines
2.2 KiB
Go
package ebay_test
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/jybp/ebay"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestNewRequest(t *testing.T) {
|
|
testOpt := func(r *http.Request) {
|
|
r.URL.RawQuery = "q=1"
|
|
}
|
|
client, _ := ebay.NewCustomClient(nil, "https://api.ebay.com/")
|
|
r, _ := client.NewRequest(http.MethodPost, "test", testOpt)
|
|
assert.Equal(t, "https://api.ebay.com/test?q=1", fmt.Sprint(r.URL))
|
|
assert.Equal(t, http.MethodPost, r.Method)
|
|
}
|
|
|
|
func TestCheckResponseNoError(t *testing.T) {
|
|
resp := &http.Response{StatusCode: 200}
|
|
assert.Nil(t, ebay.CheckResponse(resp))
|
|
}
|
|
|
|
func TestCheckResponse(t *testing.T) {
|
|
body := ` {
|
|
"errors": [
|
|
{
|
|
"errorId": 15008,
|
|
"domain": "API_ORDER",
|
|
"subDomain": "subdomain",
|
|
"category": "REQUEST",
|
|
"message": "Invalid Field : itemId.",
|
|
"longMessage": "longMessage",
|
|
"inputRefIds": [
|
|
"$.lineItemInputs[0].itemId"
|
|
],
|
|
"outputRefIds": [
|
|
"outputRefId"
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "itemId",
|
|
"value": "2200077988|0"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}`
|
|
resp := &http.Response{StatusCode: 400, Body: ioutil.NopCloser(bytes.NewBufferString(body))}
|
|
err, ok := ebay.CheckResponse(resp).(*ebay.ErrorData)
|
|
assert.True(t, ok)
|
|
assert.Equal(t, 1, len(err.Errors))
|
|
assert.Equal(t, 15008, err.Errors[0].ErrorID)
|
|
assert.Equal(t, "API_ORDER", err.Errors[0].Domain)
|
|
assert.Equal(t, "subdomain", err.Errors[0].SubDomain)
|
|
assert.Equal(t, "REQUEST", err.Errors[0].Category)
|
|
assert.Equal(t, "Invalid Field : itemId.", err.Errors[0].Message)
|
|
assert.Equal(t, "longMessage", err.Errors[0].LongMessage)
|
|
assert.Equal(t, []string{"$.lineItemInputs[0].itemId"}, err.Errors[0].InputRefIds)
|
|
assert.Equal(t, []string{"outputRefId"}, err.Errors[0].OuputRefIds)
|
|
assert.Equal(t, "itemId", err.Errors[0].Parameters[0].Name)
|
|
assert.Equal(t, "2200077988|0", err.Errors[0].Parameters[0].Value)
|
|
}
|
|
|
|
// setup sets up a test HTTP server
|
|
func setup(t *testing.T) (client *ebay.Client, mux *http.ServeMux, teardown func()) {
|
|
mux = http.NewServeMux()
|
|
server := httptest.NewServer(mux)
|
|
var err error
|
|
client, err = ebay.NewCustomClient(nil, server.URL+"/")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
return client, mux, server.Close
|
|
}
|