github.com/twilio/twilio-go@v1.20.1/client/unmarshal_test.go (about) 1 package client_test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/twilio/twilio-go/client" 8 ) 9 10 func TestUnmarshalFloat32(t *testing.T) { 11 unmarshalFloat32 := func(t *testing.T, input interface{}) float32 { 12 value, err := client.UnmarshalFloat32(&input) 13 assert.Nil(t, err) 14 return *value 15 } 16 17 assert.Equal(t, float32(0), unmarshalFloat32(t, "0")) 18 assert.Equal(t, float32(1), unmarshalFloat32(t, "1")) 19 assert.Equal(t, float32(123), unmarshalFloat32(t, 123)) 20 assert.Equal(t, float32(123.456), unmarshalFloat32(t, "123.456")) 21 assert.Equal(t, float32(123.456), unmarshalFloat32(t, 123.456)) 22 assert.Equal(t, float32(123.456), unmarshalFloat32(t, float32(123.456))) 23 assert.Equal(t, float32(7), unmarshalFloat32(t, float64(7))) 24 } 25 26 func TestUnmarshalFloat32_Nil(t *testing.T) { 27 value, err := client.UnmarshalFloat32(nil) 28 assert.Nil(t, value) 29 assert.Nil(t, err) 30 } 31 32 func TestUnmarshalFloat32_ErrorInvalid(t *testing.T) { 33 var input interface{} = map[string]interface{}{} 34 value, err := client.UnmarshalFloat32(&input) 35 assert.Nil(t, value) 36 assert.NotNil(t, err) 37 } 38 39 func TestUnmarshalFloat32_ErrorParse(t *testing.T) { 40 var input interface{} = "ugh" 41 value, err := client.UnmarshalFloat32(&input) 42 assert.Nil(t, value) 43 assert.NotNil(t, err) 44 }