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);
        }
Exemplo n.º 4
0
        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)));
        }
Exemplo n.º 6
0
        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]));
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 13
0
        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));
        }
Exemplo n.º 15
0
 /// <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);
 }