| package main | |||||
| import ( | |||||
| "biukop/sfm/loan" | |||||
| "encoding/gob" | |||||
| "github.com/stretchr/testify/assert" | |||||
| "testing" | |||||
| ) | |||||
| type ABC struct { | |||||
| TEST string | |||||
| ABC int | |||||
| AB []byte | |||||
| } | |||||
| func TestSession_SaveOtherType(t *testing.T) { | |||||
| gob.Register(ABC{}) | |||||
| se := loan.Session{} | |||||
| se.FakeNew() | |||||
| e := se.Write() | |||||
| assert.Equal(t, e, nil, "dbWrite should be ok") | |||||
| se1 := loan.Session{} | |||||
| e = se1.Read(se.Id) | |||||
| assert.Equal(t, e, nil, "dbRead should success") | |||||
| assert.Equal(t, se, se1, "two structure should be equal") | |||||
| //random struct | |||||
| p := ABC{} | |||||
| p.TEST = "this is TEST" | |||||
| p.ABC = 123 | |||||
| p.AB = []byte("000111222333444555666777888999") | |||||
| //save to db | |||||
| se.Add("people", p) | |||||
| e = se.Write() | |||||
| assert.Equal(t, e, nil, "dbWrite Bin struct") | |||||
| //read it back | |||||
| e = se1.Read(se.Id) | |||||
| assert.Equal(t, e, nil, "dbRead read Bin") | |||||
| //unpack Bin | |||||
| p1 := se1.Get("people") | |||||
| assert.Equal(t, e, nil, "UnMarshal bin") | |||||
| //the Bin should be the same | |||||
| assert.Equal(t, p, p1, "two structure should be the same") | |||||
| } |