mirror of
				https://github.com/redis/go-redis.git
				synced 2025-10-29 05:29:22 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package proto_test
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 
 | |
| 	"github.com/go-redis/redis/v8/internal/proto"
 | |
| 	. "github.com/onsi/ginkgo"
 | |
| 	. "github.com/onsi/gomega"
 | |
| )
 | |
| 
 | |
| type testScanSliceStruct struct {
 | |
| 	ID   int
 | |
| 	Name string
 | |
| }
 | |
| 
 | |
| func (s *testScanSliceStruct) MarshalBinary() ([]byte, error) {
 | |
| 	return json.Marshal(s)
 | |
| }
 | |
| 
 | |
| func (s *testScanSliceStruct) UnmarshalBinary(b []byte) error {
 | |
| 	return json.Unmarshal(b, s)
 | |
| }
 | |
| 
 | |
| var _ = Describe("ScanSlice", func() {
 | |
| 	data := []string{
 | |
| 		`{"ID":-1,"Name":"Back Yu"}`,
 | |
| 		`{"ID":1,"Name":"szyhf"}`,
 | |
| 	}
 | |
| 
 | |
| 	It("[]testScanSliceStruct", func() {
 | |
| 		var slice []testScanSliceStruct
 | |
| 		err := proto.ScanSlice(data, &slice)
 | |
| 		Expect(err).NotTo(HaveOccurred())
 | |
| 		Expect(slice).To(Equal([]testScanSliceStruct{
 | |
| 			{-1, "Back Yu"},
 | |
| 			{1, "szyhf"},
 | |
| 		}))
 | |
| 	})
 | |
| 
 | |
| 	It("var testContainer []*testScanSliceStruct", func() {
 | |
| 		var slice []*testScanSliceStruct
 | |
| 		err := proto.ScanSlice(data, &slice)
 | |
| 		Expect(err).NotTo(HaveOccurred())
 | |
| 		Expect(slice).To(Equal([]*testScanSliceStruct{
 | |
| 			{-1, "Back Yu"},
 | |
| 			{1, "szyhf"},
 | |
| 		}))
 | |
| 	})
 | |
| })
 |