...
1 package proto
2
3 import (
4 "encoding/json"
5
6 . "github.com/onsi/ginkgo"
7 . "github.com/onsi/gomega"
8 )
9
10 type testScanSliceStruct struct {
11 ID int
12 Name string
13 }
14
15 func (s *testScanSliceStruct) MarshalBinary() ([]byte, error) {
16 return json.Marshal(s)
17 }
18
19 func (s *testScanSliceStruct) UnmarshalBinary(b []byte) error {
20 return json.Unmarshal(b, s)
21 }
22
23 var _ = Describe("ScanSlice", func() {
24 data := []string{
25 `{"ID":-1,"Name":"Back Yu"}`,
26 `{"ID":1,"Name":"szyhf"}`,
27 }
28
29 It("[]testScanSliceStruct", func() {
30 var slice []testScanSliceStruct
31 err := ScanSlice(data, &slice)
32 Expect(err).NotTo(HaveOccurred())
33 Expect(slice).To(Equal([]testScanSliceStruct{
34 {-1, "Back Yu"},
35 {1, "szyhf"},
36 }))
37 })
38
39 It("var testContainer []*testScanSliceStruct", func() {
40 var slice []*testScanSliceStruct
41 err := ScanSlice(data, &slice)
42 Expect(err).NotTo(HaveOccurred())
43 Expect(slice).To(Equal([]*testScanSliceStruct{
44 {-1, "Back Yu"},
45 {1, "szyhf"},
46 }))
47 })
48 })
49
View as plain text