uuid_test.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package uuid_test
  2. import (
  3. "testing"
  4. "v2ray.com/core/common"
  5. "v2ray.com/core/common/compare"
  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 err := compare.StringEqualWithDetail(uuid.String(), str); err != nil {
  15. t.Fatal(err)
  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 err := compare.BytesEqualWithDetail(expectedBytes, uuid.Bytes()); err != nil {
  28. t.Fatal(err)
  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 = nil
  57. var uuid2 *UUID = nil
  58. assert(uuid.Equals(uuid2), IsTrue)
  59. uuid3 := New()
  60. assert(uuid.Equals(&uuid3), IsFalse)
  61. }