...
1 package any_tests
2
3 import (
4 "testing"
5
6 "github.com/json-iterator/go"
7 "github.com/stretchr/testify/require"
8 )
9
10
11 func Test_must_be_valid(t *testing.T) {
12 should := require.New(t)
13 any := jsoniter.Get([]byte("123"))
14 should.Equal(any.MustBeValid().ToInt(), 123)
15
16 any = jsoniter.Wrap(int8(10))
17 should.Equal(any.MustBeValid().ToInt(), 10)
18
19 any = jsoniter.Wrap(int16(10))
20 should.Equal(any.MustBeValid().ToInt(), 10)
21
22 any = jsoniter.Wrap(int32(10))
23 should.Equal(any.MustBeValid().ToInt(), 10)
24
25 any = jsoniter.Wrap(int64(10))
26 should.Equal(any.MustBeValid().ToInt(), 10)
27
28 any = jsoniter.Wrap(uint(10))
29 should.Equal(any.MustBeValid().ToInt(), 10)
30
31 any = jsoniter.Wrap(uint8(10))
32 should.Equal(any.MustBeValid().ToInt(), 10)
33
34 any = jsoniter.Wrap(uint16(10))
35 should.Equal(any.MustBeValid().ToInt(), 10)
36
37 any = jsoniter.Wrap(uint32(10))
38 should.Equal(any.MustBeValid().ToInt(), 10)
39
40 any = jsoniter.Wrap(uint64(10))
41 should.Equal(any.MustBeValid().ToInt(), 10)
42
43 any = jsoniter.Wrap(float32(10))
44 should.Equal(any.MustBeValid().ToFloat64(), float64(10))
45
46 any = jsoniter.Wrap(float64(10))
47 should.Equal(any.MustBeValid().ToFloat64(), float64(10))
48
49 any = jsoniter.Wrap(true)
50 should.Equal(any.MustBeValid().ToFloat64(), float64(1))
51
52 any = jsoniter.Wrap(false)
53 should.Equal(any.MustBeValid().ToFloat64(), float64(0))
54
55 any = jsoniter.Wrap(nil)
56 should.Equal(any.MustBeValid().ToFloat64(), float64(0))
57
58 any = jsoniter.Wrap(struct{ age int }{age: 1})
59 should.Equal(any.MustBeValid().ToFloat64(), float64(0))
60
61 any = jsoniter.Wrap(map[string]interface{}{"abc": 1})
62 should.Equal(any.MustBeValid().ToFloat64(), float64(0))
63
64 any = jsoniter.Wrap("abc")
65 should.Equal(any.MustBeValid().ToFloat64(), float64(0))
66
67 any = jsoniter.Wrap([]int{})
68 should.Equal(any.MustBeValid().ToFloat64(), float64(0))
69
70 any = jsoniter.Wrap([]int{1, 2})
71 should.Equal(any.MustBeValid().ToFloat64(), float64(1))
72 }
73
View as plain text