github.com/alexflint/go-memdump@v1.1.0/homogenous_test.go (about) 1 package memdump 2 3 import ( 4 "bytes" 5 "io" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestHomogenous_Struct(t *testing.T) { 13 type T struct { 14 X int 15 Y string 16 } 17 src := []T{{1, "s1"}, {2, "s2"}, {3, "s3"}} 18 19 var b bytes.Buffer 20 21 enc := NewEncoder(&b) 22 for i, x := range src { 23 t.Logf("encoding object %d", i) 24 err := enc.Encode(&x) 25 require.NoError(t, err) 26 } 27 28 dec := NewDecoder(&b) 29 var dest []T 30 for i := 0; ; i++ { 31 t.Logf("decoding object %d", i) 32 var x T 33 err := dec.Decode(&x) 34 if err == io.EOF { 35 break 36 } 37 assert.NoError(t, err) 38 dest = append(dest, x) 39 } 40 41 assert.EqualValues(t, src, dest) 42 }