@@ -37,9 +37,22 @@ func TestSimpleQuery(t *testing.T) {
37
37
t .Fatalf ("failed to marshal statement: %v" , err )
38
38
}
39
39
results := Execute (pool .ObjectId , conn .ObjectId , statementBytes )
40
- metadata := Metadata (pool .ObjectId , conn .ObjectId , results .ObjectId )
41
- if metadata .Code != 0 {
42
- t .Fatalf ("metadata.Code: %v" , metadata .Code )
40
+ metadataMsg := Metadata (pool .ObjectId , conn .ObjectId , results .ObjectId )
41
+ if metadataMsg .Code != 0 {
42
+ t .Fatalf ("metadataMsg.Code: %v" , metadataMsg .Code )
43
+ }
44
+ metadata := & sppb.ResultSetMetadata {}
45
+ if err := proto .Unmarshal (metadataMsg .Res , metadata ); err != nil {
46
+ t .Fatalf ("failed to unmarshal metadata: %v" , err )
47
+ }
48
+ if g , w := len (metadata .RowType .Fields ), 1 ; g != w {
49
+ t .Fatalf ("field count mismatch\n Got: %v\n Want: %v" , g , w )
50
+ }
51
+ if g , w := metadata .RowType .Fields [0 ].Name , "FOO" ; g != w {
52
+ t .Fatalf ("field name mismatch\n Got: %v\n Want: %v" , g , w )
53
+ }
54
+ if g , w := metadata .RowType .Fields [0 ].Type .Code , sppb .TypeCode_INT64 ; g != w {
55
+ t .Fatalf ("field type code mismatch\n Got: %v\n Want: %v" , g , w )
43
56
}
44
57
for {
45
58
row := Next (pool .ObjectId , conn .ObjectId , results .ObjectId )
@@ -192,8 +205,8 @@ func TestQueryWithTimestampBound(t *testing.T) {
192
205
CloseConnection (pool .ObjectId , conn .ObjectId )
193
206
ClosePool (pool .ObjectId )
194
207
195
- requests := drainRequestsFromServer ( server .TestSpanner )
196
- sqlRequests := requestsOfType (requests , reflect .TypeOf (& sppb.ExecuteSqlRequest {}))
208
+ requests := server .TestSpanner . DrainRequestsFromServer ( )
209
+ sqlRequests := testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.ExecuteSqlRequest {}))
197
210
if g , w := len (sqlRequests ), 1 ; g != w {
198
211
t .Fatalf ("sql requests count mismatch\n Got: %v\n Want: %v" , g , w )
199
212
}
@@ -305,8 +318,8 @@ func TestApply(t *testing.T) {
305
318
t .Fatal ("commit timestamp missing" )
306
319
}
307
320
308
- requests := drainRequestsFromServer ( server .TestSpanner )
309
- beginRequests := requestsOfType (requests , reflect .TypeOf (& sppb.BeginTransactionRequest {}))
321
+ requests := server .TestSpanner . DrainRequestsFromServer ( )
322
+ beginRequests := testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.BeginTransactionRequest {}))
310
323
if g , w := len (beginRequests ), 1 ; g != w {
311
324
t .Fatalf ("begin requests count mismatch\n Got: %v\n Want: %v" , g , w )
312
325
}
@@ -317,7 +330,7 @@ func TestApply(t *testing.T) {
317
330
if req .Options .GetReadWrite () == nil {
318
331
t .Fatalf ("missing tx read write" )
319
332
}
320
- commitRequests := requestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
333
+ commitRequests := testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
321
334
if g , w := len (commitRequests ), 1 ; g != w {
322
335
t .Fatalf ("commit requests count mismatch\n Got: %v\n Want: %v" , g , w )
323
336
}
@@ -372,14 +385,14 @@ func TestBufferWrite(t *testing.T) {
372
385
t .Fatal ("response length mismatch" )
373
386
}
374
387
375
- requests := drainRequestsFromServer ( server .TestSpanner )
388
+ requests := server .TestSpanner . DrainRequestsFromServer ( )
376
389
// There should not be any BeginTransaction requests yet, as we use inlined-begin.
377
- beginRequests := requestsOfType (requests , reflect .TypeOf (& sppb.BeginTransactionRequest {}))
390
+ beginRequests := testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.BeginTransactionRequest {}))
378
391
if g , w := len (beginRequests ), 0 ; g != w {
379
392
t .Fatalf ("begin requests count mismatch\n Got: %v\n Want: %v" , g , w )
380
393
}
381
394
// There should not be any commit requests yet.
382
- commitRequests := requestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
395
+ commitRequests := testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
383
396
if g , w := len (commitRequests ), 0 ; g != w {
384
397
t .Fatalf ("commit requests count mismatch\n Got: %v\n Want: %v" , g , w )
385
398
}
@@ -391,8 +404,8 @@ func TestBufferWrite(t *testing.T) {
391
404
}
392
405
393
406
// Verify that we have a commit request on the server.
394
- requests = drainRequestsFromServer ( server .TestSpanner )
395
- beginRequests = requestsOfType (requests , reflect .TypeOf (& sppb.BeginTransactionRequest {}))
407
+ requests = server .TestSpanner . DrainRequestsFromServer ( )
408
+ beginRequests = testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.BeginTransactionRequest {}))
396
409
if g , w := len (beginRequests ), 1 ; g != w {
397
410
t .Fatalf ("begin requests count mismatch\n Got: %v\n Want: %v" , g , w )
398
411
}
@@ -403,7 +416,7 @@ func TestBufferWrite(t *testing.T) {
403
416
if req .Options .GetReadWrite () == nil {
404
417
t .Fatalf ("missing tx read write" )
405
418
}
406
- commitRequests = requestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
419
+ commitRequests = testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
407
420
if g , w := len (commitRequests ), 1 ; g != w {
408
421
t .Fatalf ("commit requests count mismatch\n Got: %v\n Want: %v" , g , w )
409
422
}
@@ -459,9 +472,9 @@ func TestBufferWrite_RetryAborted(t *testing.T) {
459
472
t .Fatal ("response length mismatch" )
460
473
}
461
474
462
- requests := drainRequestsFromServer ( server .TestSpanner )
475
+ requests := server .TestSpanner . DrainRequestsFromServer ( )
463
476
// There should not be any commit requests yet.
464
- commitRequests := requestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
477
+ commitRequests := testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
465
478
if g , w := len (commitRequests ), 0 ; g != w {
466
479
t .Fatalf ("commit requests count mismatch\n Got: %v\n Want: %v" , g , w )
467
480
}
@@ -478,8 +491,8 @@ func TestBufferWrite_RetryAborted(t *testing.T) {
478
491
}
479
492
480
493
// Verify that we have both begin and commit requests on the server.
481
- requests = drainRequestsFromServer ( server .TestSpanner )
482
- beginRequests := requestsOfType (requests , reflect .TypeOf (& sppb.BeginTransactionRequest {}))
494
+ requests = server .TestSpanner . DrainRequestsFromServer ( )
495
+ beginRequests := testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.BeginTransactionRequest {}))
483
496
if g , w := len (beginRequests ), 2 ; g != w {
484
497
t .Fatalf ("begin requests count mismatch\n Got: %v\n Want: %v" , g , w )
485
498
}
@@ -492,7 +505,7 @@ func TestBufferWrite_RetryAborted(t *testing.T) {
492
505
t .Fatalf ("missing tx read write" )
493
506
}
494
507
}
495
- commitRequests = requestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
508
+ commitRequests = testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
496
509
if g , w := len (commitRequests ), 2 ; g != w {
497
510
t .Fatalf ("commit requests count mismatch\n Got: %v\n Want: %v" , g , w )
498
511
}
@@ -554,27 +567,3 @@ func setupMockedTestServerWithConfigAndClientOptionsAndDialect(t *testing.T, con
554
567
serverTeardown ()
555
568
}
556
569
}
557
-
558
- func requestsOfType (requests []interface {}, t reflect.Type ) []interface {} {
559
- res := make ([]interface {}, 0 )
560
- for _ , req := range requests {
561
- if reflect .TypeOf (req ) == t {
562
- res = append (res , req )
563
- }
564
- }
565
- return res
566
- }
567
-
568
- func drainRequestsFromServer (server testutil.InMemSpannerServer ) []interface {} {
569
- var reqs []interface {}
570
- loop:
571
- for {
572
- select {
573
- case req := <- server .ReceivedRequests ():
574
- reqs = append (reqs , req )
575
- default :
576
- break loop
577
- }
578
- }
579
- return reqs
580
- }
0 commit comments