Example #1
0
        /// <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);
 }