...

Source file src/github.com/99designs/gqlgen/graphql/uint_test.go

Documentation: github.com/99designs/gqlgen/graphql

     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  	t.Run("can't unmarshal negative numbers", func(t *testing.T) {
    24  		_, err := UnmarshalUint(-123)
    25  		assert.EqualError(t, err, "cannot convert negative numbers to uint")
    26  	})
    27  }
    28  
    29  func mustUnmarshalUint(v interface{}) uint {
    30  	res, err := UnmarshalUint(v)
    31  	if err != nil {
    32  		panic(err)
    33  	}
    34  	return res
    35  }
    36  
    37  func TestUint32(t *testing.T) {
    38  	t.Run("marshal", func(t *testing.T) {
    39  		assert.Equal(t, "123", m2s(MarshalUint32(123)))
    40  		assert.Equal(t, "4294967295", m2s(MarshalUint32(math.MaxUint32)))
    41  	})
    42  
    43  	t.Run("unmarshal", func(t *testing.T) {
    44  		assert.Equal(t, uint32(123), mustUnmarshalUint32(123))
    45  		assert.Equal(t, uint32(123), mustUnmarshalUint32(int64(123)))
    46  		assert.Equal(t, uint32(123), mustUnmarshalUint32(json.Number("123")))
    47  		assert.Equal(t, uint32(123), mustUnmarshalUint32("123"))
    48  		assert.Equal(t, uint32(4294967295), mustUnmarshalUint32("4294967295"))
    49  	})
    50  
    51  	t.Run("can't unmarshal negative numbers", func(t *testing.T) {
    52  		_, err := UnmarshalUint32(-123)
    53  		assert.EqualError(t, err, "cannot convert negative numbers to uint32")
    54  	})
    55  }
    56  
    57  func mustUnmarshalUint32(v interface{}) uint32 {
    58  	res, err := UnmarshalUint32(v)
    59  	if err != nil {
    60  		panic(err)
    61  	}
    62  	return res
    63  }
    64  
    65  func TestUint64(t *testing.T) {
    66  	t.Run("marshal", func(t *testing.T) {
    67  		assert.Equal(t, "123", m2s(MarshalUint64(123)))
    68  	})
    69  
    70  	t.Run("unmarshal", func(t *testing.T) {
    71  		assert.Equal(t, uint64(123), mustUnmarshalUint64(123))
    72  		assert.Equal(t, uint64(123), mustUnmarshalUint64(int64(123)))
    73  		assert.Equal(t, uint64(123), mustUnmarshalUint64(json.Number("123")))
    74  		assert.Equal(t, uint64(123), mustUnmarshalUint64("123"))
    75  	})
    76  
    77  	t.Run("can't unmarshal negative numbers", func(t *testing.T) {
    78  		_, err := UnmarshalUint64(-123)
    79  		assert.EqualError(t, err, "cannot convert negative numbers to uint64")
    80  	})
    81  }
    82  
    83  func mustUnmarshalUint64(v interface{}) uint64 {
    84  	res, err := UnmarshalUint64(v)
    85  	if err != nil {
    86  		panic(err)
    87  	}
    88  	return res
    89  }
    90  

View as plain text