@@ -37,9 +37,22 @@ func TestSimpleQuery(t *testing.T) {
3737 t .Fatalf ("failed to marshal statement: %v" , err )
3838 }
3939 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 )
4356 }
4457 for {
4558 row := Next (pool .ObjectId , conn .ObjectId , results .ObjectId )
@@ -192,8 +205,8 @@ func TestQueryWithTimestampBound(t *testing.T) {
192205 CloseConnection (pool .ObjectId , conn .ObjectId )
193206 ClosePool (pool .ObjectId )
194207
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 {}))
197210 if g , w := len (sqlRequests ), 1 ; g != w {
198211 t .Fatalf ("sql requests count mismatch\n Got: %v\n Want: %v" , g , w )
199212 }
@@ -305,8 +318,8 @@ func TestApply(t *testing.T) {
305318 t .Fatal ("commit timestamp missing" )
306319 }
307320
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 {}))
310323 if g , w := len (beginRequests ), 1 ; g != w {
311324 t .Fatalf ("begin requests count mismatch\n Got: %v\n Want: %v" , g , w )
312325 }
@@ -317,7 +330,7 @@ func TestApply(t *testing.T) {
317330 if req .Options .GetReadWrite () == nil {
318331 t .Fatalf ("missing tx read write" )
319332 }
320- commitRequests := requestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
333+ commitRequests := testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
321334 if g , w := len (commitRequests ), 1 ; g != w {
322335 t .Fatalf ("commit requests count mismatch\n Got: %v\n Want: %v" , g , w )
323336 }
@@ -372,14 +385,14 @@ func TestBufferWrite(t *testing.T) {
372385 t .Fatal ("response length mismatch" )
373386 }
374387
375- requests := drainRequestsFromServer ( server .TestSpanner )
388+ requests := server .TestSpanner . DrainRequestsFromServer ( )
376389 // 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 {}))
378391 if g , w := len (beginRequests ), 0 ; g != w {
379392 t .Fatalf ("begin requests count mismatch\n Got: %v\n Want: %v" , g , w )
380393 }
381394 // 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 {}))
383396 if g , w := len (commitRequests ), 0 ; g != w {
384397 t .Fatalf ("commit requests count mismatch\n Got: %v\n Want: %v" , g , w )
385398 }
@@ -391,8 +404,8 @@ func TestBufferWrite(t *testing.T) {
391404 }
392405
393406 // 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 {}))
396409 if g , w := len (beginRequests ), 1 ; g != w {
397410 t .Fatalf ("begin requests count mismatch\n Got: %v\n Want: %v" , g , w )
398411 }
@@ -403,7 +416,7 @@ func TestBufferWrite(t *testing.T) {
403416 if req .Options .GetReadWrite () == nil {
404417 t .Fatalf ("missing tx read write" )
405418 }
406- commitRequests = requestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
419+ commitRequests = testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
407420 if g , w := len (commitRequests ), 1 ; g != w {
408421 t .Fatalf ("commit requests count mismatch\n Got: %v\n Want: %v" , g , w )
409422 }
@@ -459,9 +472,9 @@ func TestBufferWrite_RetryAborted(t *testing.T) {
459472 t .Fatal ("response length mismatch" )
460473 }
461474
462- requests := drainRequestsFromServer ( server .TestSpanner )
475+ requests := server .TestSpanner . DrainRequestsFromServer ( )
463476 // 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 {}))
465478 if g , w := len (commitRequests ), 0 ; g != w {
466479 t .Fatalf ("commit requests count mismatch\n Got: %v\n Want: %v" , g , w )
467480 }
@@ -478,8 +491,8 @@ func TestBufferWrite_RetryAborted(t *testing.T) {
478491 }
479492
480493 // 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 {}))
483496 if g , w := len (beginRequests ), 2 ; g != w {
484497 t .Fatalf ("begin requests count mismatch\n Got: %v\n Want: %v" , g , w )
485498 }
@@ -492,7 +505,7 @@ func TestBufferWrite_RetryAborted(t *testing.T) {
492505 t .Fatalf ("missing tx read write" )
493506 }
494507 }
495- commitRequests = requestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
508+ commitRequests = testutil . RequestsOfType (requests , reflect .TypeOf (& sppb.CommitRequest {}))
496509 if g , w := len (commitRequests ), 2 ; g != w {
497510 t .Fatalf ("commit requests count mismatch\n Got: %v\n Want: %v" , g , w )
498511 }
@@ -554,27 +567,3 @@ func setupMockedTestServerWithConfigAndClientOptionsAndDialect(t *testing.T, con
554567 serverTeardown ()
555568 }
556569}
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