Skip to content

Commit 3d37409

Browse files
committed
test: add Ctx() test for requests
Part of #244
1 parent a1f28a6 commit 3d37409

File tree

2 files changed

+75
-18
lines changed

2 files changed

+75
-18
lines changed

request_test.go

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package tarantool_test
22

33
import (
44
"bytes"
5+
"context"
56
"errors"
67
"testing"
78
"time"
@@ -30,6 +31,11 @@ const validTimeout = 500 * time.Millisecond
3031

3132
var validStmt *Prepared = &Prepared{StatementID: 1, Conn: &Connection{}}
3233

34+
var validProtocolInfo ProtocolInfo = ProtocolInfo{
35+
Version: ProtocolVersion(3),
36+
Features: []ProtocolFeature{StreamsFeature},
37+
}
38+
3339
type 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+
229304
func TestPingRequestDefaultValues(t *testing.T) {
230305
var refBuf bytes.Buffer
231306

tarantool_test.go

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2973,24 +2973,6 @@ func TestClientIdRequestObjectWithPassedCanceledContext(t *testing.T) {
29732973
require.Equal(t, err.Error(), "context is done")
29742974
}
29752975

2976-
func TestClientIdRequestObjectWithContext(t *testing.T) {
2977-
var err error
2978-
conn := test_helpers.ConnectWithValidation(t, server, opts)
2979-
defer conn.Close()
2980-
2981-
ctx, cancel := context.WithCancel(context.Background())
2982-
req := NewIdRequest(ProtocolInfo{
2983-
Version: ProtocolVersion(1),
2984-
Features: []ProtocolFeature{StreamsFeature},
2985-
}).Context(ctx) //nolint
2986-
fut := conn.Do(req)
2987-
cancel()
2988-
resp, err := fut.Get()
2989-
require.Nilf(t, resp, "Response is empty")
2990-
require.NotNilf(t, err, "Error is not empty")
2991-
require.Equal(t, err.Error(), "context is done")
2992-
}
2993-
29942976
func TestConnectionProtocolInfoUnsupported(t *testing.T) {
29952977
test_helpers.SkipIfIdSupported(t)
29962978

0 commit comments

Comments
 (0)