summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/go-redis/redis/internal/proto/scan_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-redis/redis/internal/proto/scan_test.go')
-rw-r--r--vendor/github.com/go-redis/redis/internal/proto/scan_test.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/github.com/go-redis/redis/internal/proto/scan_test.go b/vendor/github.com/go-redis/redis/internal/proto/scan_test.go
new file mode 100644
index 000000000..fadcd0561
--- /dev/null
+++ b/vendor/github.com/go-redis/redis/internal/proto/scan_test.go
@@ -0,0 +1,48 @@
+package proto
+
+import (
+ "encoding/json"
+
+ . "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 := 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 := ScanSlice(data, &slice)
+ Expect(err).NotTo(HaveOccurred())
+ Expect(slice).To(Equal([]*testScanSliceStruct{
+ {-1, "Back Yu"},
+ {1, "szyhf"},
+ }))
+ })
+})