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