github.com/stripe/stripe-go/v76@v76.25.0/sub_test.go (about)

     1  package stripe
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	assert "github.com/stretchr/testify/require"
     8  	"github.com/stripe/stripe-go/v76/form"
     9  )
    10  
    11  func TestSubscriptionParams_AppendTo(t *testing.T) {
    12  	{
    13  		params := &SubscriptionParams{BillingCycleAnchorNow: Bool(true)}
    14  		body := &form.Values{}
    15  		form.AppendTo(body, params)
    16  		t.Logf("body = %+v", body)
    17  		assert.Equal(t, []string{"now"}, body.Get("billing_cycle_anchor"))
    18  	}
    19  
    20  	{
    21  		params := &SubscriptionParams{BillingCycleAnchorUnchanged: Bool(true)}
    22  		body := &form.Values{}
    23  		form.AppendTo(body, params)
    24  		t.Logf("body = %+v", body)
    25  		assert.Equal(t, []string{"unchanged"}, body.Get("billing_cycle_anchor"))
    26  	}
    27  
    28  	{
    29  		params := &SubscriptionParams{TrialEndNow: Bool(true)}
    30  		body := &form.Values{}
    31  		form.AppendTo(body, params)
    32  		t.Logf("body = %+v", body)
    33  		assert.Equal(t, []string{"now"}, body.Get("trial_end"))
    34  	}
    35  }
    36  
    37  func TestSubscription_UnmarshalJSON(t *testing.T) {
    38  	// Unmarshals from a JSON string
    39  	{
    40  		var v Subscription
    41  		err := json.Unmarshal([]byte(`"sub_123"`), &v)
    42  		assert.NoError(t, err)
    43  		assert.Equal(t, "sub_123", v.ID)
    44  	}
    45  
    46  	// Unmarshals from a JSON object
    47  	{
    48  		v := Subscription{ID: "sub_123"}
    49  		data, err := json.Marshal(&v)
    50  		assert.NoError(t, err)
    51  
    52  		err = json.Unmarshal(data, &v)
    53  		assert.NoError(t, err)
    54  		assert.Equal(t, "sub_123", v.ID)
    55  	}
    56  }