public void CanMigrateInterleavedMigrations()
        {
            ExecuteWithSupportedProcessors(processor =>
                {
                    runMigrationsInNamespace(processor, "FluentMigrator.Tests.Integration.Migrations.Interleaved.Pass1");
                    runMigrationsInNamespace(processor, "FluentMigrator.Tests.Integration.Migrations.Interleaved.Pass2");
                    runMigrationsInNamespace(processor, "FluentMigrator.Tests.Integration.Migrations.Interleaved.Pass3");

                    processor.TableExists("UserRoles").ShouldBeTrue();
                    processor.TableExists("User").ShouldBeTrue();

                    var runner = new MigrationVersionRunner(_conventions, processor, new MigrationLoader(_conventions), typeof(MigrationVersionRunnerTests).Assembly, "FluentMigrator.Tests.Integration.Migrations.Interleaved.Pass3");

                    runner.VersionInfo.HasAppliedMigration(200909060953).ShouldBeTrue();
                    runner.VersionInfo.HasAppliedMigration(200909060935).ShouldBeTrue();
                    runner.VersionInfo.HasAppliedMigration(200909060930).ShouldBeTrue();

                    runner.VersionInfo.Latest().ShouldBe(200909060953);

                    runner.Rollback(3);

                    processor.TableExists("UserRoles").ShouldBeFalse();
                    processor.TableExists("User").ShouldBeFalse();

                    runner.RemoveVersionTable();
                });
        }
        public void CanRunMigrations()
        {
            ExecuteWithSupportedProcessors(processor =>
                {
                    var runner = new MigrationVersionRunner(_conventions, processor, new MigrationLoader(_conventions), typeof(MigrationVersionRunnerTests).Assembly, typeof(TestMigration).Namespace);

                    runner.MigrateUp();
                    runner.VersionInfo.HasAppliedMigration(1).ShouldBeTrue();
                    runner.VersionInfo.HasAppliedMigration(2).ShouldBeTrue();
                    runner.VersionInfo.Latest().ShouldBe(2);

                    runner.Rollback(2);
                    runner.VersionInfo.HasAppliedMigration(1).ShouldBeFalse();
                    runner.VersionInfo.HasAppliedMigration(2).ShouldBeFalse();
                    runner.VersionInfo.Latest().ShouldBe(0);

                    runner.RemoveVersionTable();
                });
        }