Exemplo n.º 1
0
        public void CompareDiffIndexes()
        {
            //SETUP
            var optionsBuilder = new DbContextOptionsBuilder <MyEntityIndexesDbContext>();

            optionsBuilder.UseSqlServer(_connectionString);
            using (var context = new MyEntityIndexesDbContext(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(3);
                errors[0].ShouldEqual(
                    "DIFFERENT: MyEntity->Property 'MyString', column type. Expected = nvarchar(450), found = nvarchar(max)");
                errors[1].ShouldEqual(
                    "NOT IN DATABASE: MyEntity->Index 'MyInt', index constraint name. Expected = MySpecialName");
                errors[2].ShouldEqual(
                    "NOT IN DATABASE: MyEntity->Index 'MyString', index constraint name. Expected = IX_MyEntites_MyString");
            }
        }
Exemplo n.º 2
0
        public void TestFindsNormalIndexes()
        {
            //SETUP
            var options = this.CreateUniqueMethodOptionsWithLogging <MyEntityIndexesDbContext>(log => _output.WriteLine(log.ToString()));

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

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

                //VERIFY
                hasErrors.ShouldBeFalse(comparer.GetAllErrors);
            }
        }
Exemplo n.º 3
0
        public void TestFindsConstraintIndexes()
        {
            //SETUP
            var sqlScriptPath    = TestData.GetFilePath("Index01*.sql");
            var connectionString = this.GetUniqueDatabaseConnectionString();

            connectionString.WipeCreateDatabase();
            var options = new DbContextOptionsBuilder <MyEntityIndexesDbContext>()
                          .UseSqlServer(connectionString)
                          .Options;

            using (var context = new MyEntityIndexesDbContext(options))
            {
                context.ExecuteScriptFileInTransaction(sqlScriptPath);

                var comparer = new CompareEfSql();

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

                //VERIFY
                hasErrors.ShouldBeFalse(comparer.GetAllErrors);
            }
        }