github.com/stripe/stripe-go/v76@v76.25.0/charge_test.go (about) 1 package stripe 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 assert "github.com/stretchr/testify/require" 8 ) 9 10 func TestCharge_UnmarshalJSON(t *testing.T) { 11 // Unmarshals from a JSON string 12 { 13 var v Charge 14 err := json.Unmarshal([]byte(`"ch_123"`), &v) 15 assert.NoError(t, err) 16 assert.Equal(t, "ch_123", v.ID) 17 } 18 19 // Unmarshals from a JSON object 20 { 21 v := Charge{ID: "ch_123"} 22 data, err := json.Marshal(&v) 23 assert.NoError(t, err) 24 25 err = json.Unmarshal(data, &v) 26 assert.NoError(t, err) 27 assert.Equal(t, "ch_123", v.ID) 28 } 29 } 30 31 func TestChargeOutcomeRule_UnmarshalJSON(t *testing.T) { 32 // Unmarshals from a JSON string 33 { 34 var v ChargeOutcomeRule 35 err := json.Unmarshal([]byte(`"ssr_123"`), &v) 36 assert.NoError(t, err) 37 assert.Equal(t, "ssr_123", v.ID) 38 } 39 40 // Unmarshals from a JSON object 41 { 42 v := ChargeOutcomeRule{ID: "ssr_123"} 43 data, err := json.Marshal(&v) 44 assert.NoError(t, err) 45 46 err = json.Unmarshal(data, &v) 47 assert.NoError(t, err) 48 assert.Equal(t, "ssr_123", v.ID) 49 } 50 }