public void TestGapsAreFound()
{
var migration = A.Fake<IMigration>();
ImportedMigration[] importedMigrations =
{
new ImportedMigration(migration, new MigrationMetadata(1, DefaultModuleName, null), false),
new ImportedMigration(migration, new MigrationMetadata(2, DefaultModuleName, null), false),
new ImportedMigration(migration, new MigrationMetadata(3, DefaultModuleName, null), false),
};
IMigrationMetadata[] executedMigrations =
{
new MigrationMetadata(1, DefaultModuleName, null),
new MigrationMetadata(3, DefaultModuleName, null),
};
var selector = new MigrationSelector(importedMigrations, executedMigrations);
IEnumerable<ApplicableMigration> applicableMigrations;
IEnumerable<IMigrationMetadata> unidentifiedMigrations;
selector.GetMigrationsTo(long.MaxValue, m => true, out applicableMigrations, out unidentifiedMigrations);
Assert.AreEqual(1, applicableMigrations.Count());
Assert.AreEqual(2, applicableMigrations.First().Migration.Metadata.Timestamp);
Assert.AreEqual(MigrationDirection.Up, applicableMigrations.First().Direction);
CollectionAssert.IsEmpty(unidentifiedMigrations);
}