uuid_test.go 1.7 KB

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