...

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

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

     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