@@ -12,6 +12,7 @@ import (
12
12
. "github.com/bsm/gomega"
13
13
14
14
"github.com/redis/go-redis/v9/internal/proto"
15
+ "github.com/redis/go-redis/v9/internal/util"
15
16
)
16
17
17
18
type MyType struct {}
@@ -100,3 +101,53 @@ func BenchmarkWriteBuffer_Append(b *testing.B) {
100
101
}
101
102
}
102
103
}
104
+
105
+ var _ = Describe ("WriteArg" , func () {
106
+ var buf * bytes.Buffer
107
+ var wr * proto.Writer
108
+
109
+ BeforeEach (func () {
110
+ buf = new (bytes.Buffer )
111
+ wr = proto .NewWriter (buf )
112
+ })
113
+
114
+ args := map [any ]string {
115
+ "hello" : "$1\r \n hello\r \n " ,
116
+ int (10 ): "$2\r \n 10\r \n " ,
117
+ util .ToPtr (int (10 )): "$2\r \n 10\r \n " ,
118
+ int8 (10 ): "$2\r \n 10\r \n " ,
119
+ util .ToPtr (int8 (10 )): "$2\r \n 10\r \n " ,
120
+ int16 (10 ): "$2\r \n 10\r \n " ,
121
+ util .ToPtr (int16 (10 )): "$2\r \n 10\r \n " ,
122
+ int32 (10 ): "$2\r \n 10\r \n " ,
123
+ util .ToPtr (int32 (10 )): "$2\r \n 10\r \n " ,
124
+ int64 (10 ): "$2\r \n 10\r \n " ,
125
+ util .ToPtr (int64 (10 )): "$2\r \n 10\r \n " ,
126
+ uint (10 ): "$2\r \n 10\r \n " ,
127
+ util .ToPtr (uint (10 )): "$2\r \n 10\r \n " ,
128
+ uint8 (10 ): "$2\r \n 10\r \n " ,
129
+ util .ToPtr (uint8 (10 )): "$2\r \n 10\r \n " ,
130
+ uint16 (10 ): "$2\r \n 10\r \n " ,
131
+ util .ToPtr (uint16 (10 )): "$2\r \n 10\r \n " ,
132
+ uint32 (10 ): "$2\r \n 10\r \n " ,
133
+ util .ToPtr (uint32 (10 )): "$2\r \n 10\r \n " ,
134
+ uint64 (10 ): "$2\r \n 10\r \n " ,
135
+ util .ToPtr (uint64 (10 )): "$2\r \n 10\r \n " ,
136
+ float32 (10.3 ): "$4\r \n 10.3\r \n " ,
137
+ util .ToPtr (float32 (10.3 )): "$4\r \n 10.3\r \n " ,
138
+ float64 (10.3 ): "$4\r \n 10.3\r \n " ,
139
+ util .ToPtr (float64 (10.3 )): "$4\r \n 10.3\r \n " ,
140
+ bool (true ): "$1\r \n 1\r \n " ,
141
+ bool (false ): "$1\r \n 0\r \n " ,
142
+ util .ToPtr (bool (true )): "$1\r \n 1\r \n " ,
143
+ util .ToPtr (bool (false )): "$1\r \n 0\r \n " ,
144
+ }
145
+
146
+ for arg , expect := range args {
147
+ It (fmt .Sprintf ("should write arg of type %T" , arg ), func () {
148
+ err := wr .WriteArg (arg )
149
+ Expect (err ).NotTo (HaveOccurred ())
150
+ Expect (buf .String ()).To (Equal (expect ))
151
+ })
152
+ }
153
+ })
0 commit comments