mirror of
https://github.com/rwinkhart/go-winio.git
synced 2026-09-06 09:07:18 -04:00
Add guid package
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user