public void ValueMappings(object value, SpannerDbType spannerType, DbType adoType, System.Type defaultClrType)
        {
            var parameter = new SpannerParameter {
                Value = value
            };

            Assert.Equal(defaultClrType, spannerType.DefaultClrType);
            Assert.Equal(spannerType, parameter.SpannerDbType);
            Assert.Equal(adoType, parameter.DbType);
        }
        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)));
        }
        public void SetDefaultSize(SpannerDbType spannerType)
        {
            var param = new SpannerParameter {
                SpannerDbType = spannerType
            };

            // The default size should be 0 for all types.
            Assert.Equal(0, param.Size);
            // Setting the size to the same (default) value should be allowed for all types.
            param.Size = 0;
            Assert.Equal(0, param.Size);
        }
예제 #4
0
        public void DbTypeMappgings(SpannerDbType spannerType, DbType adoType)
        {
            var parameter = new SpannerParameter {
                SpannerDbType = spannerType
            };

            Assert.Equal(adoType, parameter.DbType);

            parameter.ResetDbType();

            parameter.DbType = adoType;
            Assert.Equal(spannerType, parameter.SpannerDbType);
        }
        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]));
        }
예제 #6
0
        public void SizeTest(SpannerDbType spannerType, int size)
        {
            var parameter = new SpannerParameter {
                SpannerDbType = spannerType.WithSize(size)
            };

            Assert.Equal(parameter.Size, size);
            Assert.Equal(parameter.SpannerDbType.TypeCode, spannerType.TypeCode);

            parameter = new SpannerParameter
            {
                SpannerDbType = spannerType,
                Size          = size
            };
            Assert.Equal(parameter.Size, size);
            Assert.Equal(parameter.SpannerDbType.TypeCode, spannerType.TypeCode);
        }
        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);
        }