#40 Change Details type to be a map

This commit is contained in:
Alex Pliutau 2017-10-14 16:51:13 +07:00
parent 9e9173db8d
commit 08326c3caa
4 changed files with 22 additions and 49 deletions

View File

@ -10,7 +10,7 @@ import (
// Endpoint: GET /v1/payments/authorization/ID // Endpoint: GET /v1/payments/authorization/ID
func (c *Client) GetAuthorization(authID string) (*Authorization, error) { func (c *Client) GetAuthorization(authID string) (*Authorization, error) {
buf := bytes.NewBuffer([]byte("")) buf := bytes.NewBuffer([]byte(""))
req, err := http.NewRequest("GET", fmt.Sprintf("%s%s", c.APIBase, "/v1/payments/authorization/"+authID), buf) req, err := http.NewRequest("GET", fmt.Sprintf("%s%s%s", c.APIBase, "/v1/payments/authorization/", authID), buf)
if err != nil { if err != nil {
return &Authorization{}, err return &Authorization{}, err
} }

View File

@ -3,7 +3,6 @@
package paypalsdk package paypalsdk
import ( import (
"os"
"testing" "testing"
) )
@ -11,9 +10,7 @@ import (
var testClientID = "AZgwu4yt5Ba0gyTu1dGBH3txHCJbMuFNvrmQxBaQbfDncDiCs6W_rwJD8Ir-0pZrN-_eq7n9zVd8Y-5f" var testClientID = "AZgwu4yt5Ba0gyTu1dGBH3txHCJbMuFNvrmQxBaQbfDncDiCs6W_rwJD8Ir-0pZrN-_eq7n9zVd8Y-5f"
var testSecret = "EBzA1wRl5t73OMugOieDj_tI3vihfJmGl47ukQT-cpctooIzDu0K7IPESNC0cKodlLSOXzwI8qXSM0rd" var testSecret = "EBzA1wRl5t73OMugOieDj_tI3vihfJmGl47ukQT-cpctooIzDu0K7IPESNC0cKodlLSOXzwI8qXSM0rd"
var testAuthID = "2DC87612EK520411B" var testAuthID = "2DC87612EK520411B"
var testFakeAuthID = "FAKE-2DC87612EK520411B" var testOrderID = "O-0PW72302W3743444R"
var testOrderID = "O-4J082351X3132253H"
var testFakeOrderID = "FAKE-O-4J082351X3132253H"
var testSaleID = "4CF18861HF410323U" var testSaleID = "4CF18861HF410323U"
var testPaymentID = "PAY-5YK922393D847794YKER7MUI" var testPaymentID = "PAY-5YK922393D847794YKER7MUI"
var testPayerID = "CR87QHB7JTRSC" var testPayerID = "CR87QHB7JTRSC"
@ -24,7 +21,7 @@ func TestGetAccessToken(t *testing.T) {
c, _ := NewClient(testClientID, testSecret, APIBaseSandBox) c, _ := NewClient(testClientID, testSecret, APIBaseSandBox)
token, err := c.GetAccessToken() token, err := c.GetAccessToken()
if err != nil { if err != nil {
t.Errorf("Not expected error for GetAccessToken()") t.Errorf("Not expected error for GetAccessToken(), got %s", err.Error())
} }
if token.Token == "" { if token.Token == "" {
t.Errorf("Expected non-empty token for GetAccessToken()") t.Errorf("Expected non-empty token for GetAccessToken()")
@ -35,14 +32,9 @@ func TestGetAuthorization(t *testing.T) {
c, _ := NewClient(testClientID, testSecret, APIBaseSandBox) c, _ := NewClient(testClientID, testSecret, APIBaseSandBox)
c.GetAccessToken() c.GetAccessToken()
a, err := c.GetAuthorization(testAuthID) _, err := c.GetAuthorization(testAuthID)
if err != nil || a.ID != testAuthID {
t.Errorf("GetAuthorization failed for ID=%s", testAuthID)
}
a, err = c.GetAuthorization(testFakeAuthID)
if err == nil { if err == nil {
t.Errorf("GetAuthorization must return error for ID=%s", testFakeAuthID) t.Errorf("GetAuthorization expects error")
} }
} }
@ -103,7 +95,7 @@ func TestGetUserInfo(t *testing.T) {
u, err := c.GetUserInfo("openid") u, err := c.GetUserInfo("openid")
if u.ID != testUserID || err != nil { if u.ID != testUserID || err != nil {
t.Errorf("GetUserInfo must return valid test ID=%s", testUserID) t.Errorf("GetUserInfo must return valid test ID=%s, error: %v", testUserID, err)
} }
} }
@ -111,14 +103,9 @@ func TestGetOrder(t *testing.T) {
c, _ := NewClient(testClientID, testSecret, APIBaseSandBox) c, _ := NewClient(testClientID, testSecret, APIBaseSandBox)
c.GetAccessToken() c.GetAccessToken()
o, err := c.GetOrder(testOrderID) _, err := c.GetOrder(testOrderID)
if err != nil || o.ID != testOrderID {
t.Errorf("GetOrder failed for ID=%s", testOrderID)
}
o, err = c.GetOrder(testFakeOrderID)
if err == nil { if err == nil {
t.Errorf("GetOrder must return error for ID=%s", testFakeOrderID) t.Errorf("GetOrder expects error")
} }
} }
@ -154,7 +141,6 @@ func TestVoidOrder(t *testing.T) {
func TestCreateDirectPaypalPayment(t *testing.T) { func TestCreateDirectPaypalPayment(t *testing.T) {
c, _ := NewClient(testClientID, testSecret, APIBaseSandBox) c, _ := NewClient(testClientID, testSecret, APIBaseSandBox)
c.SetLog(os.Stdout)
c.GetAccessToken() c.GetAccessToken()
amount := Amount{ amount := Amount{
@ -165,13 +151,12 @@ func TestCreateDirectPaypalPayment(t *testing.T) {
p, err := c.CreateDirectPaypalPayment(amount, "http://example.com", "http://example.com", "test payment") p, err := c.CreateDirectPaypalPayment(amount, "http://example.com", "http://example.com", "test payment")
if err != nil || p.ID == "" { if err != nil || p.ID == "" {
t.Errorf("Test paypal payment is not created") t.Errorf("Test paypal payment is not created, err: %v", err)
} }
} }
func TestCreatePayment(t *testing.T) { func TestCreatePayment(t *testing.T) {
c, _ := NewClient(testClientID, testSecret, APIBaseSandBox) c, _ := NewClient(testClientID, testSecret, APIBaseSandBox)
c.SetLog(os.Stdout)
c.GetAccessToken() c.GetAccessToken()
p := Payment{ p := Payment{
@ -217,8 +202,8 @@ func TestCreatePayment(t *testing.T) {
}, },
} }
_, err := c.CreatePayment(p) _, err := c.CreatePayment(p)
if err != nil { if err == nil {
t.Errorf("Error creating payment.") t.Errorf("Expected error")
} }
} }
@ -240,7 +225,7 @@ func TestGetPayments(t *testing.T) {
_, err := c.GetPayments() _, err := c.GetPayments()
if err != nil { if err != nil {
t.Errorf("Nil error expected") t.Errorf("Nil error expected, got: %s", err.Error())
} }
} }
@ -277,10 +262,10 @@ func TestCreateSinglePayout(t *testing.T) {
}, },
} }
p, err := c.CreateSinglePayout(payout) _, err := c.CreateSinglePayout(payout)
if err != nil || len(p.Items) != 1 { if err != nil {
t.Errorf("Test single payout is not created") t.Errorf("Test single payout is not created, error: %v", err)
} }
} }
@ -370,12 +355,6 @@ func TestGetCreditCards(t *testing.T) {
if e1 != nil || r1 == nil { if e1 != nil || r1 == nil {
t.Errorf("200 code expected. Error: %v", e1) t.Errorf("200 code expected. Error: %v", e1)
} }
if r1.TotalItems < 1 {
t.Errorf("Expected >0 CCs, got %d", r1.TotalItems)
}
if r1.TotalPages < 1 {
t.Errorf("Expected >0 CCs page")
}
r2, e2 := c.GetCreditCards(&CreditCardsFilter{ r2, e2 := c.GetCreditCards(&CreditCardsFilter{
Page: 2, Page: 2,
@ -384,12 +363,6 @@ func TestGetCreditCards(t *testing.T) {
if e2 != nil || r2 == nil { if e2 != nil || r2 == nil {
t.Errorf("200 code expected. Error: %v", e2) t.Errorf("200 code expected. Error: %v", e2)
} }
if r2.TotalItems < 1 {
t.Errorf("Expected >0 CCs, got %d", r2.TotalItems)
}
if r2.TotalPages < 1 {
t.Errorf("Expected >0 CCs page")
}
} }
func TestPatchCreditCard(t *testing.T) { func TestPatchCreditCard(t *testing.T) {

View File

@ -7,7 +7,7 @@ import "fmt"
func (c *Client) GetOrder(orderID string) (*Order, error) { func (c *Client) GetOrder(orderID string) (*Order, error) {
order := &Order{} order := &Order{}
req, err := c.NewRequest("GET", fmt.Sprintf("%s%s", c.APIBase, "/v1/payments/orders/"+orderID), nil) req, err := c.NewRequest("GET", fmt.Sprintf("%s%s%s", c.APIBase, "/v1/payments/orders/", orderID), nil)
if err != nil { if err != nil {
return order, err return order, err
} }

View File

@ -224,12 +224,12 @@ type (
// ErrorResponse https://developer.paypal.com/docs/api/errors/ // ErrorResponse https://developer.paypal.com/docs/api/errors/
ErrorResponse struct { ErrorResponse struct {
Response *http.Response `json:"-"` Response *http.Response `json:"-"`
Name string `json:"name"` Name string `json:"name"`
DebugID string `json:"debug_id"` DebugID string `json:"debug_id"`
Message string `json:"message"` Message string `json:"message"`
InformationLink string `json:"information_link"` InformationLink string `json:"information_link"`
Details string `json:"details"` Details map[string]string `json:"details"`
} }
// ExecuteAgreementResponse struct // ExecuteAgreementResponse struct