public void ScriptProviderHelper_SelectJournal_ShouldAddAllTheScripts() { var scripts = new List <ScriptBatch>() { new ScriptBatch(ScriptProviderHelper.GetFolder(GetBasePath(), "SubFolder1"), false, false, 0, Constants.Default.Encoding), new ScriptBatch(ScriptProviderHelper.GetFolder(GetBasePath(), "SubFolder2"), false, false, 0, Constants.Default.Encoding), }; var upgradeEngineBuilder = DeployChanges.To .SqlDatabase("testconn") .OverrideConnectionFactory(testConnectionFactory) .LogTo(Logger).Some <UpgradeEngineBuilder, Error>() .SelectScripts(scripts, NamingOptions.Default); upgradeEngineBuilder.MatchSome(x => { x.Build().PerformUpgrade(); }); var excutedScripts = Logger.GetExecutedScripts(); excutedScripts.Should().HaveCount(3); excutedScripts[0].Should().Be("003.sql"); excutedScripts[1].Should().Be("004.sql"); excutedScripts[2].Should().Be("005.sql"); }
public void ScriptProviderHelper_GetFolder_ShouldReturnCurrentFolder_IfTheFolderIsNullOrWhiteSpace() { var current = Directory.GetCurrentDirectory(); var path = ScriptProviderHelper.GetFolder(current, null); path.Should().Be(current); }
public void ScriptProviderHelper_GetFolder_ShouldReturnOriginalFolder_IfTheFolderIsAFullyQualifiedPath() { var current = Directory.GetCurrentDirectory(); var path = ScriptProviderHelper.GetFolder(current, "d:\\upgrades"); path.Should().Be("d:\\upgrades"); }
public void ScriptProviderHelper_GetSqlScriptOptions_ShouldSetGroupOrderToValidValue() { var batch = new ScriptBatch("", runAlways: true, false, 5, ""); var options = ScriptProviderHelper.GetSqlScriptOptions(batch); options.RunGroupOrder.Should().Be(5); }
public void ScriptProviderHelper_GetSqlScriptOptions_ShouldSetScriptTypeToRunAlways_IfRunAlwaysIsSetToTrue() { var batch = new ScriptBatch("", runAlways: true, false, 1, ""); var options = ScriptProviderHelper.GetSqlScriptOptions(batch); options.ScriptType.Should().Be(Support.ScriptType.RunAlways); }
public void ScriptProviderHelper_GetFolder_ShouldReturnFullyQualifiedFolder_IfTheFolderIsARelativePath() { var current = Directory.GetCurrentDirectory(); var path = ScriptProviderHelper.GetFolder(current, "upgrades"); path.Should().Be($"{current}\\upgrades"); }
public void ConfigurationHelper_GetSqlScriptOptions_ShouldSetScriptTypeToRunOnce_IfRunAlwaysIsSetToFalse() { var batch = new ScriptBatch("", runAlways: false, false, 1, ""); var options = ScriptProviderHelper.GetSqlScriptOptions(batch); options.ScriptType.Should().Be(Support.ScriptType.RunOnce); }
public void ScriptProviderHelper_GetFolder_ShouldThrowAnException_IfTheBaseFolderIsNullOrWhiteSpace() { Action nullAction = () => ScriptProviderHelper.GetFolder(null, null); Action whitespaceAction = () => ScriptProviderHelper.GetFolder(" ", null); nullAction.Should().Throw <ArgumentException>(); whitespaceAction.Should().Throw <ArgumentException>(); }
public void CreateFilter_GeneralString_ShouldMatchTheSameStringInTheDifferentLetterCase() { var filter = ScriptProviderHelper.CreateFilter("script.sql"); var result = filter("Script.SQL"); result.Should().BeTrue(); }
public void CreateFilter_RegexString_ShouldMatchTheTestedString(string filterString, string testedString) { var filter = ScriptProviderHelper.CreateFilter(filterString); var result = filter(testedString); result.Should().BeTrue(); }
public void CreateFilter_WildcardString_ShouldNotMatchTheTestedString(string filterString, string testedString) { var filter = ScriptProviderHelper.CreateFilter(filterString); var result = filter(testedString); result.Should().BeFalse(); }
public void CreateFilter_GeneralString_ShouldNotMatchTheSubstring() { var filter = ScriptProviderHelper.CreateFilter("script.sql"); var result = filter("script"); result.Should().BeFalse(); }
public void ScriptProviderHelper_GetFileSystemScriptOptions_ShouldSetIncludeSubDirectoriesToFalse_IfSubFoldersIsSetToFalse() { var batch = new ScriptBatch("", true, subFolders: false, 5, Constants.Default.Encoding); ScriptProviderHelper.GetFileSystemScriptOptions(batch, NamingOptions.Default).Match( some: options => options.IncludeSubDirectories.Should().BeFalse(), none: error => Assert.Fail(error.Message) ); }
public void CreateFilter_NullOrWhiteSpaceString_ShouldReturnNull() { var filter = ScriptProviderHelper.CreateFilter(" "); filter.Should().BeNull(); filter = ScriptProviderHelper.CreateFilter(null); filter.Should().BeNull(); }
public void ScriptProviderHelper_WhenOptionIsSpecified_ShouldReturnValid_Prefix_Option() { var batch = new ScriptBatch("", true, subFolders: true, 5, Constants.Default.Encoding); var naminOptions = new NamingOptions(false, false, "customprefix"); ScriptProviderHelper.GetFileSystemScriptOptions(batch, naminOptions).Match( some: options => options.Prefix.Should().Be("customprefix"), none: error => Assert.Fail(error.Message) ); }
public void ScriptProviderHelper_WhenOptionIsSpecified_ShouldReturnValid_PrefixScriptNameWithBaseFolderName_Option() { var batch = new ScriptBatch("", true, subFolders: true, 5, Constants.Default.Encoding); var naminOptions = new NamingOptions(false, includeBaseFolderName: true, null); ScriptProviderHelper.GetFileSystemScriptOptions(batch, naminOptions).Match( some: options => options.PrefixScriptNameWithBaseFolderName.Should().BeTrue(), none: error => Assert.Fail(error.Message) ); }
public void ScriptNamingScheme_With_UseOnlyFileName_Set_ShoudUseValidScriptName() { var scripts = new List <ScriptBatch>() { new ScriptBatch(ScriptProviderHelper.GetFolder(GetBasePath(), "Naming"), false, true, 0, Constants.Default.Encoding) }; var namingOptions = new NamingOptions(useOnlyFileName: true, false, null); var upgradeEngineBuilder = DeployChanges.To .SqlDatabase("testconn") .OverrideConnectionFactory(testConnectionFactory) .LogTo(Logger).Some <UpgradeEngineBuilder, Error>() .SelectScripts(scripts, namingOptions); upgradeEngineBuilder.MatchSome(x => { x.Build().PerformUpgrade(); }); var executedScripts = Logger.GetExecutedScripts(); executedScripts[0].Should().Be("001.sql"); }