public void NullNotAllowed() { // ReSharper disable once CollectionNeverQueried.Local var collection = new SpannerParameterCollection(); // ReSharper disable once AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => collection.Add(null)); }
public void AssertConsts() { var collection = new SpannerParameterCollection(); Assert.False(collection.IsFixedSize); Assert.False(collection.IsSynchronized); Assert.False(collection.IsReadOnly); }
public void AssertConsts() { // ReSharper disable once CollectionNeverUpdated.Local var collection = new SpannerParameterCollection(); Assert.False(collection.IsFixedSize); Assert.False(collection.IsSynchronized); Assert.False(collection.IsReadOnly); }
private async Task <int> InsertAsync(SpannerParameterCollection values) { using (var connection = await _testFixture.GetTestDatabaseConnectionAsync()) { values.Add("K", SpannerDbType.String, _lastKey = UniqueString()); var cmd = connection.CreateInsertCommand("T", values); return(await cmd.ExecuteNonQueryAsync()); } }
public void AddFromArray() { var parameters = Enumerable.Range(0, 5).Select( x => new SpannerParameter($"Param{x}", SpannerDbType.String)).ToArray(); var collection = new SpannerParameterCollection(); collection.AddRange(parameters); Assert.True(parameters.All(x => collection.Contains(x))); }
private async Task <int> InsertAsync(SpannerParameterCollection values) { using (var connection = _fixture.GetConnection()) { values.Add("K", SpannerDbType.String, _lastKey = UniqueString()); var cmd = connection.CreateInsertCommand(_fixture.TableName, values); return(await cmd.ExecuteNonQueryAsyncWithRetry()); } }
public void RemoveAt() { var parameters = Enumerable.Range(0, 5).Select( x => new SpannerParameter($"Param{x}", SpannerDbType.String)).ToArray(); var collection = new SpannerParameterCollection(); collection.AddRange(parameters); collection.RemoveAt(4); Assert.False(collection.Contains(parameters[4])); }
public void CopyToArrayWithBuffer(int extraBuffer) { var parameters1 = Enumerable.Range(0, 5).Select( x => new SpannerParameter($"Param{x}", SpannerDbType.String)).ToArray(); var parameters2 = new SpannerParameter[parameters1.Length + extraBuffer]; var collection = new SpannerParameterCollection(); collection.AddRange(parameters1); collection.CopyTo(parameters2, extraBuffer); Assert.True(parameters1.SequenceEqual(parameters2.Skip(extraBuffer))); }
private async Task <int> DeleteFixtureData(string key, SpannerConnection connection, SpannerTransaction transaction) { var parameters = new SpannerParameterCollection { { "Key", SpannerDbType.String, key }, { "OriginalValue", SpannerDbType.Int64, 4 } }; using (var command = connection.CreateDeleteCommand(_fixture.TableName, parameters)) { command.Transaction = transaction; return(await command.ExecuteNonQueryAsync()); } }
public void SetIndividualParameterName() { var parameters = Enumerable.Range(0, 5).Select( x => new SpannerParameter($"Param{x}", SpannerDbType.String)).ToArray(); var collection = new SpannerParameterCollection(); collection.AddRange(parameters); var newParameter = new SpannerParameter("Param4", SpannerDbType.Float64); collection[newParameter.ParameterName] = newParameter; Assert.True(collection.Contains(newParameter)); Assert.False(collection.Contains(parameters[4])); }
public async Task CommandTimeout() { 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($"{_fixture.ConnectionString};{nameof(SpannerSettings.AllowImmediateTimeouts)}=true")) { var cmd = connection.CreateInsertCommand(_fixture.TableName, values); cmd.CommandTimeout = 0; await cmd.ExecuteNonQueryAsync(); } }).ConfigureAwait(false); SpannerAssert.IsTimeout(e); }
public void Clone() { var param1 = new SpannerParameter("Param1", SpannerDbType.Int64, 1L); var param2 = new SpannerParameter("Param2", SpannerDbType.String, "original"); var original = new SpannerParameterCollection(new [] { param1, param2 }); var clone = original.Clone(); // The values in the clone should initially be equal to the original collection. Assert.True(original.SequenceEqual(clone, new SpannerParameterEqualityComparer())); // Change the original parameters. // This should be reflected in the original collection, but not in the clone. param1.Value = 2L; param2.Value = "new value"; Assert.False(original.SequenceEqual(clone, new SpannerParameterEqualityComparer())); // Verify that the changed parameter values were set on the instances in the original collection. Assert.Equal(2L, original[0].Value); Assert.Equal("new value", original[1].Value); // Verify that the cloned collection still has the original value. Assert.Equal(1L, clone[0].Value); Assert.Equal("original", clone[1].Value); }
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()); }
public void NullNotAllowed() { var collection = new SpannerParameterCollection(); Assert.Throws <ArgumentNullException>(() => collection.Add(null)); }
/// <summary> /// Creates a key from the values in the parameter collection. /// </summary> /// <param name="keyParts">The values that define the key</param> internal Key(SpannerParameterCollection keyParts) { KeyParts = ToListValue(keyParts); }