public void CommandIncludesPriority() { var priority = Priority.High; Mock <SpannerClient> spannerClientMock = SpannerClientHelpers .CreateMockClient(Logger.DefaultLogger, MockBehavior.Strict); spannerClientMock .SetupBatchCreateSessionsAsync() .SetupBeginTransactionAsync() .SetupExecuteBatchDmlAsync() .SetupCommitAsync(); SpannerConnection connection = SpannerCommandTests.BuildSpannerConnection(spannerClientMock); SpannerTransaction transaction = connection.BeginTransaction(); var command = transaction.CreateBatchDmlCommand(); command.Add("UPDATE FOO SET BAR=1 WHERE TRUE"); command.Priority = priority; command.ExecuteNonQuery(); transaction.Commit(); spannerClientMock.Verify(client => client.ExecuteBatchDmlAsync( It.Is <ExecuteBatchDmlRequest>(request => request.RequestOptions.Priority == PriorityConverter.ToProto(priority)), It.IsAny <CallSettings>()), Times.Once()); }
public void CommandIncludesRequestAndTransactionTag() { var requestTag = "request-tag-1"; var transactionTag = "transaction-tag-1"; Mock <SpannerClient> spannerClientMock = SpannerClientHelpers .CreateMockClient(Logger.DefaultLogger, MockBehavior.Strict); spannerClientMock .SetupBatchCreateSessionsAsync() .SetupBeginTransactionAsync() .SetupExecuteBatchDmlAsync() .SetupCommitAsync(); SpannerConnection connection = SpannerCommandTests.BuildSpannerConnection(spannerClientMock); SpannerTransaction transaction = connection.BeginTransaction(); transaction.Tag = transactionTag; var command = transaction.CreateBatchDmlCommand(); command.Add("UPDATE FOO SET BAR=1 WHERE TRUE"); command.Tag = requestTag; command.ExecuteNonQuery(); transaction.Commit(); spannerClientMock.Verify(client => client.ExecuteBatchDmlAsync( It.Is <ExecuteBatchDmlRequest>(request => request.RequestOptions.RequestTag == requestTag && request.RequestOptions.TransactionTag == transactionTag), It.IsAny <CallSettings>()), Times.Once()); spannerClientMock.Verify(client => client.CommitAsync( It.Is <CommitRequest>(request => request.RequestOptions.RequestTag == "" && request.RequestOptions.TransactionTag == transactionTag), It.IsAny <CallSettings>()), Times.Once()); }
private async Task <IReadOnlyList <long> > BatchDmlInsertUpdateFixtureData(string key, SpannerConnection connection, SpannerTransaction transaction) { var command = transaction.CreateBatchDmlCommand(); command.Add(_insertSql, new SpannerParameterCollection { { "Key", SpannerDbType.String, key } }); command.Add(_updateSql, new SpannerParameterCollection { { "Key", SpannerDbType.String, key } }); return(await command.ExecuteNonQueryAsync()); }
public void CommandPriorityDefaultsToUnspecified() { Mock <SpannerClient> spannerClientMock = SpannerClientHelpers .CreateMockClient(Logger.DefaultLogger, MockBehavior.Strict); spannerClientMock .SetupBatchCreateSessionsAsync() .SetupBeginTransactionAsync(); SpannerConnection connection = SpannerCommandTests.BuildSpannerConnection(spannerClientMock); SpannerTransaction transaction = connection.BeginTransaction(); var command = transaction.CreateBatchDmlCommand(); Assert.Equal(Priority.Unspecified, command.Priority); }
public async Task <int> DatabaseWorkAsync(SpannerConnection connection, SpannerTransaction transaction) { _callTimes.Add(_scheduler.Clock.GetCurrentDateTimeUtc()); var insert = connection.CreateInsertCommand("table_1", new SpannerParameterCollection { new SpannerParameter("column_1", SpannerDbType.Int64, 10) }); insert.Transaction = transaction; var dml = transaction.CreateBatchDmlCommand(); dml.Add("UPDATE table_1 SET column_1 = column1 + 5"); await insert.ExecuteNonQueryAsync(); await dml.ExecuteNonQueryAsync(); return(_callTimes.Count); }