...
1 package mxj
2
3 import (
4 "bytes"
5 "encoding/gob"
6 "fmt"
7 "testing"
8 )
9
10 var 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
17 func TestGobHeader(t *testing.T) {
18 fmt.Println("\n---------------- gob_test.go ...")
19 }
20
21 func 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
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
36 func 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
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
52 func 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
View as plain text