...

Source file src/github.com/clbanning/mxj/v2/gob_test.go

Documentation: github.com/clbanning/mxj/v2

     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  	// 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  
    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  	// 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  
    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