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  }