public MigrationLoader(IMigrationConventions conventions, Assembly assembly, string @namespace, IEnumerable<string> tagsToMatch, IAppliedVersions appliedVersions) { Conventions = conventions; Assembly = assembly; Namespace = @namespace; AppliedVersions = appliedVersions; TagsToMatch = tagsToMatch ?? new string[] { }; Initialize(); }
public void SetUp() { _applicationContext = new Random().Next(); _migrationList = new SortedList<long, IMigration>(); _runnerContextMock = new Mock<IRunnerContext>(MockBehavior.Loose); _processorMock = new Mock<IMigrationProcessor>(MockBehavior.Loose); _migrationLoaderMock = new Mock<IMigrationLoader>(MockBehavior.Loose); _profileLoaderMock = new Mock<IProfileLoader>(MockBehavior.Loose); _appliedVersions = new AppliedVersions(); _announcer = new Mock<IAnnouncer>(); _stopWatch = new Mock<IStopWatch>(); var options = new ProcessorOptions { PreviewOnly = false }; _processorMock.SetupGet(x => x.Options).Returns(options); _runnerContextMock.SetupGet(x => x.Namespace).Returns("FluentMigrator.Tests.Integration.Migrations"); _runnerContextMock.SetupGet(x => x.Announcer).Returns(_announcer.Object); _runnerContextMock.SetupGet(x => x.StopWatch).Returns(_stopWatch.Object); _runnerContextMock.SetupGet(x => x.Target).Returns(Assembly.GetExecutingAssembly().ToString()); _runnerContextMock.SetupGet(x => x.Connection).Returns(IntegrationTestOptions.SqlServer2008.ConnectionString); _runnerContextMock.SetupGet(x => x.Database).Returns("sqlserver"); _runnerContextMock.SetupGet(x => x.ApplicationContext).Returns(_applicationContext); _migrationLoaderMock.SetupGet(x => x.Migrations).Returns(_migrationList); _migrationLoaderMock.SetupGet(x => x.AppliedVersions).Returns(_appliedVersions); _runner = new MigrationRunner(Assembly.GetAssembly(typeof(MigrationRunnerTests)), _runnerContextMock.Object, _processorMock.Object) { MigrationLoader = _migrationLoaderMock.Object, ProfileLoader = _profileLoaderMock.Object, }; _fakeVersionLoader = new TestVersionLoader(_runner, _runner.VersionLoader.VersionTableMetaData); _runner.VersionLoader = _fakeVersionLoader; _processorMock.Setup(x => x.SchemaExists(It.Is<string>(s => s == _runner.VersionLoader.VersionTableMetaData.SchemaName))) .Returns(true); _processorMock.Setup(x => x.TableExists(It.Is<string>(s => s == _runner.VersionLoader.VersionTableMetaData.SchemaName), It.Is<string>(t => t == _runner.VersionLoader.VersionTableMetaData.TableName))) .Returns(true); }
public void LoadVersionInfo() { if (!AlreadyCreatedVersionSchema && !_versionSchemaMigrationAlreadyRun) { Runner.Up(VersionSchemaMigration); _versionSchemaMigrationAlreadyRun = true; } if (!AlreadyCreatedVersionTable && !_versionMigrationAlreadyRun) { Runner.Up(VersionMigration); _versionMigrationAlreadyRun = true; } if (!AlreadyMadeVersionUnique && !_versionUniqueMigrationAlreadyRun) { Runner.Up(VersionUniqueMigration); _versionUniqueMigrationAlreadyRun = true; } if (!AlreadyCreatedMetadataColumn && !_versionMetadataMigrationAlreadyRun) { Runner.Up(VersionMetadataMigration); _versionMetadataMigrationAlreadyRun = true; } appliedVersions = new AppliedVersions(); if (!AlreadyCreatedVersionTable) return; var dataSet = Processor.ReadTableData(VersionTableMetaData.SchemaName, VersionTableMetaData.TableName); foreach (DataRow row in dataSet.Tables[0].Rows) { var versionInfo = GetVersionInfo(row); appliedVersions.AddAppliedMigration(versionInfo); } }