/// <summary> /// Инициализация /// </summary> public Migrator(ITransformationProvider provider, Assembly asm) { Require.IsNotNull(provider, "Не задан провайдер трансформации"); this.provider = provider; Require.IsNotNull(asm, "Не задана сборка с миграциями"); migrationAssembly = new MigrationAssembly(asm); }
public void CanLoadMigrationsWithKey() { Assembly assembly = Assembly.Load("ECM7.Migrator.TestAssembly"); var migrationAssembly = new MigrationAssembly(assembly); IList<long> list = migrationAssembly.MigrationsTypes.Select(x => x.Version).ToList(); Assert.AreEqual("test-key111", migrationAssembly.Key); Assert.AreEqual(3, list.Count); Assert.IsTrue(list.Contains(1)); Assert.IsTrue(list.Contains(2)); Assert.IsTrue(list.Contains(4)); }
public void CanCreateMigrationObject() { Assembly assembly = Assembly.Load("ECM7.Migrator.TestAssembly"); MigrationAssembly migrationAssembly = new MigrationAssembly(assembly); Mock<ITransformationProvider> provider = new Mock<ITransformationProvider>(); var mi = migrationAssembly.GetMigrationInfo(2); IMigration migration = migrationAssembly.InstantiateMigration(mi, provider.Object); Assert.IsNotNull(migration); Assert.That(migration is SecondTestMigration); Assert.AreSame(provider.Object, migration.Database); }
public void ForNullProviderShouldThrowException() { Assembly assembly = Assembly.Load("ECM7.Migrator.TestAssembly"); var loader = new MigrationAssembly(assembly); var mi = loader.GetMigrationInfo(1); Assert.Throws<Exception>(() => loader.InstantiateMigration(mi, null)); }
public void ThrowIfNoMigrationForVersion() { Assembly assembly = Assembly.Load("ECM7.Migrator.TestAssembly"); MigrationAssembly migrationAssembly = new MigrationAssembly(assembly); Assert.Throws<Exception>(() => migrationAssembly.GetMigrationInfo(99999999)); }
public void MigrationsMustBeSortedByNumber() { var target = new MemoryTarget { Name = MigratorLogManager.LOGGER_NAME, Layout = new SimpleLayout("${message}") }; MigratorLogManager.SetNLogTarget(target); Assembly assembly = Assembly.Load("ECM7.Migrator.TestAssembly"); var asm = new MigrationAssembly(assembly); var list = target.Logs .Where(str => str.StartsWith("Loaded migrations:")) .ToList(); Assert.AreEqual(1, list.Count); Assert.AreEqual("Loaded migrations:\r\n 1 First test migration\r\n 2 Second test migration\r\n 4 Four test migration\r\n", list[0]); }
public void LastVersion() { Assembly assembly = Assembly.Load("ECM7.Migrator.TestAssembly"); MigrationAssembly migrationAssembly = new MigrationAssembly(assembly); Assert.AreEqual(4, migrationAssembly.LastVersion); }
public void LaseVersionIsZeroIfNoMigrations() { Assembly assembly = GetType().Assembly; // загружаем текущую сборку - в ней нет миграций MigrationAssembly migrationAssembly = new MigrationAssembly(assembly); Assert.AreEqual(0, migrationAssembly.LastVersion); }