Sfoglia il codice sorgente

test serializing struct with session for http server

master
sp 4 anni fa
parent
commit
00bfdd13fe
1 ha cambiato i file con 51 aggiunte e 0 eliminazioni
  1. +51
    -0
      main_test.go

+ 51
- 0
main_test.go Vedi File

@@ -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")

}

Loading…
Annulla
Salva