Exemplo n.º 1
0
        public void CompareIssue3()
        {
            //SETUP
            var options = this.CreateUniqueClassOptions <Issue3DbContext>();

            using (var context = new Issue3DbContext(options))
            {
                //context.Database.EnsureDeleted();
                context.Database.EnsureClean();
                var comparer = new CompareEfSql();

                //ATTEMPT
                var hasErrors = comparer.CompareEfWithDb(context);

                //VERIFY
                hasErrors.ShouldBeTrue(comparer.GetAllErrors);
                var errors = CompareLog.ListAllErrors(comparer.Logs).ToList();
                errors.Count.ShouldEqual(1);
                errors[0].ShouldEqual(
                    "DIFFERENT: Parameter->Property 'ValueAggregationTypeId', default value sql. Expected = CAST(1 AS tinyint), found = CONVERT([tinyint],(1))");
            }
        }
Exemplo n.º 2
0
        public void ComparePropertySqlDefaultReversed()
        {
            //SETUP
            var           options = GetDefaultSqlDbOptions();
            DatabaseModel localDatabaseModel;

            using (var context = new MyEntitySqlDefaultDbContext(options))
            {
                var dtService        = context.GetDesignTimeService();
                var serviceProvider  = dtService.GetDesignTimeProvider();
                var factory          = serviceProvider.GetService <IDatabaseModelFactory>();
                var connectionString = context.Database.GetDbConnection().ConnectionString;
                context.Database.EnsureCreated();
#if NETCOREAPP2_1
                localDatabaseModel = factory.Create(connectionString, new string[] { }, new string[] { });
#elif NETCOREAPP3_0
                localDatabaseModel = factory.Create(connectionString,
                                                    new DatabaseModelFactoryOptions(new string[] { }, new string[] { }));
#endif
            }

            using (var context = new MyEntityDbContext(_options))
            {
                var handler = new Stage1Comparer(context.Model, context.GetType().Name);

                //ATTEMPT
                var hasErrors = handler.CompareModelToDatabase(localDatabaseModel);

                //VERIFY
                hasErrors.ShouldBeTrue();
                var errors = CompareLog.ListAllErrors(handler.Logs).ToList();
                errors.Count.ShouldEqual(2);
                errors[0].ShouldEqual(
                    "DIFFERENT: MyEntity->Property 'MyInt', default value sql. Expected = <null>, found = 123");
                errors[1].ShouldEqual(
                    "DIFFERENT: MyEntity->Property 'MyInt', value generated. Expected = Never, found = OnAdd");
            }
        }
Exemplo n.º 3
0
        public void ComparePropertySqlDefaultName()
        {
            //SETUP
            var optionsBuilder = new DbContextOptionsBuilder <MyEntitySqlDefaultDbContext>();

            optionsBuilder.UseSqlServer(_connectionString);
            using (var context = new MyEntitySqlDefaultDbContext(optionsBuilder.Options))
            {
                var handler = new Stage1Comparer(context.Model, context.GetType().Name);

                //ATTEMPT
                var hasErrors = handler.CompareModelToDatabase(_databaseModel);

                //VERIFY
                hasErrors.ShouldBeTrue();
                var errors = CompareLog.ListAllErrors(handler.Logs).ToList();
                errors.Count.ShouldEqual(2);
                errors[0].ShouldEqual(
                    "DIFFERENT: MyEntity->Property 'MyInt', default value sql. Expected = 123, found = <null>");
                errors[1].ShouldEqual(
                    "DIFFERENT: MyEntity->Property 'MyInt', value generated. Expected = OnAdd, found = Never");
            }
        }
        public void CompareBookAgainstBookOrderDatabaseHasErrors()
        {
            //SETUP
            using (var context = new BookContext(GetBookContextOptions()))
            {
                var config = new CompareEfSqlConfig {
                    TablesToIgnoreCommaDelimited = ""
                };
                var comparer = new CompareEfSql(config);

                //ATTEMPT
                var hasErrors = comparer.CompareEfWithDb(_connectionString, context);

                //VERIFY
                hasErrors.ShouldBeTrue();
                var errors = CompareLog.ListAllErrors(comparer.Logs).ToList();
                errors.Count.ShouldEqual(2);
                errors[0].ShouldEqual(
                    "EXTRA IN DATABASE: EfCore.TestSupport-Test_ComparerBooksAndOrders->Table 'Orders'");
                errors[1].ShouldEqual(
                    "EXTRA IN DATABASE: EfCore.TestSupport-Test_ComparerBooksAndOrders->Table 'LineItem'");
            }
        }