github.com/stripe/stripe-go/v76@v76.25.0/issuing/cardholder/client_test.go (about) 1 package cardholder 2 3 import ( 4 "testing" 5 6 assert "github.com/stretchr/testify/require" 7 stripe "github.com/stripe/stripe-go/v76" 8 _ "github.com/stripe/stripe-go/v76/testing" 9 ) 10 11 func TestIssuingCardholderGet(t *testing.T) { 12 cardholder, err := Get("ich_123", nil) 13 assert.Nil(t, err) 14 assert.NotNil(t, cardholder) 15 assert.Equal(t, "issuing.cardholder", cardholder.Object) 16 } 17 18 func TestIssuingCardholderList(t *testing.T) { 19 i := List(&stripe.IssuingCardholderListParams{}) 20 21 // Verify that we can get at least one cardholder 22 assert.True(t, i.Next()) 23 assert.Nil(t, i.Err()) 24 assert.NotNil(t, i.IssuingCardholder()) 25 assert.Equal(t, "issuing.cardholder", i.IssuingCardholder().Object) 26 assert.NotNil(t, i.IssuingCardholderList()) 27 } 28 29 func TestIssuingCardholderNew(t *testing.T) { 30 cardholder, err := New(&stripe.IssuingCardholderParams{ 31 Billing: &stripe.IssuingCardholderBillingParams{ 32 Address: &stripe.AddressParams{ 33 Country: stripe.String("US"), 34 Line1: stripe.String("line1"), 35 City: stripe.String("city"), 36 PostalCode: stripe.String("90210"), 37 State: stripe.String("CA"), 38 }, 39 }, 40 Individual: &stripe.IssuingCardholderIndividualParams{ 41 DOB: &stripe.IssuingCardholderIndividualDOBParams{ 42 Day: stripe.Int64(1), 43 Month: stripe.Int64(1), 44 Year: stripe.Int64(1980), 45 }, 46 FirstName: stripe.String("Jenny"), 47 LastName: stripe.String("Rosen"), 48 Verification: &stripe.IssuingCardholderIndividualVerificationParams{ 49 Document: &stripe.IssuingCardholderIndividualVerificationDocumentParams{ 50 Back: stripe.String("file_back"), 51 Front: stripe.String("file_front"), 52 }, 53 }, 54 }, 55 Name: stripe.String("cardholder name"), 56 SpendingControls: &stripe.IssuingCardholderSpendingControlsParams{ 57 AllowedCategories: stripe.StringSlice([]string{ 58 "fast_food_restaurants", 59 "miscellaneous_food_stores", 60 }), 61 SpendingLimits: []*stripe.IssuingCardholderSpendingControlsSpendingLimitParams{ 62 { 63 Amount: stripe.Int64(1000), 64 Interval: stripe.String(string(stripe.IssuingCardholderSpendingControlsSpendingLimitIntervalWeekly)), 65 }, 66 }, 67 }, 68 Type: stripe.String(string(stripe.IssuingCardholderTypeIndividual)), 69 }) 70 assert.Nil(t, err) 71 assert.NotNil(t, cardholder) 72 assert.Equal(t, "issuing.cardholder", cardholder.Object) 73 } 74 75 // IssuingCardholderSpendingControlsSpendingLimitParams is the set of parameters that can be used to 76 // represent a given spending limit for an issuing cardholder. 77 type IssuingCardholderSpendingControlsSpendingLimitParams struct { 78 Amount *int64 `form:"amount"` 79 Categories []*string `form:"categories"` 80 Interval *string `form:"interval"` 81 } 82 83 // IssuingCardholderSpendingControlsParams is the set of parameters that can be used to configure 84 // the spending controls for an issuing cardholder 85 type IssuingCardholderSpendingControlsParams struct { 86 AllowedCategories []*string `form:"allowed_categories"` 87 BlockedCategories []*string `form:"blocked_categories"` 88 SpendingLimits []*IssuingCardholderSpendingControlsSpendingLimitParams `form:"spending_limits"` 89 SpendingLimitsCurrency *string `form:"spending_limits_currency"` 90 } 91 92 func TestIssuingCardholderUpdate(t *testing.T) { 93 cardholder, err := Update("ich_123", &stripe.IssuingCardholderParams{ 94 Params: stripe.Params{ 95 Metadata: map[string]string{ 96 "foo": "bar", 97 }, 98 }, 99 }) 100 assert.Nil(t, err) 101 assert.NotNil(t, cardholder) 102 assert.Equal(t, "issuing.cardholder", cardholder.Object) 103 }