public void VerifyThatMigrationVersionsWork() { MigrationEngine.Reset(); MigrationEngine.Migrate(excludes: new List <string>() { "BadMigration", "BadSeed", "BadSave", "BadReverse" }); Assert.IsTrue(DatabaseSession.Instance.Connector.CheckTableExists(new MigrationRecord())); Assert.AreEqual(4, MigrationRecord.All().Count); MigrationEngine.ResetTo(new Version(1, 0, 0)); Assert.AreEqual(3, MigrationRecord.All().Count); MigrationEngine.Reset(); MigrationEngine.Migrate(excludes: new List <string>() { "BadMigration", "BadSeed", "BadSave" }); Assert.IsTrue(DatabaseSession.Instance.Connector.CheckTableExists(new MigrationRecord())); Assert.AreEqual(5, MigrationRecord.All().Count); var migrationDeleteBase = new BadMigration(); Assert.Throws <InvalidDataException>(() => migrationDeleteBase.Delete()); Assert.Throws <Exception>(() => MigrationEngine.ResetTo(new Version(0, 0, 0))); MigrationEngine.Reset(hard: true); Assert.IsFalse(DatabaseSession.Instance.Connector.CheckTableExists(new MigrationRecord())); }