public void Should_Add_Migration() { var migration = new Migration(); migration.Version = "0.0"; var migrationsService = new MigrationsService(); migrationsService.Register(migration); migrationsService.Migrations.Contains(migration).Should().BeTrue("because we just added this migration"); }
public void Should_List_Migrations_In_Order_By_Version() { var sourceMigrations = new List<Migration>() { new Migration {Version = "0.0"}, new Migration { Version = "0.0.1" }, new Migration { Version = "0.1" }, new Migration { Version = "0.2" }, new Migration { Version = "0.2.1" }, }; var migrationsService = new MigrationsService(); migrationsService.Register(sourceMigrations[3]); migrationsService.Register(sourceMigrations[0]); migrationsService.Register(sourceMigrations[4]); migrationsService.Register(sourceMigrations[1]); migrationsService.Register(sourceMigrations[2]); var migrations = migrationsService.Migrations; for (var i = 0; i < migrations.Count; i++) migrations[i].Should().Be(sourceMigrations[i]); }
public void Should_Apply_All_Migrations_Up_To_Given_Version() { var sourceMigrations = new List<IMigration>() { Mock.Of<IMigration>(m => m.Version == "0.0"), Mock.Of<IMigration>(m => m.Version == "0.0.1"), Mock.Of<IMigration>(m => m.Version == "0.1"), }; var migrationsService = new MigrationsService(); foreach (var migration in sourceMigrations) migrationsService.Register(migration); migrationsService.Migrate("", "0.1"); int index = 0; Mock.Get(sourceMigrations.Skip(index++).First()).Verify(mockmigration => mockmigration.Apply()); Mock.Get(sourceMigrations.Skip(index++).First()).Verify(mockmigration => mockmigration.Apply()); Mock.Get(sourceMigrations.Skip(index++).First()).Verify(mockmigration => mockmigration.Apply(), Times.Never); }
public void Should_Skip_Migrations_Prior_To_Detected_Version() { var sourceMigrations = new List<IMigration>() { Mock.Of<IMigration>(m => m.Version == "0.0"), Mock.Of<IMigration>(m => m.Version == "0.0.1"), }; var versionDetector = Mock.Of<IVersionDetector>(v => v.GetVersion() == "0.0"); var migrationsService = new MigrationsService(versionDetector); foreach (var migration in sourceMigrations) migrationsService.Register(migration); migrationsService.Migrate("0.1"); int index = 0; Mock.Get(sourceMigrations.Skip(index++).First()).Verify(mockmigration => mockmigration.Apply(), Times.Never); Mock.Get(sourceMigrations.Skip(index++).First()).Verify(mockmigration => mockmigration.Apply()); }