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 }