uuid_test.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package uuid_test
  2. import (
  3. "testing"
  4. . "v2ray.com/core/common/uuid"
  5. "v2ray.com/core/testing/assert"
  6. )
  7. func TestParseBytes(t *testing.T) {
  8. assert := assert.On(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.Error(err).IsNil()
  13. assert.String(uuid.String()).Equals(str)
  14. _, err = ParseBytes([]byte{1, 3, 2, 4})
  15. assert.Error(err).Equals(ErrInvalidID)
  16. }
  17. func TestParseString(t *testing.T) {
  18. assert := assert.On(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.Error(err).IsNil()
  23. assert.Bytes(uuid.Bytes()).Equals(expectedBytes)
  24. uuid, err = ParseString("2418d087")
  25. assert.Error(err).Equals(ErrInvalidID)
  26. uuid, err = ParseString("2418d087-648k-4990-86e8-19dca1d006d3")
  27. assert.Error(err).IsNotNil()
  28. }
  29. func TestNewUUID(t *testing.T) {
  30. assert := assert.On(t)
  31. uuid := New()
  32. uuid2, err := ParseString(uuid.String())
  33. assert.Error(err).IsNil()
  34. assert.String(uuid.String()).Equals(uuid2.String())
  35. assert.Bytes(uuid.Bytes()).Equals(uuid2.Bytes())
  36. }
  37. func TestRandom(t *testing.T) {
  38. assert := assert.On(t)
  39. uuid := New()
  40. uuid2 := New()
  41. assert.String(uuid.String()).NotEquals(uuid2.String())
  42. assert.Bytes(uuid.Bytes()).NotEquals(uuid2.Bytes())
  43. }
  44. func TestEquals(t *testing.T) {
  45. assert := assert.On(t)
  46. var uuid *UUID = nil
  47. var uuid2 *UUID = nil
  48. assert.Bool(uuid.Equals(uuid2)).IsTrue()
  49. assert.Bool(uuid.Equals(New())).IsFalse()
  50. }
  51. func TestNext(t *testing.T) {
  52. assert := assert.On(t)
  53. uuid := New()
  54. uuid2 := uuid.Next()
  55. assert.Bool(uuid.Equals(uuid2)).IsFalse()
  56. }