mirror of
https://github.com/rwinkhart/go-winio.git
synced 2026-08-30 13:56:51 -04:00
108 lines
1.7 KiB
Go
108 lines
1.7 KiB
Go
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)
|
|
}
|
|
}
|