Пример #1
0
 public void ShouldTrackExecutedScripts()
 {
     DbUpgrader
     .PerformUpgrade()
     .Scripts.ToList()
     .ForEach(script => VersionTracker.Received().StoreExecutedScript(script));
 }
Пример #2
0
        public void ShouldLogNoAction()
        {
            DbUpgrader.PerformUpgrade();

            Log.Received().WriteInformation("Beginning database upgrade");
            Log.Received().WriteInformation("No new scripts need to be executed - completing.");
        }
Пример #3
0
        public void ShouldLogInformation()
        {
            DbUpgrader.PerformUpgrade();

            Log.Received().WriteInformation("Beginning database upgrade");
            Log.Received().WriteInformation("Upgrade successful");
        }
Пример #4
0
        public void ShouldLogAnErrorWhenUpgradeFails()
        {
            var ex = new InvalidOperationException();

            ScriptProvider.GetScripts(Arg.Any <Func <IDbConnection> >()).Returns(provider => { throw ex; });
            DbUpgrader.PerformUpgrade();
            Log.Received().WriteError("Upgrade failed due to an unexpected exception:\r\n{0}", ex.ToString());
        }
Пример #5
0
        public void ShouldRunAllScriptsInTheOrderProvided()
        {
            var result = DbUpgrader.PerformUpgrade();

            Assert.AreEqual("0001.sql", result.Scripts.ElementAt(0).Name);
            Assert.AreEqual("0004.sql", result.Scripts.ElementAt(1).Name);
            Assert.AreEqual("0002.sql", result.Scripts.ElementAt(2).Name);
        }
Пример #6
0
        public void ShouldRunAllScripts()
        {
            var result = DbUpgrader.PerformUpgrade();

            Assert.IsTrue(result.Scripts.All(script =>
                                             AllScripts.Contains(script)
                                             ));
        }
Пример #7
0
        public void ShouldExecuteCorrectScript()
        {
            var result         = DbUpgrader.PerformUpgrade();
            var expectedScript = AllScripts.Last();

            ScriptExecutor.Received().Execute(expectedScript, Arg.Any <IDictionary <string, string> >());
            VersionTracker.Received().StoreExecutedScript(expectedScript);

            Assert.AreEqual(expectedScript, result.Scripts.First());
        }
Пример #8
0
        public void ShouldReturnFailedResult()
        {
            var ex = new InvalidOperationException();

            ScriptProvider.GetScripts(Arg.Any <Func <IDbConnection> >()).Returns(provider => { throw ex; });
            var result = DbUpgrader.PerformUpgrade();

            Assert.That(result.Successful == false);
            Assert.That(result.Scripts.Count() == 0);
            Assert.That(result.Error == ex);
        }
Пример #9
0
        public void ShouldCallPreprocessor()
        {
            DbUpgrader.PerformUpgrade();

            ScriptExecutor.Received().Execute(Arg.Any <SqlScript>(), Arg.Any <IDictionary <string, string> >());
        }
Пример #10
0
        public void ShouldNotStoreAnyScripts()
        {
            DbUpgrader.PerformUpgrade();

            VersionTracker.DidNotReceiveWithAnyArgs().StoreExecutedScript(null);
        }
Пример #11
0
        public void ShouldReturnSuccess()
        {
            var result = DbUpgrader.PerformUpgrade();

            Assert.IsTrue(result.Successful);
        }
Пример #12
0
        public void ShouldNotRunAnyScripts()
        {
            var result = DbUpgrader.PerformUpgrade();

            Assert.AreEqual(0, result.Scripts.Count());
        }