diff --git a/main_test.go b/main_test.go new file mode 100644 index 0000000..d1509b3 --- /dev/null +++ b/main_test.go @@ -0,0 +1,51 @@ +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") + +}