github.com/spread-ai/gqlgen@v0.0.0-20221124102857-a6c8ef538a1d/graphql/int_test.go (about)

     1  package graphql
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestInt(t *testing.T) {
    11  	t.Run("marshal", func(t *testing.T) {
    12  		assert.Equal(t, "123", m2s(MarshalInt(123)))
    13  	})
    14  
    15  	t.Run("unmarshal", func(t *testing.T) {
    16  		assert.Equal(t, 123, mustUnmarshalInt(123))
    17  		assert.Equal(t, 123, mustUnmarshalInt(int64(123)))
    18  		assert.Equal(t, 123, mustUnmarshalInt(json.Number("123")))
    19  		assert.Equal(t, 123, mustUnmarshalInt("123"))
    20  	})
    21  }
    22  
    23  func mustUnmarshalInt(v interface{}) int {
    24  	res, err := UnmarshalInt(v)
    25  	if err != nil {
    26  		panic(err)
    27  	}
    28  	return res
    29  }
    30  
    31  func TestInt32(t *testing.T) {
    32  	t.Run("marshal", func(t *testing.T) {
    33  		assert.Equal(t, "123", m2s(MarshalInt32(123)))
    34  	})
    35  
    36  	t.Run("unmarshal", func(t *testing.T) {
    37  		assert.Equal(t, int32(123), mustUnmarshalInt32(123))
    38  		assert.Equal(t, int32(123), mustUnmarshalInt32(int64(123)))
    39  		assert.Equal(t, int32(123), mustUnmarshalInt32(json.Number("123")))
    40  		assert.Equal(t, int32(123), mustUnmarshalInt32("123"))
    41  	})
    42  }
    43  
    44  func mustUnmarshalInt32(v interface{}) int32 {
    45  	res, err := UnmarshalInt32(v)
    46  	if err != nil {
    47  		panic(err)
    48  	}
    49  	return res
    50  }
    51  
    52  func TestInt64(t *testing.T) {
    53  	t.Run("marshal", func(t *testing.T) {
    54  		assert.Equal(t, "123", m2s(MarshalInt32(123)))
    55  	})
    56  
    57  	t.Run("unmarshal", func(t *testing.T) {
    58  		assert.Equal(t, int64(123), mustUnmarshalInt64(123))
    59  		assert.Equal(t, int64(123), mustUnmarshalInt64(int64(123)))
    60  		assert.Equal(t, int64(123), mustUnmarshalInt64(json.Number("123")))
    61  		assert.Equal(t, int64(123), mustUnmarshalInt64("123"))
    62  	})
    63  }
    64  
    65  func mustUnmarshalInt64(v interface{}) int64 {
    66  	res, err := UnmarshalInt64(v)
    67  	if err != nil {
    68  		panic(err)
    69  	}
    70  	return res
    71  }