Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }