...
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 }
72
View as plain text