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 }