private async Task WriteSampleRowsAsync() { await _testFixture.EnsureTestDatabaseAsync(); using (var connection = await _testFixture.GetTestDatabaseConnectionAsync()) { await WriteSampleRowsAsync(connection); } }
public async Task CommandTimeout() { await _testFixture.EnsureTestDatabaseAsync(); var values = new SpannerParameterCollection { { "StringValue", SpannerDbType.String, "abc" }, { "K", SpannerDbType.String, _lastKey = UniqueString() } }; var e = await Assert.ThrowsAsync <SpannerException>( async() => { using (var connection = new SpannerConnection($"{_testFixture.ConnectionString};{nameof(SpannerSettings.AllowImmediateTimeouts)}=true")) { var cmd = connection.CreateInsertCommand("T", values); cmd.CommandTimeout = 0; await cmd.ExecuteNonQueryAsync(); } }).ConfigureAwait(false); Assert.Equal(ErrorCode.DeadlineExceeded, e.ErrorCode); Assert.False(e.IsTransientSpannerFault()); }
private async Task WriteSampleRowsAsync() { await _testFixture.EnsureTestDatabaseAsync(); if (string.IsNullOrEmpty(_key)) { _key = Guid.NewGuid().ToString(); using (var connection = await _testFixture.GetTestDatabaseConnectionAsync()) { SpannerCommand insupdate; // 1st update await connection.OpenAsync(); using (var tx = await connection.BeginTransactionAsync()) { insupdate = connection.CreateInsertOrUpdateCommand( "TX", new SpannerParameterCollection { { "K", SpannerDbType.String, _key }, { "StringValue", SpannerDbType.String, Guid.NewGuid().ToString() } }); insupdate.Transaction = tx; await insupdate.ExecuteNonQueryAsync(); var timestamp = await tx.CommitAsync(); _history.Add( new HistoryEntry { Value = insupdate.Parameters[1].Value.ToString(), Timestamp = timestamp.GetValueOrDefault() }); } await Task.Delay(250); // 2nd update using (var tx = await connection.BeginTransactionAsync()) { insupdate.Transaction = tx; insupdate.CommandText = "UPDATE TX"; insupdate.Parameters[1].Value = Guid.NewGuid().ToString(); await insupdate.ExecuteNonQueryAsync(); var timestamp = await tx.CommitAsync(); _history.Add( new HistoryEntry { Value = insupdate.Parameters[1].Value.ToString(), Timestamp = timestamp.GetValueOrDefault() }); } await Task.Delay(250); // 3rd update using (var tx = await connection.BeginTransactionAsync()) { insupdate.Transaction = tx; insupdate.Parameters[1].Value = Guid.NewGuid().ToString(); await insupdate.ExecuteNonQueryAsync(); var timestamp = await tx.CommitAsync(); _history.Add( new HistoryEntry { Value = insupdate.Parameters[1].Value.ToString(), Timestamp = timestamp.GetValueOrDefault() }); } } } }