portrange_test.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package json
  2. import (
  3. "encoding/json"
  4. "testing"
  5. v2testing "github.com/v2ray/v2ray-core/testing"
  6. "github.com/v2ray/v2ray-core/testing/assert"
  7. )
  8. func TestIntPort(t *testing.T) {
  9. v2testing.Current(t)
  10. var portRange PortRange
  11. err := json.Unmarshal([]byte("1234"), &portRange)
  12. assert.Error(err).IsNil()
  13. assert.Uint16(portRange.from.Value()).Equals(uint16(1234))
  14. assert.Uint16(portRange.to.Value()).Equals(uint16(1234))
  15. }
  16. func TestOverRangeIntPort(t *testing.T) {
  17. v2testing.Current(t)
  18. var portRange PortRange
  19. err := json.Unmarshal([]byte("70000"), &portRange)
  20. assert.Error(err).Equals(InvalidPortRange)
  21. err = json.Unmarshal([]byte("-1"), &portRange)
  22. assert.Error(err).Equals(InvalidPortRange)
  23. }
  24. func TestSingleStringPort(t *testing.T) {
  25. v2testing.Current(t)
  26. var portRange PortRange
  27. err := json.Unmarshal([]byte("\"1234\""), &portRange)
  28. assert.Error(err).IsNil()
  29. assert.Uint16(portRange.from.Value()).Equals(uint16(1234))
  30. assert.Uint16(portRange.to.Value()).Equals(uint16(1234))
  31. }
  32. func TestStringPairPort(t *testing.T) {
  33. v2testing.Current(t)
  34. var portRange PortRange
  35. err := json.Unmarshal([]byte("\"1234-5678\""), &portRange)
  36. assert.Error(err).IsNil()
  37. assert.Uint16(portRange.from.Value()).Equals(uint16(1234))
  38. assert.Uint16(portRange.to.Value()).Equals(uint16(5678))
  39. }
  40. func TestOverRangeStringPort(t *testing.T) {
  41. v2testing.Current(t)
  42. var portRange PortRange
  43. err := json.Unmarshal([]byte("\"65536\""), &portRange)
  44. assert.Error(err).Equals(InvalidPortRange)
  45. err = json.Unmarshal([]byte("\"70000-80000\""), &portRange)
  46. assert.Error(err).Equals(InvalidPortRange)
  47. err = json.Unmarshal([]byte("\"1-90000\""), &portRange)
  48. assert.Error(err).Equals(InvalidPortRange)
  49. err = json.Unmarshal([]byte("\"700-600\""), &portRange)
  50. assert.Error(err).Equals(InvalidPortRange)
  51. }