1package mxj 2 3import ( 4 "bytes" 5 "encoding/gob" 6 "fmt" 7 "testing" 8) 9 10var gobData = map[string]interface{}{ 11 "one": 1, 12 "two": 2.0001, 13 "three": "tres", 14 "four": []int{1, 2, 3, 4}, 15 "five": map[string]interface{}{"hi": "there"}} 16 17func TestGobHeader(t *testing.T) { 18 fmt.Println("\n---------------- gob_test.go ...") 19} 20 21func TestNewMapGob(t *testing.T) { 22 var buf bytes.Buffer 23 gob.Register(gobData) 24 enc := gob.NewEncoder(&buf) 25 if err := enc.Encode(gobData); err != nil { 26 t.Fatal("enc.Encode err:", err.Error()) 27 } 28 // decode 'buf' into a Map - map[string]interface{} 29 m, err := NewMapGob(buf.Bytes()) 30 if err != nil { 31 t.Fatal("NewMapGob err:", err.Error()) 32 } 33 fmt.Printf("m: %v\n", m) 34} 35 36func TestMapGob(t *testing.T) { 37 mv := Map(gobData) 38 g, err := mv.Gob() 39 if err != nil { 40 t.Fatal("m.Gob err:", err.Error()) 41 } 42 // decode 'g' into a map[string]interface{} 43 m := make(map[string]interface{}) 44 r := bytes.NewReader(g) 45 dec := gob.NewDecoder(r) 46 if err := dec.Decode(&m); err != nil { 47 t.Fatal("dec.Decode err:", err.Error()) 48 } 49 fmt.Printf("m: %v\n", m) 50} 51 52func TestGobSymmetric(t *testing.T) { 53 mv := Map(gobData) 54 fmt.Printf("mv: %v\n", mv) 55 g, err := mv.Gob() 56 if err != nil { 57 t.Fatal("m.Gob err:", err.Error()) 58 } 59 m, err := NewMapGob(g) 60 if err != nil { 61 t.Fatal("NewMapGob err:", err.Error()) 62 } 63 fmt.Printf("m : %v\n", m) 64} 65