github.com/plutov/paypal/v4@v4.7.1/order_test.go (about)

     1  package paypal
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  )
     7  
     8  var testClientID = "AXy9orp-CDaHhBZ9C78QHW2BKZpACgroqo85_NIOa9mIfJ9QnSVKzY-X_rivR_fTUUr6aLjcJsj6sDur"
     9  var testSecret = "EBoIiUSkCKeSk49hHSgTem1qnjzzJgRQHDEHvGpzlLEf_nIoJd91xu8rPOBDCdR_UYNKVxJE-UgS2iCw"
    10  
    11  func TestUpdateOrder(t *testing.T) {
    12  	ctx := context.Background()
    13  
    14  	c, _ := NewClient(testClientID, testSecret, APIBaseSandBox)
    15  	_, _ = c.GetAccessToken(ctx)
    16  
    17  	orderResponse, err := c.CreateOrder(
    18  		ctx,
    19  		OrderIntentCapture,
    20  		[]PurchaseUnitRequest{
    21  			{
    22  				Amount: &PurchaseUnitAmount{
    23  					Value:    "7.00",
    24  					Currency: "USD",
    25  				},
    26  			},
    27  		},
    28  		&CreateOrderPayer{},
    29  		&ApplicationContext{},
    30  	)
    31  	if err != nil {
    32  		t.Errorf("Not expected error for CreateOrder(), got %s", err.Error())
    33  	}
    34  
    35  	order, err := c.GetOrder(ctx, orderResponse.ID)
    36  	if err != nil {
    37  		t.Errorf("Not expected error for GetOrder(), got %s", err.Error())
    38  	}
    39  
    40  	if order.PurchaseUnits[0].Amount.Value != "7.00" {
    41  		t.Errorf("CreateOrder amount incorrect")
    42  	}
    43  
    44  	err = c.UpdateOrder(
    45  		ctx,
    46  		orderResponse.ID,
    47  		"replace",
    48  		"/purchase_units/@reference_id=='default'/amount",
    49  		map[string]string{
    50  			"currency_code": "USD",
    51  			"value":         "2.00",
    52  		},
    53  	)
    54  	if err != nil {
    55  		t.Errorf("Not expected error for UpdateOrder(), got %s", err.Error())
    56  	}
    57  
    58  	order, err = c.GetOrder(ctx, orderResponse.ID)
    59  	if err != nil {
    60  		t.Errorf("Not expected error for GetOrder(), got %s", err.Error())
    61  	}
    62  
    63  	if order.PurchaseUnits[0].Amount.Value != "2.00" {
    64  		t.Errorf("CreateOrder after update amount incorrect")
    65  	}
    66  }