Lorenz Brun | 62a1edd | 2023-06-20 16:01:44 +0200 | [diff] [blame^] | 1 | package msguid |
| 2 | |
| 3 | import ( |
| 4 | "testing" |
| 5 | |
| 6 | "github.com/google/go-cmp/cmp" |
| 7 | "github.com/google/uuid" |
| 8 | ) |
| 9 | |
| 10 | func TestRoundTrip(t *testing.T) { |
| 11 | cases := []struct { |
| 12 | name string |
| 13 | uuid string |
| 14 | expected [16]byte |
| 15 | }{ |
| 16 | { |
| 17 | "WikipediaExample1", |
| 18 | "00112233-4455-6677-8899-AABBCCDDEEFF", |
| 19 | [16]byte{ |
| 20 | 0x33, 0x22, 0x11, 0x00, 0x55, 0x44, 0x77, 0x66, |
| 21 | 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, |
| 22 | }, |
| 23 | }, |
| 24 | } |
| 25 | for _, c := range cases { |
| 26 | t.Run(c.name, func(t *testing.T) { |
| 27 | origUUID := uuid.MustParse(c.uuid) |
| 28 | got := From(origUUID) |
| 29 | diff := cmp.Diff(c.expected, got) |
| 30 | if diff != "" { |
| 31 | t.Fatalf("To(%q) returned unexpected result: %v", origUUID, diff) |
| 32 | } |
| 33 | back := To(got) |
| 34 | diff2 := cmp.Diff(origUUID, back) |
| 35 | if diff2 != "" { |
| 36 | t.Errorf("From(To(%q)) did not return original value: %v", origUUID, diff2) |
| 37 | } |
| 38 | }) |
| 39 | } |
| 40 | } |