jsoniter_must_be_valid_test.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package jsoniter
  2. import (
  3. "testing"
  4. "github.com/json-iterator/go/require"
  5. )
  6. // if must be valid is useless, just drop this test
  7. func Test_must_be_valid(t *testing.T) {
  8. should := require.New(t)
  9. any := Get([]byte("123"))
  10. should.Equal(any.MustBeValid().ToInt(), 123)
  11. any = Wrap(int8(10))
  12. should.Equal(any.MustBeValid().ToInt(), 10)
  13. any = Wrap(int16(10))
  14. should.Equal(any.MustBeValid().ToInt(), 10)
  15. any = Wrap(int32(10))
  16. should.Equal(any.MustBeValid().ToInt(), 10)
  17. any = Wrap(int64(10))
  18. should.Equal(any.MustBeValid().ToInt(), 10)
  19. any = Wrap(uint(10))
  20. should.Equal(any.MustBeValid().ToInt(), 10)
  21. any = Wrap(uint8(10))
  22. should.Equal(any.MustBeValid().ToInt(), 10)
  23. any = Wrap(uint16(10))
  24. should.Equal(any.MustBeValid().ToInt(), 10)
  25. any = Wrap(uint32(10))
  26. should.Equal(any.MustBeValid().ToInt(), 10)
  27. any = Wrap(uint64(10))
  28. should.Equal(any.MustBeValid().ToInt(), 10)
  29. any = Wrap(float32(10))
  30. should.Equal(any.MustBeValid().ToFloat64(), float64(10))
  31. any = Wrap(float64(10))
  32. should.Equal(any.MustBeValid().ToFloat64(), float64(10))
  33. any = Wrap(true)
  34. should.Equal(any.MustBeValid().ToFloat64(), float64(1))
  35. any = Wrap(false)
  36. should.Equal(any.MustBeValid().ToFloat64(), float64(0))
  37. any = Wrap(nil)
  38. should.Equal(any.MustBeValid().ToFloat64(), float64(0))
  39. any = Wrap(struct{ age int }{age: 1})
  40. should.Equal(any.MustBeValid().ToFloat64(), float64(0))
  41. any = Wrap(map[string]interface{}{"abc": 1})
  42. should.Equal(any.MustBeValid().ToFloat64(), float64(0))
  43. any = Wrap("abc")
  44. should.Equal(any.MustBeValid().ToFloat64(), float64(0))
  45. any = Wrap([]int{})
  46. should.Equal(any.MustBeValid().ToFloat64(), float64(0))
  47. any = Wrap([]int{1, 2})
  48. should.Equal(any.MustBeValid().ToFloat64(), float64(1))
  49. }