public void ThatExecuteSetupsCorrectly() { MockEnvironmentProvider mockEnvironmentProvider = new MockEnvironmentProvider(); mockEnvironmentProvider.SetCurrentDirectory(@"c:\DbDeploy"); EnvironmentProvider.Current = mockEnvironmentProvider; try { IConfigurationService configurationService = new ConfigurationService(); Container.RegisterInstance(configurationService); Mock <IDeploymentService> deploymentServiceMock = new Mock <IDeploymentService>(MockBehavior.Strict); deploymentServiceMock.Setup(d => d.BuildDeploymentScript()).Verifiable(); Container.RegisterInstance(deploymentServiceMock.Object); DbDeploy deploy = new DbDeploy(); deploy.ConnectionString = "Connection String"; deploy.DatabaseType = "mssql"; deploy.LastChangeToApply = 500; deploy.OutputFile = "Output File"; deploy.Recursive = true; deploy.RootDirectory = "Root Directory"; deploy.SearchPattern = "*.sql"; deploy.UndoFile = "Undo File"; deploy.Execute(); Approvals.Verify(configurationService); deploy.DatabaseType = "ora"; deploy.Execute(); Assert.AreEqual(configurationService.DatabaseManagementSystem, DatabaseTypesEnum.Oracle); deploy.DatabaseType = "mysql"; deploy.Execute(); Assert.AreEqual(configurationService.DatabaseManagementSystem, DatabaseTypesEnum.MySql); deploy.DatabaseType = "BadDBType"; bool expectedExceptionFound = false; try { deploy.Execute(); } catch (ArgumentException) { expectedExceptionFound = true; } Assert.IsTrue(expectedExceptionFound, "Expected to receive an argument exception for a bad db type, but did not."); deploymentServiceMock.Verify(d => d.BuildDeploymentScript(), Times.Exactly(3)); } finally { EnvironmentProvider.ResetToDefault(); } }
public WindowsEnvironmentPathTests() { _reporter = new BufferedReporter(); _mockPathInternal = new MockPathInternal(); var mockEnvironmentProvider = new MockEnvironmentProvider(_mockPathInternal); var mockEnvironmentPathEditor = new MockEnvironmentPathEditor(_mockPathInternal); _windowsEnvironmentPath = new WindowsEnvironmentPath( _toolsPath, CliFolderPathCalculator.WindowsNonExpandedToolsShimPath, mockEnvironmentProvider, mockEnvironmentPathEditor, _reporter ); }
public WindowsEnvironmentPathTests() { _reporter = new BufferedReporter(); _mockPathInternal = new MockPathInternal(); var mockEnvironmentProvider = new MockEnvironmentProvider(_mockPathInternal); var mockEnvironmentPathEditor = new MockEnvironmentPathEditor(_mockPathInternal); _windowsEnvironmentPath = new WindowsEnvironmentPath( _toolsPath, @"%USERPROFILE%\.dotnet\tools", mockEnvironmentProvider, mockEnvironmentPathEditor, _reporter ); }
public void ThatBuildChangeScriptWorks() { DateTime dateTime = new DateTime(2014, 09, 17, 17, 42, 55); TimeProvider.Current = new MockTimeProvider(dateTime); MockEnvironmentProvider mockEnvironmentProvider = new MockEnvironmentProvider(); mockEnvironmentProvider.SetUserName("userName"); EnvironmentProvider.Current = mockEnvironmentProvider; string changeScriptHeader = "Change Script Header -- CurrentVersion = $(CurrentVersion);Current DateTime = $(CurrentDateTime);Current User = $(CurrentUser)"; string scriptHeader = "Script Header -- Script Name = $(ScriptName);Script Id = $(ScriptId);Script Description = $(ScriptDescription)"; string scriptFooter = "Script Footer -- String Name = $(ScriptName);Script Id = $(ScriptId)"; string changeScriptFooter = "Change Script Footer -- Current DateTime = $(CurrentDateTime)"; string undoToken = "--//@Undo"; ScriptService constructorTest = new ScriptService(); Mock <IDatabaseService> databaseServiceMock = new Mock <IDatabaseService>(MockBehavior.Strict); Mock <IFileService> fileServiceMock = new Mock <IFileService>(MockBehavior.Strict); // Database service mock setup databaseServiceMock.Setup(d => d.GetScriptFromFile(DatabaseScriptEnum.ChangeScriptHeader)) .Returns(changeScriptHeader); databaseServiceMock.Setup(d => d.GetScriptFromFile(DatabaseScriptEnum.ScriptHeader)).Returns(scriptHeader); databaseServiceMock.Setup(d => d.GetScriptFromFile(DatabaseScriptEnum.ScriptFooter)).Returns(scriptFooter); databaseServiceMock.Setup(d => d.GetScriptFromFile(DatabaseScriptEnum.ChangeScriptFooter)) .Returns(changeScriptFooter); databaseServiceMock.Setup(d => d.GetScriptFromFile(DatabaseScriptEnum.UndoToken)).Returns(undoToken); // file Service mock setup fileServiceMock.Setup(f => f.GetFileContents(It.IsAny <string>(), It.IsAny <bool>())) .Returns( (string s, bool b) => { ScriptFile file = new ScriptFile(); file.Parse(fileServiceMock.Object, s); if (file.Id % 2 == 0) { return(file.Description + undoToken + "Undo text."); } return(file.Description); }); IDictionary <decimal, IScriptFile> changes = this.GetChanges(); Mock <IConfigurationService> configurationService = new Mock <IConfigurationService>(); configurationService.Setup(c => c.DatabaseService).Returns(databaseServiceMock.Object); IScriptService scriptService = new ScriptService( fileServiceMock.Object, new TokenReplacer(new ConfigurationService()), configurationService.Object); string result = scriptService.BuildChangeScript(changes); TimeProvider.ResetToDefault(); EnvironmentProvider.ResetToDefault(); Approvals.Verify(result); }