uuid_test.go 1.7 KB

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