func TestVTGateExecuteBatchShard(t *testing.T) { // TODO(sougou): Fix test. t.Skip() s := createSandbox("TestVTGateExecuteBatchShard") s.MapTestConn("-20", &sandboxConn{}) s.MapTestConn("20-40", &sandboxConn{}) q := proto.BatchQueryShard{ Queries: []proto.BoundShardQuery{{ Sql: "query", BindVariables: nil, Keyspace: "TestVTGateExecuteBatchShard", Shards: []string{"-20", "20-40"}, }, { Sql: "query", BindVariables: nil, Keyspace: "TestVTGateExecuteBatchShard", Shards: []string{"-20", "20-40"}, }}, } qrl := new(proto.QueryResultList) err := rpcVTGate.ExecuteBatchShard(context.Background(), &q, qrl) if err != nil { t.Errorf("want nil, got %v", err) } if len(qrl.List) != 2 { t.Errorf("want 2, got %v", len(qrl.List)) } if qrl.List[0].RowsAffected != 2 { t.Errorf("want 2, got %v", qrl.List[0].RowsAffected) } if qrl.Session != nil { t.Errorf("want nil, got %+v\n", qrl.Session) } q.Session = new(proto.Session) rpcVTGate.Begin(context.Background(), q.Session) rpcVTGate.ExecuteBatchShard(context.Background(), &q, qrl) if len(q.Session.ShardSessions) != 2 { t.Errorf("want 2, got %d", len(q.Session.ShardSessions)) } }
func TestVTGateExecuteBatchShard(t *testing.T) { s := createSandbox("TestVTGateExecuteBatchShard") s.MapTestConn("-20", &sandboxConn{}) s.MapTestConn("20-40", &sandboxConn{}) q := proto.BatchQueryShard{ Queries: []tproto.BoundQuery{{ "query", nil, }, { "query", nil, }}, Keyspace: "TestVTGateExecuteBatchShard", Shards: []string{"-20", "20-40"}, } qrl := new(proto.QueryResultList) err := RpcVTGate.ExecuteBatchShard(nil, &q, qrl) if err != nil { t.Errorf("want nil, got %v", err) } if len(qrl.List) != 2 { t.Errorf("want 2, got %v", len(qrl.List)) } if qrl.List[0].RowsAffected != 2 { t.Errorf("want 2, got %v", qrl.List[0].RowsAffected) } if qrl.Session != nil { t.Errorf("want nil, got %+v\n", qrl.Session) } q.Session = new(proto.Session) RpcVTGate.Begin(nil, q.Session) err = RpcVTGate.ExecuteBatchShard(nil, &q, qrl) if len(q.Session.ShardSessions) != 2 { t.Errorf("want 2, got %d", len(q.Session.ShardSessions)) } }
func TestVTGateExecuteBatchShard(t *testing.T) { resetSandbox() testConns[0] = &sandboxConn{} testConns[1] = &sandboxConn{} q := proto.BatchQueryShard{ Queries: []tproto.BoundQuery{{ "query", nil, }, { "query", nil, }}, Shards: []string{"0", "1"}, } qrl := new(proto.QueryResultList) err := RpcVTGate.ExecuteBatchShard(nil, &q, qrl) if err != nil { t.Errorf("want nil, got %v", err) } if len(qrl.List) != 2 { t.Errorf("want 2, got %v", len(qrl.List)) } if qrl.List[0].RowsAffected != 2 { t.Errorf("want 2, got %v", qrl.List[0].RowsAffected) } if qrl.Session != nil { t.Errorf("want nil, got %#v\n", qrl.Session) } q.Session = new(proto.Session) RpcVTGate.Begin(nil, nil, q.Session) err = RpcVTGate.ExecuteBatchShard(nil, &q, qrl) if len(q.Session.ShardSessions) != 2 { t.Errorf("want 2, got %d", len(q.Session.ShardSessions)) } }