github.com/geneva/gqlgen@v0.17.7-0.20230801155730-7b9317164836/graphql/uint_test.go (about)

     1  package graphql
     2  
     3  import (
     4  	"encoding/json"
     5  	"math"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  func TestUint(t *testing.T) {
    12  	t.Run("marshal", func(t *testing.T) {
    13  		assert.Equal(t, "123", m2s(MarshalUint(123)))
    14  	})
    15  
    16  	t.Run("unmarshal", func(t *testing.T) {
    17  		assert.Equal(t, uint(123), mustUnmarshalUint(123))
    18  		assert.Equal(t, uint(123), mustUnmarshalUint(int64(123)))
    19  		assert.Equal(t, uint(123), mustUnmarshalUint(json.Number("123")))
    20  		assert.Equal(t, uint(123), mustUnmarshalUint("123"))
    21  	})
    22  }
    23  
    24  func mustUnmarshalUint(v interface{}) uint {
    25  	res, err := UnmarshalUint(v)
    26  	if err != nil {
    27  		panic(err)
    28  	}
    29  	return res
    30  }
    31  
    32  func TestUint32(t *testing.T) {
    33  	t.Run("marshal", func(t *testing.T) {
    34  		assert.Equal(t, "123", m2s(MarshalUint32(123)))
    35  		assert.Equal(t, "4294967295", m2s(MarshalUint32(math.MaxUint32)))
    36  	})
    37  
    38  	t.Run("unmarshal", func(t *testing.T) {
    39  		assert.Equal(t, uint32(123), mustUnmarshalUint32(123))
    40  		assert.Equal(t, uint32(123), mustUnmarshalUint32(int64(123)))
    41  		assert.Equal(t, uint32(123), mustUnmarshalUint32(json.Number("123")))
    42  		assert.Equal(t, uint32(123), mustUnmarshalUint32("123"))
    43  		assert.Equal(t, uint32(4294967295), mustUnmarshalUint32("4294967295"))
    44  	})
    45  }
    46  
    47  func mustUnmarshalUint32(v interface{}) uint32 {
    48  	res, err := UnmarshalUint32(v)
    49  	if err != nil {
    50  		panic(err)
    51  	}
    52  	return res
    53  }
    54  
    55  func TestUint64(t *testing.T) {
    56  	t.Run("marshal", func(t *testing.T) {
    57  		assert.Equal(t, "123", m2s(MarshalUint64(123)))
    58  	})
    59  
    60  	t.Run("unmarshal", func(t *testing.T) {
    61  		assert.Equal(t, uint64(123), mustUnmarshalUint64(123))
    62  		assert.Equal(t, uint64(123), mustUnmarshalUint64(int64(123)))
    63  		assert.Equal(t, uint64(123), mustUnmarshalUint64(json.Number("123")))
    64  		assert.Equal(t, uint64(123), mustUnmarshalUint64("123"))
    65  	})
    66  }
    67  
    68  func mustUnmarshalUint64(v interface{}) uint64 {
    69  	res, err := UnmarshalUint64(v)
    70  	if err != nil {
    71  		panic(err)
    72  	}
    73  	return res
    74  }