Ejemplo n.º 1
0
        public void Can_add_type_mapped_parameter_by_property(bool nullable)
        {
            var typeMapper = new TestRelationalTypeMappingSource(
                TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>());

            var modelBuilder = RelationalTestHelpers.Instance.CreateConventionBuilder();

            modelBuilder.Entity("MyType").Property <string>("MyProp").IsRequired(!nullable);

            var model = modelBuilder.FinalizeModel(designTime: false, skipValidation: true);

            var property = model.GetEntityTypes().Single().FindProperty("MyProp");

            var parameterBuilder = new RelationalCommandBuilder(
                new RelationalCommandBuilderDependencies(typeMapper));

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

            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(property.GetTypeMapping(), parameter.RelationalTypeMapping);
            Assert.Equal(nullable, parameter.IsNullable);
        }
Ejemplo n.º 2
0
        public void Can_add_composite_parameter()
        {
            var typeMapper = new TestRelationalTypeMappingSource(
                TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>());

            var parameterBuilder = new RelationalCommandBuilder(
                new RelationalCommandBuilderDependencies(
                    typeMapper));

            parameterBuilder.AddCompositeParameter(
                "CompositeInvariant",
                new List <IRelationalParameter>
            {
                new TypeMappedRelationalParameter(
                    "FirstInvariant",
                    "FirstName",
                    new IntTypeMapping("int", DbType.Int32),
                    nullable: false),
                new TypeMappedRelationalParameter(
                    "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);
        }
Ejemplo n.º 3
0
        public void Can_add_type_mapped_parameter_by_type(bool nullable)
        {
            var typeMapper = (IRelationalTypeMappingSource) new TestRelationalTypeMappingSource(
                TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>());
            var typeMapping = typeMapper.FindMapping(nullable ? typeof(int?) : typeof(int));

            var parameterBuilder = new RelationalCommandBuilder(
                new RelationalCommandBuilderDependencies(
                    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);
        }
Ejemplo n.º 4
0
        public void Can_add_type_mapped_parameter_by_property(bool nullable)
        {
            var typeMapper = new TestRelationalTypeMappingSource(
                TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>());

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

            property.IsNullable = nullable;

            RelationalTestHelpers.Instance.CreateContextServices().GetRequiredService <IModelRuntimeInitializer>()
            .Initialize(model.FinalizeModel(), designTime: false, validationLogger: null);

            var parameterBuilder = new RelationalCommandBuilder(
                new RelationalCommandBuilderDependencies(typeMapper));

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

            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(property.GetTypeMapping(), parameter.RelationalTypeMapping);
            Assert.Equal(nullable, parameter.IsNullable);
        }
        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 = ((IMutableModel) new Model()).AddEntityType("MyType").AddProperty("MyProp", typeof(string));

            property.IsNullable = nullable;
            property.SetTypeMapping(GetMapping(typeMapper, property));

            var parameterBuilder = new RelationalCommandBuilder(
                new RelationalCommandBuilderDependencies(
                    typeMapper));

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

            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);
        }
Ejemplo n.º 6
0
        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 RelationalCommandBuilder(
                new RelationalCommandBuilderDependencies(
                    typeMapper,
                    new FakeDiagnosticsLogger <DbLoggerCategory.Database.Command>()));

            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);
        }
        public void Builds_simple_command()
        {
            var commandBuilder = new RelationalCommandBuilder(
                new FakeDiagnosticsLogger <DbLoggerCategory.Database.Command>(),
                TestServiceFactory.Instance.Create <FakeRelationalTypeMapper>());

            var command = commandBuilder.Build();

            Assert.Equal("", command.CommandText);
            Assert.Equal(0, command.Parameters.Count);
        }
        private static RelationalCommandBuilder CreateCommandBuilder()
        {
            var dependencies = new RelationalCommandBuilderDependencies(
                new TestRelationalTypeMappingSource(
                    TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                    TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>()));

            var commandBuilder = new RelationalCommandBuilder(dependencies);

            return(commandBuilder);
        }
        public void Builds_simple_command()
        {
            var commandBuilder = new RelationalCommandBuilder(
                new FakeDiagnosticsLogger <DbLoggerCategory.Database.Command>(),
                new FakeRelationalTypeMapper(new RelationalTypeMapperDependencies()));

            var command = commandBuilder.Build();

            Assert.Equal("", command.CommandText);
            Assert.Equal(0, command.Parameters.Count);
        }
        public void Builds_simple_command()
        {
            var commandBuilder = new RelationalCommandBuilder(
                new FakeSensitiveDataLogger <RelationalCommand>(),
                new DiagnosticListener("Fake"),
                new FakeRelationalTypeMapper(new RelationalTypeMapperDependencies()));

            var command = commandBuilder.Build();

            Assert.Equal("", command.CommandText);
            Assert.Equal(0, command.Parameters.Count);
        }
Ejemplo n.º 11
0
        private static RelationalCommandBuilder CreateCommandBuilder()
        {
            var dependencies = new RelationalCommandBuilderDependencies(
                new TestRelationalTypeMappingSource(
                    TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                    TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>()),
                new FakeDiagnosticsLogger <DbLoggerCategory.Database.Command>());

            var commandBuilder = new RelationalCommandBuilder(dependencies);

            return(commandBuilder);
        }
        public void Builds_simple_command()
        {
            var commandBuilder = new RelationalCommandBuilder(
                new FakeInterceptingLogger <LoggerCategory.Database.Sql>(),
                new DiagnosticListener("Fake"),
                new FakeRelationalTypeMapper(new RelationalTypeMapperDependencies()));

            var command = commandBuilder.Build();

            Assert.Equal("", command.CommandText);
            Assert.Equal(0, command.Parameters.Count);
        }
Ejemplo n.º 13
0
        public void Does_not_add_empty_composite_parameter()
        {
            var typeMapper = new TestRelationalTypeMappingSource(
                TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>());

            var parameterBuilder = new RelationalCommandBuilder(
                new RelationalCommandBuilderDependencies(
                    typeMapper));

            parameterBuilder.AddCompositeParameter(
                "CompositeInvariant",
                new List <IRelationalParameter>());

            Assert.Equal(0, parameterBuilder.Parameters.Count);
        }
        public void Build_command_with_parameter()
        {
            var commandBuilder = new RelationalCommandBuilder(
                new FakeDiagnosticsLogger <DbLoggerCategory.Database.Command>(),
                TestServiceFactory.Instance.Create <FakeRelationalTypeMapper>());

            commandBuilder.ParameterBuilder.AddParameter(
                "InvariantName",
                "Name",
                new StringTypeMapping("nvarchar(100)"),
                nullable: true);

            var command = commandBuilder.Build();

            Assert.Equal("", command.CommandText);
            Assert.Equal(1, command.Parameters.Count);
            Assert.Equal("InvariantName", command.Parameters[0].InvariantName);
        }
        public void Build_command_with_parameter()
        {
            var commandBuilder = new RelationalCommandBuilder(
                new FakeSensitiveDataLogger <RelationalCommand>(),
                new DiagnosticListener("Fake"),
                new FakeRelationalTypeMapper(new RelationalTypeMapperDependencies()));

            commandBuilder.ParameterBuilder.AddParameter(
                "InvariantName",
                "Name",
                new RelationalTypeMapping("nvarchar(100)", typeof(string)),
                nullable: true);

            var command = commandBuilder.Build();

            Assert.Equal("", command.CommandText);
            Assert.Equal(1, command.Parameters.Count);
            Assert.Equal("InvariantName", command.Parameters[0].InvariantName);
        }
Ejemplo n.º 16
0
        public void Can_add_dynamic_parameter()
        {
            var typeMapper = new TestRelationalTypeMappingSource(
                TestServiceFactory.Instance.Create <TypeMappingSourceDependencies>(),
                TestServiceFactory.Instance.Create <RelationalTypeMappingSourceDependencies>());

            var parameterBuilder = new RelationalCommandBuilder(
                new RelationalCommandBuilderDependencies(
                    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);
        }