@@ -2,6 +2,7 @@ package tarantool_test
22
33import (
44 "bytes"
5+ "context"
56 "errors"
67 "testing"
78 "time"
@@ -30,6 +31,11 @@ const validTimeout = 500 * time.Millisecond
3031
3132var validStmt * Prepared = & Prepared {StatementID : 1 , Conn : & Connection {}}
3233
34+ var validProtocolInfo ProtocolInfo = ProtocolInfo {
35+ Version : ProtocolVersion (3 ),
36+ Features : []ProtocolFeature {StreamsFeature },
37+ }
38+
3339type ValidSchemeResolver struct {
3440}
3541
@@ -184,6 +190,7 @@ func TestRequestsCodes(t *testing.T) {
184190 {req : NewBeginRequest (), code : BeginRequestCode },
185191 {req : NewCommitRequest (), code : CommitRequestCode },
186192 {req : NewRollbackRequest (), code : RollbackRequestCode },
193+ {req : NewIdRequest (validProtocolInfo ), code : IdRequestCode },
187194 {req : NewBroadcastRequest (validKey ), code : CallRequestCode },
188195 }
189196
@@ -216,6 +223,7 @@ func TestRequestsAsync(t *testing.T) {
216223 {req : NewBeginRequest (), async : false },
217224 {req : NewCommitRequest (), async : false },
218225 {req : NewRollbackRequest (), async : false },
226+ {req : NewIdRequest (validProtocolInfo ), async : false },
219227 {req : NewBroadcastRequest (validKey ), async : false },
220228 }
221229
@@ -226,6 +234,73 @@ func TestRequestsAsync(t *testing.T) {
226234 }
227235}
228236
237+ func TestRequestsCtx_default (t * testing.T ) {
238+ tests := []struct {
239+ req Request
240+ expected context.Context
241+ }{
242+ {req : NewSelectRequest (validSpace ), expected : nil },
243+ {req : NewUpdateRequest (validSpace ), expected : nil },
244+ {req : NewUpsertRequest (validSpace ), expected : nil },
245+ {req : NewInsertRequest (validSpace ), expected : nil },
246+ {req : NewReplaceRequest (validSpace ), expected : nil },
247+ {req : NewDeleteRequest (validSpace ), expected : nil },
248+ {req : NewCall16Request (validExpr ), expected : nil },
249+ {req : NewCall17Request (validExpr ), expected : nil },
250+ {req : NewEvalRequest (validExpr ), expected : nil },
251+ {req : NewExecuteRequest (validExpr ), expected : nil },
252+ {req : NewPingRequest (), expected : nil },
253+ {req : NewPrepareRequest (validExpr ), expected : nil },
254+ {req : NewUnprepareRequest (validStmt ), expected : nil },
255+ {req : NewExecutePreparedRequest (validStmt ), expected : nil },
256+ {req : NewBeginRequest (), expected : nil },
257+ {req : NewCommitRequest (), expected : nil },
258+ {req : NewRollbackRequest (), expected : nil },
259+ {req : NewIdRequest (validProtocolInfo ), expected : nil },
260+ {req : NewBroadcastRequest (validKey ), expected : nil },
261+ }
262+
263+ for _ , test := range tests {
264+ if ctx := test .req .Ctx (); ctx != test .expected {
265+ t .Errorf ("An invalid ctx %t, expected %t" , ctx , test .expected )
266+ }
267+ }
268+ }
269+
270+ func TestRequestsCtx_setter (t * testing.T ) {
271+ ctx := context .Background ()
272+ tests := []struct {
273+ req Request
274+ expected context.Context
275+ }{
276+ {req : NewSelectRequest (validSpace ).Context (ctx ), expected : ctx },
277+ {req : NewUpdateRequest (validSpace ).Context (ctx ), expected : ctx },
278+ {req : NewUpsertRequest (validSpace ).Context (ctx ), expected : ctx },
279+ {req : NewInsertRequest (validSpace ).Context (ctx ), expected : ctx },
280+ {req : NewReplaceRequest (validSpace ).Context (ctx ), expected : ctx },
281+ {req : NewDeleteRequest (validSpace ).Context (ctx ), expected : ctx },
282+ {req : NewCall16Request (validExpr ).Context (ctx ), expected : ctx },
283+ {req : NewCall17Request (validExpr ).Context (ctx ), expected : ctx },
284+ {req : NewEvalRequest (validExpr ).Context (ctx ), expected : ctx },
285+ {req : NewExecuteRequest (validExpr ).Context (ctx ), expected : ctx },
286+ {req : NewPingRequest ().Context (ctx ), expected : ctx },
287+ {req : NewPrepareRequest (validExpr ).Context (ctx ), expected : ctx },
288+ {req : NewUnprepareRequest (validStmt ).Context (ctx ), expected : ctx },
289+ {req : NewExecutePreparedRequest (validStmt ).Context (ctx ), expected : ctx },
290+ {req : NewBeginRequest ().Context (ctx ), expected : ctx },
291+ {req : NewCommitRequest ().Context (ctx ), expected : ctx },
292+ {req : NewRollbackRequest ().Context (ctx ), expected : ctx },
293+ {req : NewIdRequest (validProtocolInfo ).Context (ctx ), expected : ctx },
294+ {req : NewBroadcastRequest (validKey ).Context (ctx ), expected : ctx },
295+ }
296+
297+ for _ , test := range tests {
298+ if ctx := test .req .Ctx (); ctx != test .expected {
299+ t .Errorf ("An invalid ctx %t, expected %t" , ctx , test .expected )
300+ }
301+ }
302+ }
303+
229304func TestPingRequestDefaultValues (t * testing.T ) {
230305 var refBuf bytes.Buffer
231306
0 commit comments