uuid_test.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package uuid_test
  2. import (
  3. "testing"
  4. . "v2ray.com/core/common/uuid"
  5. . "v2ray.com/ext/assert"
  6. )
  7. func TestParseBytes(t *testing.T) {
  8. assert := With(t)
  9. str := "2418d087-648d-4990-86e8-19dca1d006d3"
  10. bytes := []byte{0x24, 0x18, 0xd0, 0x87, 0x64, 0x8d, 0x49, 0x90, 0x86, 0xe8, 0x19, 0xdc, 0xa1, 0xd0, 0x06, 0xd3}
  11. uuid, err := ParseBytes(bytes)
  12. assert(err, IsNil)
  13. assert(uuid.String(), Equals, str)
  14. _, err = ParseBytes([]byte{1, 3, 2, 4})
  15. assert(err, IsNotNil)
  16. }
  17. func TestParseString(t *testing.T) {
  18. assert := With(t)
  19. str := "2418d087-648d-4990-86e8-19dca1d006d3"
  20. expectedBytes := []byte{0x24, 0x18, 0xd0, 0x87, 0x64, 0x8d, 0x49, 0x90, 0x86, 0xe8, 0x19, 0xdc, 0xa1, 0xd0, 0x06, 0xd3}
  21. uuid, err := ParseString(str)
  22. assert(err, IsNil)
  23. assert(uuid.Bytes(), Equals, expectedBytes)
  24. uuid, err = ParseString("2418d087")
  25. assert(err, IsNotNil)
  26. uuid, err = ParseString("2418d087-648k-4990-86e8-19dca1d006d3")
  27. assert(err, IsNotNil)
  28. }
  29. func TestNewUUID(t *testing.T) {
  30. assert := With(t)
  31. uuid := New()
  32. uuid2, err := ParseString(uuid.String())
  33. assert(err, IsNil)
  34. assert(uuid.String(), Equals, uuid2.String())
  35. assert(uuid.Bytes(), Equals, uuid2.Bytes())
  36. }
  37. func TestRandom(t *testing.T) {
  38. assert := With(t)
  39. uuid := New()
  40. uuid2 := New()
  41. assert(uuid.String(), NotEquals, uuid2.String())
  42. assert(uuid.Bytes(), NotEquals, uuid2.Bytes())
  43. }
  44. func TestEquals(t *testing.T) {
  45. assert := With(t)
  46. var uuid *UUID = nil
  47. var uuid2 *UUID = nil
  48. assert(uuid.Equals(uuid2), IsTrue)
  49. uuid3 := New()
  50. assert(uuid.Equals(&uuid3), IsFalse)
  51. }
  52. func TestNext(t *testing.T) {
  53. assert := With(t)
  54. uuid := New()
  55. uuid2 := uuid.Next()
  56. assert(uuid.Equals(&uuid2), IsFalse)
  57. }