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