public void GivenAMigrationHasAlreadyRun_WhenRunDeploymentScript_NoDatabaseInteractionIsInvoked() { var script = new DeploymentScript("Test", "Script"); var mockDb = new Mock <IDatabase>(); mockDb.Setup(x => x.Exists <MigrationHistory>(It.IsAny <string>())).Returns(true); var mockConfig = new Mock <INPocoLocoConfig>(); var deployment = new DatabaseDeployment(mockDb.Object, mockConfig.Object); deployment.RunDeploymentScript(script); mockDb.Verify(x => x.BeginTransaction(), Times.Never); }
public void GivenRunDeploymentScriptFails_ExceptionShouldBeCaught() { var script = new DeploymentScript("Test", "Script"); var mockDb = new Mock <IDatabase>(); mockDb.Setup(x => x.Exists <MigrationHistory>(It.IsAny <string>())).Returns(false); mockDb.Setup(x => x.Insert(It.IsAny <MigrationHistory>())).Throws <Exception>(); var mockConfig = new Mock <INPocoLocoConfig>(); var deployment = new DatabaseDeployment(mockDb.Object, mockConfig.Object); Action action = () => deployment.RunDeploymentScript(script); action.ShouldThrow <Exception>(); }
public void GivenRunningDeploymentScriptFails_TransactionIsAborted() { var script = new DeploymentScript("Test", "Script"); var mockDb = new Mock <IDatabase>(); mockDb.Setup(x => x.Exists <MigrationHistory>(It.IsAny <string>())).Returns(false); mockDb.Setup(x => x.Insert(It.IsAny <MigrationHistory>())).Throws <Exception>(); mockDb.Setup(x => x.AbortTransaction()).Verifiable(); var mockConfig = new Mock <INPocoLocoConfig>(); var deployment = new DatabaseDeployment(mockDb.Object, mockConfig.Object); Action action = () => deployment.RunDeploymentScript(script); action.ShouldThrow <Exception>(); mockDb.Verify(x => x.AbortTransaction(), Times.Once); }