| package guid |
| |
| import ( |
| "encoding/json" |
| "fmt" |
| "testing" |
| ) |
| |
| func Test_New(t *testing.T) { |
| g, err := NewV4() |
| if err != nil { |
| t.Fatal(err) |
| } |
| g2, err := NewV4() |
| if err != nil { |
| t.Fatal(err) |
| } |
| if g == g2 { |
| t.Fatalf("GUIDs are equal: %s, %s", g, g2) |
| } |
| } |
| |
| func Test_FromString(t *testing.T) { |
| orig := "8e35239e-2084-490e-a3db-ab18ee0744cb" |
| g, err := FromString(orig) |
| if err != nil { |
| t.Fatal(err) |
| } |
| s := g.String() |
| if orig != s { |
| t.Fatalf("GUIDs not equal: %s, %s", orig, s) |
| } |
| } |
| |
| func Test_MarshalJSON(t *testing.T) { |
| g, err := NewV4() |
| if err != nil { |
| t.Fatal(err) |
| } |
| j, err := json.Marshal(g) |
| if err != nil { |
| t.Fatal(err) |
| } |
| gj := fmt.Sprintf("\"%s\"", g.String()) |
| if string(j) != gj { |
| t.Fatalf("JSON not equal: %s, %s", j, gj) |
| } |
| } |
| |
| func Test_MarshalJSON_Nested(t *testing.T) { |
| type test struct { |
| G GUID |
| } |
| g, err := NewV4() |
| if err != nil { |
| t.Fatal(err) |
| } |
| t1 := test{g} |
| j, err := json.Marshal(t1) |
| if err != nil { |
| t.Fatal(err) |
| } |
| gj := fmt.Sprintf("{\"G\":\"%s\"}", g.String()) |
| if string(j) != gj { |
| t.Fatalf("JSON not equal: %s, %s", j, gj) |
| } |
| } |
| |
| func Test_UnmarshalJSON(t *testing.T) { |
| g, err := NewV4() |
| if err != nil { |
| t.Fatal(err) |
| } |
| j, err := json.Marshal(g) |
| if err != nil { |
| t.Fatal(err) |
| } |
| var g2 GUID |
| if err := json.Unmarshal(j, &g2); err != nil { |
| t.Fatal(err) |
| } |
| if g != g2 { |
| t.Fatalf("GUIDs not equal: %s, %s", g, g2) |
| } |
| } |
| |
| func Test_UnmarshalJSON_Nested(t *testing.T) { |
| type test struct { |
| G GUID |
| } |
| g, err := NewV4() |
| if err != nil { |
| t.Fatal(err) |
| } |
| t1 := test{g} |
| j, err := json.Marshal(t1) |
| if err != nil { |
| t.Fatal(err) |
| } |
| var t2 test |
| if err := json.Unmarshal(j, &t2); err != nil { |
| t.Fatal(err) |
| } |
| if t1.G != t2.G { |
| t.Fatalf("GUIDs not equal: %v, %v", t1.G, t2.G) |
| } |
| } |