Esempio n. 1
0
        public void Can_add_type_mapped_parameter_by_type(bool nullable)
        {
            var typeMapper = new FakeRelationalTypeMapper();

            var type = nullable
                ? typeof(int?)
                : typeof(int);

            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddParameter(
                "InvariantName",
                "Name",
                type,
                unicode: true);

            Assert.Equal(1, parameterBuilder.Parameters.Count);

            var parameter = parameterBuilder.Parameters[0] as TypeMappedRelationalParameter;

            Assert.NotNull(parameter);
            Assert.Equal("InvariantName", parameter.InvariantName);
            Assert.Equal("Name", parameter.Name);
            Assert.Equal(typeMapper.GetMapping(typeof(int)), parameter.RelationalTypeMapping);
            Assert.Equal(nullable, parameter.Nullable);
        }
Esempio n. 2
0
 public TestRelationalCommandBuilder(
     IDiagnosticsLogger <DbLoggerCategory.Database.Command> logger,
     IRelationalTypeMappingSource typeMappingSource)
 {
     _logger          = logger;
     ParameterBuilder = new RelationalParameterBuilder(typeMappingSource);
 }
        public void Can_add_type_mapped_parameter_by_property(bool nullable)
        {
            var typeMapper = new TestRelationalTypeMappingSource(
                TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>());

            var property = new Model().AddEntityType("MyType").AddProperty("MyProp", typeof(string));

            property.IsNullable = nullable;
            property[CoreAnnotationNames.TypeMapping] = GetMapping(typeMapper, property);

            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddParameter(
                "InvariantName",
                "Name",
                property);

            Assert.Equal(1, parameterBuilder.Parameters.Count);

            var parameter = parameterBuilder.Parameters[0] as TypeMappedRelationalParameter;

            Assert.NotNull(parameter);
            Assert.Equal("InvariantName", parameter.InvariantName);
            Assert.Equal("Name", parameter.Name);
            Assert.Equal(GetMapping(typeMapper, property), parameter.RelationalTypeMapping);
            Assert.Equal(nullable, parameter.IsNullable);
        }
Esempio n. 4
0
        public void Can_add_composite_parameter()
        {
            var typeMapper = new FakeRelationalTypeMapper(new RelationalTypeMapperDependencies());

            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddCompositeParameter(
                "CompositeInvariant",
                builder =>
            {
                builder.AddParameter(
                    "FirstInvariant",
                    "FirstName",
                    new IntTypeMapping("int", DbType.Int32),
                    nullable: false);

                builder.AddParameter(
                    "SecondInvariant",
                    "SecondName",
                    new StringTypeMapping("nvarchar(max)"),
                    nullable: true);
            });

            Assert.Equal(1, parameterBuilder.Parameters.Count);

            var parameter = parameterBuilder.Parameters[0] as CompositeRelationalParameter;

            Assert.NotNull(parameter);
            Assert.Equal("CompositeInvariant", parameter.InvariantName);
            Assert.Equal(2, parameter.RelationalParameters.Count);
        }
        public void Can_add_type_mapped_parameter_by_property(bool nullable)
        {
            var typeMapper = new FakeRelationalTypeMapper(new RelationalTypeMapperDependencies());

            var property = new Model().AddEntityType("MyType").AddProperty("MyProp", typeof(string));

            property.IsNullable = nullable;

            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddParameter(
                "InvariantName",
                "Name",
                property);

            Assert.Equal(1, parameterBuilder.Parameters.Count);

            var parameter = parameterBuilder.Parameters[0] as TypeMappedRelationalParameter;

            Assert.NotNull(parameter);
            Assert.Equal("InvariantName", parameter.InvariantName);
            Assert.Equal("Name", parameter.Name);
            Assert.Equal(typeMapper.GetMapping(property), parameter.RelationalTypeMapping);
            Assert.Equal(nullable, parameter.IsNullable);
        }
Esempio n. 6
0
        public void Can_add_composite_parameter()
        {
            var typeMapper = new FakeRelationalTypeMapper();

            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddCompositeParameter(
                "CompositeInvariant",
                builder =>
            {
                builder.AddParameter(
                    "FirstInvariant",
                    "FirstName",
                    typeof(int),
                    unicode: true);

                builder.AddParameter(
                    "SecondInvariant",
                    "SecondName",
                    typeof(string),
                    unicode: true);
            });

            Assert.Equal(1, parameterBuilder.Parameters.Count);

            var parameter = parameterBuilder.Parameters[0] as CompositeRelationalParameter;

            Assert.NotNull(parameter);
            Assert.Equal("CompositeInvariant", parameter.InvariantName);
            Assert.Equal(2, parameter.RelationalParameters.Count);
        }
Esempio n. 7
0
        public void Can_add_type_mapped_parameter_by_type(bool nullable)
        {
            var typeMapper = (IRelationalTypeMappingSource) new FallbackRelationalTypeMappingSource(
                TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>(),
                TestServiceFactory.Instance.Create <FakeRelationalTypeMapper>());
            var typeMapping      = typeMapper.FindMapping(nullable ? typeof(int?) : typeof(int));
            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddParameter(
                "InvariantName",
                "Name",
                typeMapping,
                nullable);

            Assert.Equal(1, parameterBuilder.Parameters.Count);

            var parameter = parameterBuilder.Parameters[0] as TypeMappedRelationalParameter;

            Assert.NotNull(parameter);
            Assert.Equal("InvariantName", parameter.InvariantName);
            Assert.Equal("Name", parameter.Name);
            Assert.Equal(typeMapping, parameter.RelationalTypeMapping);
            Assert.Equal(nullable, parameter.IsNullable);
        }
 public MySQLCommandBuilder([NotNull] ISensitiveDataLogger <RelationalCommandBuilderFactory> logger,
                            [NotNull] DiagnosticSource diagnosticSource,
                            [NotNull] IRelationalTypeMapper typeMapper) : base(logger, diagnosticSource, typeMapper)
 {
     _logger           = logger;
     _diagnosticSource = diagnosticSource;
     ParameterBuilder  = new RelationalParameterBuilder(typeMapper);
 }
 public TestRelationalCommandBuilder(
     IInterceptingLogger <LoggerCategory.Database.Sql> logger,
     DiagnosticSource diagnosticSource,
     IRelationalTypeMapper typeMapper)
 {
     _logger           = logger;
     _diagnosticSource = diagnosticSource;
     ParameterBuilder  = new RelationalParameterBuilder(typeMapper);
 }
Esempio n. 10
0
 public TestRelationalCommandBuilder(
     ISensitiveDataLogger logger,
     DiagnosticSource diagnosticSource,
     IRelationalTypeMapper typeMapper)
 {
     _logger           = logger;
     _diagnosticSource = diagnosticSource;
     ParameterBuilder  = new RelationalParameterBuilder(typeMapper);
 }
        public MySqlCommandBuilder(
            [NotNull] IDiagnosticsLogger <DbLoggerCategory.Database.Command> logger,
            [NotNull] IRelationalTypeMapper typeMapper)
        {
            Check.NotNull(logger, nameof(logger));
            Check.NotNull(typeMapper, nameof(typeMapper));

            _logger          = logger;
            ParameterBuilder = new RelationalParameterBuilder(typeMapper);
        }
        public void Does_not_add_empty_composite_parameter()
        {
            var typeMapper = TestServiceFactory.Instance.Create <FakeRelationalTypeMapper>();

            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddCompositeParameter(
                "CompositeInvariant",
                builder => { });

            Assert.Equal(0, parameterBuilder.Parameters.Count);
        }
Esempio n. 13
0
        public void Does_not_add_empty_composite_parameter()
        {
            var typeMapper = new FakeRelationalTypeMapper(new RelationalTypeMapperDependencies());

            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddCompositeParameter(
                "CompositeInvariant",
                builder => { });

            Assert.Equal(0, parameterBuilder.Parameters.Count);
        }
        public void Does_not_add_empty_composite_parameter()
        {
            var typeMapper = new TestRelationalTypeMappingSource(
                TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>());

            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddCompositeParameter(
                "CompositeInvariant",
                builder => { });

            Assert.Equal(0, parameterBuilder.Parameters.Count);
        }
Esempio n. 15
0
        public void Can_add_dynamic_parameter()
        {
            var typeMapper = new FakeRelationalTypeMapper(new RelationalTypeMapperDependencies());

            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddParameter(
                "InvariantName",
                "Name");

            Assert.Equal(1, parameterBuilder.Parameters.Count);

            var parameter = parameterBuilder.Parameters[0] as DynamicRelationalParameter;

            Assert.NotNull(parameter);
            Assert.Equal("InvariantName", parameter.InvariantName);
            Assert.Equal("Name", parameter.Name);
        }
        public void Can_add_dynamic_parameter()
        {
            var typeMapper = TestServiceFactory.Instance.Create <FakeRelationalTypeMapper>();

            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddParameter(
                "InvariantName",
                "Name");

            Assert.Equal(1, parameterBuilder.Parameters.Count);

            var parameter = parameterBuilder.Parameters[0] as DynamicRelationalParameter;

            Assert.NotNull(parameter);
            Assert.Equal("InvariantName", parameter.InvariantName);
            Assert.Equal("Name", parameter.Name);
        }
Esempio n. 17
0
        public void Can_add_type_mapped_parameter_by_type(bool nullable)
        {
            var typeMapper = new FakeRelationalTypeMapper(
                new CoreTypeMapperDependencies(),
                new RelationalTypeMapperDependencies());
            var typeMapping      = typeMapper.GetMapping(nullable ? typeof(int?) : typeof(int));
            var parameterBuilder = new RelationalParameterBuilder(typeMapper);

            parameterBuilder.AddParameter(
                "InvariantName",
                "Name",
                typeMapping,
                nullable);

            Assert.Equal(1, parameterBuilder.Parameters.Count);

            var parameter = parameterBuilder.Parameters[0] as TypeMappedRelationalParameter;

            Assert.NotNull(parameter);
            Assert.Equal("InvariantName", parameter.InvariantName);
            Assert.Equal("Name", parameter.Name);
            Assert.Equal(typeMapping, parameter.RelationalTypeMapping);
            Assert.Equal(nullable, parameter.IsNullable);
        }
 public FbCommandBuilder(IDiagnosticsLogger <DbLoggerCategory.Database.Command> logger, IRelationalTypeMapper typeMapper)
 {
     _logger          = logger;
     ParameterBuilder = new RelationalParameterBuilder(typeMapper);
 }