public void WhenAMissingUpdateReturnsFalse_NSchemerShouldNotLoopEndlessly() { var db = new UpdateTestDatabase("Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"); db.Versions.Add(new CodeTransition(2, "", "", () => true)); db.Update(); db.LatestVersion.ShouldBe(2); db.IsCurrent().ShouldBe(true); db.Versions.Add(new CodeTransition(1, "", "", () => false)); // update which fails var tokenSource = new CancellationTokenSource(); var token = tokenSource.Token; int timeout = 200; var task = Task.Factory.StartNew(() => { try { db.Update(); } catch {} }, token); task.Wait(timeout, token).ShouldBe(true); db.IsCurrent().ShouldBe(false); }
public void MissingUpdatesShouldBeRun() { var db = new UpdateTestDatabase("Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"); db.Versions.Add(new CodeTransition(2, "", "", () => true)); db.Update(); db.LatestVersion.ShouldBe(2); db.IsCurrent().ShouldBe(true); db.Versions.Add(new CodeTransition(1, "", "", () => true)); db.Update(); db.LatestVersion.ShouldBe(2); db.IsCurrent().ShouldBe(true); }