1 // Copyright 2014 Google Inc. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
14 var testUUID = Parse("f47ac10b-58cc-0372-8567-0e02b2c3d479")
15 var testArray = testUUID.Array()
17 func TestJSON(t *testing.T) {
22 s1 := S{ID1: testUUID}
23 data, err := json.Marshal(&s1)
28 if err := json.Unmarshal(data, &s2); err != nil {
31 if !reflect.DeepEqual(&s1, &s2) {
32 t.Errorf("got %#v, want %#v", s2, s1)
36 func TestJSONArray(t *testing.T) {
41 s1 := S{ID1: testArray}
42 data, err := json.Marshal(&s1)
47 if err := json.Unmarshal(data, &s2); err != nil {
50 if !reflect.DeepEqual(&s1, &s2) {
51 t.Errorf("got %#v, want %#v", s2, s1)
55 func TestMarshal(t *testing.T) {
56 data, err := testUUID.MarshalBinary()
58 t.Fatalf("MarhsalBinary returned unexpected error %v", err)
60 if !bytes.Equal(data, testUUID) {
61 t.Fatalf("MarhsalBinary returns %x, want %x", data, testUUID)
64 u.UnmarshalBinary(data)
66 t.Fatalf("UnmarhsalBinary returns %v, want %v", u, testUUID)
70 func TestMarshalArray(t *testing.T) {
71 data, err := testArray.MarshalBinary()
73 t.Fatalf("MarhsalBinary returned unexpected error %v", err)
75 if !bytes.Equal(data, testUUID) {
76 t.Fatalf("MarhsalBinary returns %x, want %x", data, testUUID)
79 a.UnmarshalBinary(data)
81 t.Fatalf("UnmarhsalBinary returns %v, want %v", a, testArray)
85 func TestMarshalTextArray(t *testing.T) {
86 data, err := testArray.MarshalText()
88 t.Fatalf("MarhsalText returned unexpected error %v", err)
93 t.Fatalf("UnmarhsalText returns %v, want %v", a, testArray)
97 func BenchmarkUUID_MarshalJSON(b *testing.B) {
99 UUID UUID `json:"uuid"`
101 x.UUID = Parse("f47ac10b-58cc-0372-8567-0e02b2c3d479")
103 b.Fatal("invalid uuid")
105 for i := 0; i < b.N; i++ {
106 js, err := json.Marshal(x)
108 b.Fatalf("marshal json: %#v (%v)", js, err)
113 func BenchmarkUUID_UnmarshalJSON(b *testing.B) {
114 js := []byte(`{"uuid":"f47ac10b-58cc-0372-8567-0e02b2c3d479"}`)
116 UUID UUID `json:"uuid"`
118 for i := 0; i < b.N; i++ {
119 err := json.Unmarshal(js, &x)
121 b.Fatalf("marshal json: %#v (%v)", js, err)