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));
        }