public void ObsoleteDoesNotFindsMigrationsInNestedNamespaceWhenLoadNestedNamespacesDisabled() { var conventions = new MigrationRunnerConventions(); var asm = Assembly.GetExecutingAssembly(); var loader = new DefaultMigrationInformationLoader(conventions, asm, "FluentMigrator.Tests.Integration.Migrations.Nested", false, null); List <Type> expected = new List <Type> { typeof(Integration.Migrations.Nested.NotGrouped), }; var migrationList = loader.LoadMigrations(); List <Type> actual = migrationList.Select(m => m.Value.Migration.GetType()).ToList(); CollectionAssert.AreEquivalent(expected, actual); }
public void CanLoadDefaultVersionTableMetaData() { var runnerContext = new Mock <IRunnerContext>(); var runner = new Mock <IMigrationRunner>(); runner.SetupGet(r => r.Processor.Options).Returns(new ProcessorOptions()); runner.SetupGet(r => r.RunnerContext).Returns(runnerContext.Object); var conventions = new MigrationRunnerConventions(); var asm = "s".GetType().Assembly; var loader = new VersionLoader(runner.Object, asm, ConventionSets.NoSchemaName, conventions, runnerContext.Object); var versionTableMetaData = loader.GetVersionTableMetaData(); versionTableMetaData.ShouldBeOfType <DefaultVersionTableMetaData>(); }
public void CanLoadCustomVersionTableMetaData() { var runnerContext = new Mock <IRunnerContext>(); var runner = new Mock <IMigrationRunner>(); runner.SetupGet(r => r.Processor.Options).Returns(new TestMigrationProcessorOptions()); runner.SetupGet(r => r.RunnerContext).Returns(runnerContext.Object); var conventions = new MigrationRunnerConventions(); var asm = Assembly.GetExecutingAssembly(); var loader = new VersionLoader(runner.Object, asm, ConventionSets.NoSchemaName, conventions); var versionTableMetaData = loader.GetVersionTableMetaData(); versionTableMetaData.ShouldBeOfType <TestVersionTableMetaData>(); }
public void ObsoleteShouldHandleTransactionlessMigrations() { var conventions = new MigrationRunnerConventions(); var asm = Assembly.GetExecutingAssembly(); var loader = new DefaultMigrationInformationLoader(conventions, asm, "FluentMigrator.Tests.Unit.DoesHandleTransactionLessMigrations", null); var list = loader.LoadMigrations().ToList(); list.Count().ShouldBe(2); list[0].Value.Migration.GetType().ShouldBe(typeof(DoesHandleTransactionLessMigrations.MigrationThatIsTransactionLess)); list[0].Value.TransactionBehavior.ShouldBe(TransactionBehavior.None); list[0].Value.Version.ShouldBe(1); list[1].Value.Migration.GetType().ShouldBe(typeof(DoesHandleTransactionLessMigrations.MigrationThatIsNotTransactionLess)); list[1].Value.TransactionBehavior.ShouldBe(TransactionBehavior.Default); list[1].Value.Version.ShouldBe(2); }
public void VersionDescriptionMigrationOnlyRunOnceEvenIfExistenceChecksReturnFalse() { var runnerContext = new Mock <IRunnerContext>(); var conventions = new MigrationRunnerConventions(); var processor = new Mock <IMigrationProcessor>(); var runner = new Mock <IMigrationRunner>(); var asm = Assembly.GetExecutingAssembly(); runner.SetupGet(r => r.Processor).Returns(processor.Object); runner.SetupGet(r => r.RunnerContext).Returns(runnerContext.Object); processor.Setup(p => p.ColumnExists(new TestVersionTableMetaData().SchemaName, TestVersionTableMetaData.TABLE_NAME, TestVersionTableMetaData.APPLIED_ON_COLUMN_NAME)).Returns(false); var loader = new VersionLoader(runner.Object, asm, ConventionSets.NoSchemaName, conventions, runnerContext.Object); loader.LoadVersionInfo(); runner.Verify(r => r.Up(loader.VersionDescriptionMigration), Times.Once()); }
public void VersionSchemaMigrationOnlyRunOnceEvenIfExistenceChecksReturnFalse() { var runnerContext = new Mock <IRunnerContext>(); var conventions = new MigrationRunnerConventions(); var processor = new Mock <IMigrationProcessor>(); var runner = new Mock <IMigrationRunner>(); var asm = Assembly.GetExecutingAssembly(); runner.SetupGet(r => r.Processor).Returns(processor.Object); runner.SetupGet(r => r.RunnerContext).Returns(runnerContext.Object); processor.Setup(p => p.SchemaExists(It.IsAny <string>())).Returns(false); var loader = new VersionLoader(runner.Object, asm, ConventionSets.NoSchemaName, conventions, runnerContext.Object); loader.LoadVersionInfo(); runner.Verify(r => r.Up(loader.VersionSchemaMigration), Times.Once()); }
public void CanFindMigrationsInAssembly() { var conventions = new MigrationRunnerConventions(); var asm = Assembly.GetExecutingAssembly(); var loader = new DefaultMigrationInformationLoader(conventions, asm, "FluentMigrator.Tests.Integration.Migrations.Interleaved.Pass1", null); SortedList <long, IMigrationInfo> migrationList = loader.LoadMigrations(); //if this works, there will be at least one migration class because i've included on in this code file var en = migrationList.GetEnumerator(); int count = 0; while (en.MoveNext()) { count++; } count.ShouldBeGreaterThan(0); }
public void CanSetupApplicationContext() { var applicationContext = "Test context"; var runnerContext = new Mock <IRunnerContext>(); runnerContext.SetupGet(r => r.ApplicationContext).Returns(applicationContext); var runner = new Mock <IMigrationRunner>(); runner.SetupGet(r => r.Processor.Options).Returns(new ProcessorOptions()); runner.SetupGet(r => r.RunnerContext).Returns(runnerContext.Object); var conventions = new MigrationRunnerConventions(); var asm = Assembly.GetExecutingAssembly(); var loader = new VersionLoader(runner.Object, asm, ConventionSets.NoSchemaName, conventions, runnerContext.Object); var versionTableMetaData = loader.GetVersionTableMetaData(); versionTableMetaData.ApplicationContext.ShouldBe(applicationContext); }
public void RemoveVersionTableShouldNotRemoveSchemaIfItDidNotOwnTheSchema() { var runnerContext = new Mock <IRunnerContext>(); var processor = new Mock <IMigrationProcessor>(); var runner = new Mock <IMigrationRunner>(); runner.SetupGet(r => r.Processor).Returns(processor.Object); runner.SetupGet(r => r.RunnerContext).Returns(runnerContext.Object); var conventions = new MigrationRunnerConventions(); var asm = Assembly.GetExecutingAssembly(); var loader = new VersionLoader(runner.Object, asm, ConventionSets.NoSchemaName, conventions, runnerContext.Object); ((TestVersionTableMetaData)loader.VersionTableMetaData).OwnsSchema = false; processor.Setup(p => p.Process(It.Is <DeleteTableExpression>(expression => expression.SchemaName == loader.VersionTableMetaData.SchemaName && expression.TableName == loader.VersionTableMetaData.TableName))) .Verifiable(); loader.RemoveVersionTable(); processor.Verify(p => p.Process(It.IsAny <DeleteSchemaExpression>()), Times.Never()); }