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  }