...

Source file src/github.com/redis/go-redis/v9/internal/proto/scan_test.go

Documentation: github.com/redis/go-redis/v9/internal/proto

     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