From 4ce62712d5a4175071ab76a1ff6a40447d7e0e50 Mon Sep 17 00:00:00 2001 From: "Erik A. Brandstadmoen" Date: Mon, 1 Apr 2024 22:29:17 +0200 Subject: [PATCH] Task #485: Add factory IFoldersConfiguration builder 'Folders' for convenience (#490) Make it easier to configure custom folder configurations when using grate as a library. Solves #485 --- src/grate.core/Configuration/Folders.cs | 73 +++++++++++ .../Configuration}/FoldersCommand.cs | 3 +- .../GrateConfigurationBuilder.cs | 7 +- .../FolderConfiguration_.cs | 2 +- .../GrateConfigurationBuilder_Factory.cs | 27 ++-- .../Basic_tests/Infrastructure/FileSystem_.cs | 8 +- ...zed_Folders_Can_Be_Set_Programmatically.cs | 115 ++++++++++++++++++ .../KnownFolders_Default.cs | 2 +- .../Infrastructure/TokenReplacerTests.cs | 2 +- .../One_time_scripts.cs | 2 +- .../One_time_scripts.cs | 2 +- .../One_time_scripts.cs | 2 +- .../One_time_scripts.cs | 2 +- .../One_time_scripts.cs | 2 +- .../Everytime_scripts.cs | 2 +- .../Basic_tests/TokenReplacerTests.cs | 2 +- .../RestoreDatabase.cs | 2 +- .../RestoreDatabase.cs | 2 +- .../TestCommon/Generic/GenericDatabase.cs | 2 +- .../Generic/GenericMigrationTables.cs | 8 +- .../Anytime_scripts.cs | 10 +- .../Running_MigrationScripts/DropDatabase.cs | 2 +- .../Environment_scripts.cs | 8 +- .../Everytime_scripts.cs | 8 +- .../Failing_Scripts.cs | 16 +-- .../One_time_scripts.cs | 8 +- .../Order_Of_Scripts.cs | 2 +- .../ScriptsRun_Table.cs | 8 +- .../Running_MigrationScripts/TokenScripts.cs | 4 +- .../Versioning_The_Database.cs | 12 +- 30 files changed, 272 insertions(+), 73 deletions(-) create mode 100644 src/grate.core/Configuration/Folders.cs rename src/{grate/Commands => grate.core/Configuration}/FoldersCommand.cs (99%) create mode 100644 unittests/Basic_tests/Infrastructure/FolderConfiguration/Customized_Folders_Can_Be_Set_Programmatically.cs diff --git a/src/grate.core/Configuration/Folders.cs b/src/grate.core/Configuration/Folders.cs new file mode 100644 index 00000000..e239f0b3 --- /dev/null +++ b/src/grate.core/Configuration/Folders.cs @@ -0,0 +1,73 @@ +namespace grate.Configuration; + +/// +/// Factory class for creating instances. +/// +public static class Folders +{ + /// + /// The default . + /// + public static IFoldersConfiguration Default => FoldersConfiguration.Default(); + + /// + /// An empty . + /// + public static IFoldersConfiguration Empty => FoldersConfiguration.Empty; + + /// + /// Folder configuration with the specified folders. + /// + /// A list of migration folders + /// An IFoldersConfiguration with the supplied folders + public static IFoldersConfiguration Create(params MigrationsFolder [] folders) + => new FoldersConfiguration(folders); + + /// + /// Folder configuration with the specified folders. + /// + /// A list of migration folders + /// An IFoldersConfiguration with the supplied folders + public static IFoldersConfiguration Create(IEnumerable folders) + => new FoldersConfiguration(folders); + + /// + /// Folder configuration with the specified Dictionary of folder names and folders. + /// + /// A Dictionary of folder names and migration folders + /// An IFoldersConfiguration with the supplied folders + public static IFoldersConfiguration Create(IDictionary folders) + => new FoldersConfiguration(folders); + + /// + /// Folder configuration from strings, where each string is a folder configuration, as + /// you can specify on the command line. + /// + /// For convenience, you can specify each folder in a separate string, instead of all in one string, separated by a semicolon. + /// + /// For example: + /// + /// + /// Create("structure=relativePath:myCustomFolder,type:Once,connectionType:Admin", + /// "randomstuff=type:Once;procedures=type:Once;security=type:Once") + /// + /// + /// + /// Separate strings with folder configurations + /// An IFoldersConfiguration with the supplied folders + public static IFoldersConfiguration Create(params string[] folders) + => FoldersCommand.Parse(string.Join(";", folders)); + + /// + /// Folder configuration from strings, where each string is a folder configuration, as + /// you can specify on the command line. + /// + /// You specify multiple folders in one string, separated by a semicolon. + /// + /// For example: "structure=relativePath:myCustomFolder,type:Once,connectionType:Admin;randomstuff=type:Once;procedures=type:Once;security=type:Once" + /// + /// A semicolon separated string with all the folder configurations, as specified on the command line + /// An IFoldersConfiguration with the supplied folders + public static IFoldersConfiguration Create(string folders) + => FoldersCommand.Parse(folders); +} diff --git a/src/grate/Commands/FoldersCommand.cs b/src/grate.core/Configuration/FoldersCommand.cs similarity index 99% rename from src/grate/Commands/FoldersCommand.cs rename to src/grate.core/Configuration/FoldersCommand.cs index 2071a587..a18a7cfc 100644 --- a/src/grate/Commands/FoldersCommand.cs +++ b/src/grate.core/Configuration/FoldersCommand.cs @@ -1,8 +1,7 @@ using System.Reflection; -using grate.Configuration; using grate.Exceptions; -namespace grate.Commands; +namespace grate.Configuration; internal static class FoldersCommand { diff --git a/src/grate.core/Configuration/GrateConfigurationBuilder.cs b/src/grate.core/Configuration/GrateConfigurationBuilder.cs index 87de162f..5503a7ec 100644 --- a/src/grate.core/Configuration/GrateConfigurationBuilder.cs +++ b/src/grate.core/Configuration/GrateConfigurationBuilder.cs @@ -51,7 +51,12 @@ public GrateConfigurationBuilder WithOutputFolder(string outputFolder) /// names of the folders and the migration type. Default is the grate default folder configuration, /// using 'up', 'functions', 'views', 'sprocs', 'triggers', 'indexes', 'permissions' and 'after_migration'. /// - /// A folder configuration to use. Can be DefaultConfiguration with some modifications. + /// + /// A folder configuration to use. Can be DefaultConfiguration with some modifications, + /// a fully customized folder set, or a slightly modified one. + /// + /// Please see the static helper class with factory methods for creating folder configurations. + /// /// GrateConfigurationBuilder public GrateConfigurationBuilder WithFolders(IFoldersConfiguration folders) { diff --git a/unittests/Basic_tests/CommandLineParsing/FolderConfiguration_.cs b/unittests/Basic_tests/CommandLineParsing/FolderConfiguration_.cs index 5de4a771..ad54736b 100644 --- a/unittests/Basic_tests/CommandLineParsing/FolderConfiguration_.cs +++ b/unittests/Basic_tests/CommandLineParsing/FolderConfiguration_.cs @@ -20,7 +20,7 @@ public async Task Default() var cfg = await ParseGrateConfiguration("--sqlfilesdirectory=/tmp"); _ = cfg?.SqlFilesDirectory ?? new DirectoryInfo("/tmp"); - var expected = FoldersConfiguration.Default(null); + var expected = Folders.Default; var actual = cfg?.Folders; AssertEquivalent(expected.Values, actual?.Values); diff --git a/unittests/Basic_tests/DependencyInjection/GrateConfigurationBuilder_Factory.cs b/unittests/Basic_tests/DependencyInjection/GrateConfigurationBuilder_Factory.cs index 673ea957..7bd60aff 100644 --- a/unittests/Basic_tests/DependencyInjection/GrateConfigurationBuilder_Factory.cs +++ b/unittests/Basic_tests/DependencyInjection/GrateConfigurationBuilder_Factory.cs @@ -1,4 +1,5 @@ -using FluentAssertions; +using System.Collections.Immutable; +using FluentAssertions; using grate.Configuration; using grate.Infrastructure; using Microsoft.Extensions.DependencyInjection; @@ -11,7 +12,6 @@ public class GrateConfigurationBuilder_Factory [Fact] public void Creates_default_builder_with_non_interactive() { - var serviceCollection = new ServiceCollection(); var builder = GrateConfigurationBuilder.Create(); var grateConfiguration = builder.Build(); grateConfiguration.NonInteractive.Should().Be(true); @@ -23,7 +23,6 @@ public void Creates_default_builder_with_output_folder(string outputFolder) { var outputDir = Directory.CreateDirectory(outputFolder); WriteSql(Wrap(outputDir, "views"), "01_test_view.sql", "create view v_test as select 1"); - var serviceCollection = new ServiceCollection(); var builder = GrateConfigurationBuilder.Create(); builder.WithOutputFolder(outputFolder); var grateConfiguration = builder.Build(); @@ -38,7 +37,6 @@ public void Creates_default_builder_with_sql_folder(string sqlFolder) { var sqlDir = Directory.CreateDirectory(sqlFolder); WriteSql(Wrap(sqlDir, "views"), "01_test_view.sql", "create view v_test as select 1"); - var serviceCollection = new ServiceCollection(); var builder = GrateConfigurationBuilder.Create(); builder.WithSqlFilesDirectory(sqlFolder); var grateConfiguration = builder.Build(); @@ -51,7 +49,6 @@ public void Creates_default_builder_with_sql_folder(string sqlFolder) [InlineData("roundhouse")] public void Creates_default_builder_with_schema(string schemaName) { - var serviceCollection = new ServiceCollection(); var builder = GrateConfigurationBuilder.Create(); builder.WithSchema(schemaName); var grateConfiguration = builder.Build(); @@ -63,7 +60,6 @@ public void Creates_default_builder_with_schema(string schemaName) [InlineData("Data source=whatever;Database=;")] public void Creates_default_builder_with_connection_string(string connectionString) { - var serviceCollection = new ServiceCollection(); var builder = GrateConfigurationBuilder.Create(); builder.WithConnectionString(connectionString); var grateConfiguration = builder.Build(); @@ -75,7 +71,6 @@ public void Creates_default_builder_with_connection_string(string connectionStri [InlineData("Data source=whatever;Database=master;")] public void Creates_default_builder_with_admin_connection_string(string adminConnectionString) { - var serviceCollection = new ServiceCollection(); var builder = GrateConfigurationBuilder.Create(); builder.WithAdminConnectionString(adminConnectionString); var grateConfiguration = builder.Build(); @@ -87,16 +82,15 @@ public void Creates_default_builder_with_admin_connection_string(string adminCon [InlineData("1.0.0.0")] public void Creates_default_builder_with_version(string version) { - var serviceCollection = new ServiceCollection(); var builder = GrateConfigurationBuilder.Create(); builder.WithVersion(version); var grateConfiguration = builder.Build(); grateConfiguration.Version.Should().Be(version); } + [Fact] public void Creates_default_builder_with_do_not_create_database() { - var serviceCollection = new ServiceCollection(); var builder = GrateConfigurationBuilder.Create(); builder.DoNotCreateDatabase(); var grateConfiguration = builder.Build(); @@ -106,7 +100,6 @@ public void Creates_default_builder_with_do_not_create_database() [Fact] public void Creates_default_builder_with_transaction() { - var serviceCollection = new ServiceCollection(); var builder = GrateConfigurationBuilder.Create(); builder.WithTransaction(); var grateConfiguration = builder.Build(); @@ -128,4 +121,18 @@ public void Creates_default_builder_with_environment_name(string environmentName grateConfiguration.Environment.Should().BeEquivalentTo(new GrateEnvironment(environmentName)); } + [Fact] + public void Creates_default_builder_with_custom_folder_configuration() + { + var builder = GrateConfigurationBuilder.Create() + .WithFolders(Folders.Create("up=ddl", "views=binoculars")); + var grateConfiguration = builder.Build(); + + var folders = grateConfiguration.Folders!; + folders.Should().HaveCount(Folders.Default.Count); + + folders[KnownFolderKeys.Up]!.Path.Should().Be("ddl"); + folders[KnownFolderKeys.Views]!.Path.Should().Be("binoculars"); + } + } diff --git a/unittests/Basic_tests/Infrastructure/FileSystem_.cs b/unittests/Basic_tests/Infrastructure/FileSystem_.cs index 5b13bd79..f2c1717f 100644 --- a/unittests/Basic_tests/Infrastructure/FileSystem_.cs +++ b/unittests/Basic_tests/Infrastructure/FileSystem_.cs @@ -12,7 +12,7 @@ public class FileSystem_ public void Sorts_enumerated_files_on_filename_when_no_subfolders() { var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var path = Wrap(parent, knownFolders[KnownFolderKeys.Up]!.Path); @@ -32,7 +32,7 @@ public void Sorts_enumerated_files_on_filename_when_no_subfolders() public void Sorts_enumerated_files_on_filename_without_extension_when_no_subfolders() { var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var path = Wrap(parent, knownFolders[KnownFolderKeys.Up]!.Path); @@ -52,7 +52,7 @@ public void Sorts_enumerated_files_on_filename_without_extension_when_no_subfold public void Sorts_enumerated_files_on_sub_path_when_subfolders_are_used() { var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var path = Wrap(parent, knownFolders[KnownFolderKeys.Up]!.Path); @@ -75,7 +75,7 @@ public void Sorts_enumerated_files_on_sub_path_when_subfolders_are_used() public void Sorts_enumerated_files_on_filename_when_directory_names_are_ignored() { var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var path = Wrap(parent, knownFolders[KnownFolderKeys.Up]!.Path); diff --git a/unittests/Basic_tests/Infrastructure/FolderConfiguration/Customized_Folders_Can_Be_Set_Programmatically.cs b/unittests/Basic_tests/Infrastructure/FolderConfiguration/Customized_Folders_Can_Be_Set_Programmatically.cs new file mode 100644 index 00000000..ec9b7ca4 --- /dev/null +++ b/unittests/Basic_tests/Infrastructure/FolderConfiguration/Customized_Folders_Can_Be_Set_Programmatically.cs @@ -0,0 +1,115 @@ +using System.Collections.Immutable; +using FluentAssertions; +using grate.Configuration; + +namespace Basic_tests.Infrastructure.FolderConfiguration; + +// ReSharper disable once InconsistentNaming +public class Customized_Folders_Can_Be_Set_Programmatically +{ + [Fact] + public void From_MigrationsFolder_list() + { + var folders = Folders.Create( + new MigrationsFolder("structure"), + new MigrationsFolder("randomstuff"), + new MigrationsFolder("procedures"), + new MigrationsFolder("security") + ); + var items = folders.Values.ToImmutableArray(); + + Assert.Multiple(() => + { + items[0].Should().Be(folders["structure"]); + items[1].Should().Be(folders["randomstuff"]); + items[2].Should().Be(folders["procedures"]); + items[3].Should().Be(folders["security"]); + }); + } + + [Fact] + public void From_Enumerable_of_MigrationsFolder() + { + var folders = Folders.Create(new List + { + new("structure"), + new("randomstuff"), + new("procedures"), + new("security")} + ); + var items = folders.Values.ToImmutableArray(); + + Assert.Multiple(() => + { + items[0].Should().Be(folders["structure"]); + items[1].Should().Be(folders["randomstuff"]); + items[2].Should().Be(folders["procedures"]); + items[3].Should().Be(folders["security"]); + }); + } + + [Fact] + public void From_Dictionary_of_MigrationsFolder() + { + var folders = Folders.Create(new Dictionary + { + {"structure", new("str") }, + {"randomstuff", new("rnd") }, + {"procedures", new("procs") }, + {"security", new("sec") } + } + ); + var items = folders.Values.ToImmutableArray(); + + Assert.Multiple(() => + { + items[0].Should().Be(folders["structure"]); + items[1].Should().Be(folders["randomstuff"]); + items[2].Should().Be(folders["procedures"]); + items[3].Should().Be(folders["security"]); + }); + } + + + [Fact] + public void From_command_line_argument_style_single_string() + { + var folders = Folders.Create("nup=tables;sprocs=storedprocedures;views=projections"); + var items = folders.ToImmutableArray(); + + Assert.Multiple(() => + { + items[0].Key.Should().Be("nup"); + items[0].Value!.Path.Should().Be("tables"); + + items[1].Key.Should().Be("sprocs"); + items[1].Value!.Path.Should().Be("storedprocedures"); + + items[2].Key.Should().Be("views"); + items[2].Value!.Path.Should().Be("projections"); + }); + } + + [Fact] + public void From_multiple_string_arguments() + { + var folders = Folders.Create("zup=tables", "sprocs=path:storedprocedures,type:anytime", "views=projections"); + var items = folders.ToImmutableArray(); + + Assert.Multiple(() => + { + items[0].Key.Should().Be("zup"); + items[0].Value!.Path.Should().Be("tables"); + + items[1].Key.Should().Be("sprocs"); + items[1].Value!.Path.Should().Be("storedprocedures"); + items[1].Value!.Type.Should().Be(MigrationType.AnyTime); + + items[2].Key.Should().Be("views"); + items[2].Value!.Path.Should().Be("projections"); + }); + } + + + +} diff --git a/unittests/Basic_tests/Infrastructure/FolderConfiguration/KnownFolders_Default.cs b/unittests/Basic_tests/Infrastructure/FolderConfiguration/KnownFolders_Default.cs index 7d0144e4..25627dca 100644 --- a/unittests/Basic_tests/Infrastructure/FolderConfiguration/KnownFolders_Default.cs +++ b/unittests/Basic_tests/Infrastructure/FolderConfiguration/KnownFolders_Default.cs @@ -59,7 +59,7 @@ TransactionHandling transactionHandling } private static readonly DirectoryInfo Root = TestConfig.CreateRandomTempDirectory(); - private static readonly IFoldersConfiguration Folders = FoldersConfiguration.Default(null); + private static readonly IFoldersConfiguration Folders = global::grate.Configuration.Folders.Default; public static IEnumerable ExpectedKnownFolderNames() { diff --git a/unittests/Basic_tests/Infrastructure/TokenReplacerTests.cs b/unittests/Basic_tests/Infrastructure/TokenReplacerTests.cs index 78e54dd1..bf5d6da4 100644 --- a/unittests/Basic_tests/Infrastructure/TokenReplacerTests.cs +++ b/unittests/Basic_tests/Infrastructure/TokenReplacerTests.cs @@ -37,7 +37,7 @@ public void EnsureTokensAreReplaced() [Fact] public void EnsureConfigMakesItToTokens() { - var folders = FoldersConfiguration.Default(null); + var folders = Folders.Default; var config = new GrateConfiguration() { SchemaName = "Test", Folders = folders }; var provider = new TokenProvider(config, Substitute.For()); var tokens = provider.GetTokens(); diff --git a/unittests/CommandLine/CommandLine.MariaDB/Running_MigrationScripts/One_time_scripts.cs b/unittests/CommandLine/CommandLine.MariaDB/Running_MigrationScripts/One_time_scripts.cs index 7c1bd9b5..9f31133b 100644 --- a/unittests/CommandLine/CommandLine.MariaDB/Running_MigrationScripts/One_time_scripts.cs +++ b/unittests/CommandLine/CommandLine.MariaDB/Running_MigrationScripts/One_time_scripts.cs @@ -20,7 +20,7 @@ public override async Task Fails_if_changed_between_runs() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) diff --git a/unittests/CommandLine/CommandLine.Oracle/Running_MigrationScripts/One_time_scripts.cs b/unittests/CommandLine/CommandLine.Oracle/Running_MigrationScripts/One_time_scripts.cs index ef57d4f7..137f5af3 100644 --- a/unittests/CommandLine/CommandLine.Oracle/Running_MigrationScripts/One_time_scripts.cs +++ b/unittests/CommandLine/CommandLine.Oracle/Running_MigrationScripts/One_time_scripts.cs @@ -22,7 +22,7 @@ public override async Task Fails_if_changed_between_runs() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) diff --git a/unittests/CommandLine/CommandLine.PostgreSQL/Running_MigrationScripts/One_time_scripts.cs b/unittests/CommandLine/CommandLine.PostgreSQL/Running_MigrationScripts/One_time_scripts.cs index 0145d2c8..fadb8612 100644 --- a/unittests/CommandLine/CommandLine.PostgreSQL/Running_MigrationScripts/One_time_scripts.cs +++ b/unittests/CommandLine/CommandLine.PostgreSQL/Running_MigrationScripts/One_time_scripts.cs @@ -19,7 +19,7 @@ public override async Task Fails_if_changed_between_runs() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) diff --git a/unittests/CommandLine/CommandLine.SqlServer/Running_MigrationScripts/One_time_scripts.cs b/unittests/CommandLine/CommandLine.SqlServer/Running_MigrationScripts/One_time_scripts.cs index 10911624..f221817c 100644 --- a/unittests/CommandLine/CommandLine.SqlServer/Running_MigrationScripts/One_time_scripts.cs +++ b/unittests/CommandLine/CommandLine.SqlServer/Running_MigrationScripts/One_time_scripts.cs @@ -19,7 +19,7 @@ public override async Task Fails_if_changed_between_runs() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) diff --git a/unittests/CommandLine/CommandLine.Sqlite/Running_MigrationScripts/One_time_scripts.cs b/unittests/CommandLine/CommandLine.Sqlite/Running_MigrationScripts/One_time_scripts.cs index 341ace1a..808987ef 100644 --- a/unittests/CommandLine/CommandLine.Sqlite/Running_MigrationScripts/One_time_scripts.cs +++ b/unittests/CommandLine/CommandLine.Sqlite/Running_MigrationScripts/One_time_scripts.cs @@ -19,7 +19,7 @@ public override async Task Fails_if_changed_between_runs() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) diff --git a/unittests/PostgreSQL/Running_MigrationScripts/Everytime_scripts.cs b/unittests/PostgreSQL/Running_MigrationScripts/Everytime_scripts.cs index 38387203..e871c645 100644 --- a/unittests/PostgreSQL/Running_MigrationScripts/Everytime_scripts.cs +++ b/unittests/PostgreSQL/Running_MigrationScripts/Everytime_scripts.cs @@ -18,7 +18,7 @@ public async Task Create_index_concurrently_works() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; WriteSql(parent, knownFolders[Up]!.Path, "create_table_dummy.sql", @" CREATE TABLE public.table1( diff --git a/unittests/SqlServer/Basic_tests/TokenReplacerTests.cs b/unittests/SqlServer/Basic_tests/TokenReplacerTests.cs index cb470a1d..9f650bdd 100644 --- a/unittests/SqlServer/Basic_tests/TokenReplacerTests.cs +++ b/unittests/SqlServer/Basic_tests/TokenReplacerTests.cs @@ -13,7 +13,7 @@ public void EnsureDbMakesItToTokens() var config = new GrateConfiguration() { ConnectionString = "Server=(LocalDb)\\mssqllocaldb;Database=TestDb;", - Folders = FoldersConfiguration.Default(null) + Folders = Folders.Default }; diff --git a/unittests/SqlServer/Running_MigrationScripts/RestoreDatabase.cs b/unittests/SqlServer/Running_MigrationScripts/RestoreDatabase.cs index 6a0d63ff..e0747bcb 100644 --- a/unittests/SqlServer/Running_MigrationScripts/RestoreDatabase.cs +++ b/unittests/SqlServer/Running_MigrationScripts/RestoreDatabase.cs @@ -33,7 +33,7 @@ public async Task Ensure_database_gets_restored() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[KnownFolderKeys.Sprocs]); var restoreConfig = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) diff --git a/unittests/SqlServerCaseSensitive/Running_MigrationScripts/RestoreDatabase.cs b/unittests/SqlServerCaseSensitive/Running_MigrationScripts/RestoreDatabase.cs index be0f9314..b3c9402d 100644 --- a/unittests/SqlServerCaseSensitive/Running_MigrationScripts/RestoreDatabase.cs +++ b/unittests/SqlServerCaseSensitive/Running_MigrationScripts/RestoreDatabase.cs @@ -31,7 +31,7 @@ public async Task Ensure_database_gets_restored() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[KnownFolderKeys.Sprocs]); var restoreConfig = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) diff --git a/unittests/TestCommon/Generic/GenericDatabase.cs b/unittests/TestCommon/Generic/GenericDatabase.cs index 50438c88..4235aef4 100644 --- a/unittests/TestCommon/Generic/GenericDatabase.cs +++ b/unittests/TestCommon/Generic/GenericDatabase.cs @@ -241,7 +241,7 @@ private GrateConfiguration GetConfiguration(bool createDatabase, string? connect CreateDatabase = createDatabase, ConnectionString = connectionString, AdminConnectionString = adminConnectionString, - Folders = FoldersConfiguration.Default(null), + Folders = Folders.Default, NonInteractive = true, SqlFilesDirectory = parent }; diff --git a/unittests/TestCommon/Generic/GenericMigrationTables.cs b/unittests/TestCommon/Generic/GenericMigrationTables.cs index aa7e2e76..1909d36b 100644 --- a/unittests/TestCommon/Generic/GenericMigrationTables.cs +++ b/unittests/TestCommon/Generic/GenericMigrationTables.cs @@ -28,7 +28,7 @@ public async Task Is_created_if_it_does_not_exist(string tableName) var fullTableName = Context.Syntax.TableWithSchema("grate", tableName); var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) .WithConnectionString(Context.ConnectionString(db)) @@ -61,7 +61,7 @@ public async Task Is_created_even_if_scripts_fail(string tableName) var fullTableName = Context.Syntax.TableWithSchema("grate", tableName); var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateInvalidSql(parent, knownFolders[KnownFolderKeys.Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -103,7 +103,7 @@ public async Task Migration_does_not_fail_if_table_already_exists() var db = "MonoBonoJono"; var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) .WithConnectionString(Context.ConnectionString(db)) @@ -219,7 +219,7 @@ public async Task Inserts_version_in_version_table() var db = "BooYaTribe"; var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) .WithConnectionString(Context.ConnectionString(db)) diff --git a/unittests/TestCommon/Generic/Running_MigrationScripts/Anytime_scripts.cs b/unittests/TestCommon/Generic/Running_MigrationScripts/Anytime_scripts.cs index 184844fc..f101d395 100644 --- a/unittests/TestCommon/Generic/Running_MigrationScripts/Anytime_scripts.cs +++ b/unittests/TestCommon/Generic/Running_MigrationScripts/Anytime_scripts.cs @@ -25,7 +25,7 @@ public async Task Are_not_run_more_than_once_when_unchanged() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Sprocs]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -60,7 +60,7 @@ public async Task Are_run_again_if_changed_between_runs() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Sprocs]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -106,7 +106,7 @@ public async Task Do_not_have_text_logged_if_flag_set() IGrateMigrator? migrator; var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Sprocs]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -140,7 +140,7 @@ public async Task Do_have_text_logged_by_default() IGrateMigrator? migrator; var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Sprocs]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -173,7 +173,7 @@ public async Task Are_run_more_than_once_when_unchanged_but_flag_set() IGrateMigrator? migrator; var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Sprocs]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) diff --git a/unittests/TestCommon/Generic/Running_MigrationScripts/DropDatabase.cs b/unittests/TestCommon/Generic/Running_MigrationScripts/DropDatabase.cs index dee7d84c..d69275db 100644 --- a/unittests/TestCommon/Generic/Running_MigrationScripts/DropDatabase.cs +++ b/unittests/TestCommon/Generic/Running_MigrationScripts/DropDatabase.cs @@ -20,7 +20,7 @@ public async Task Ensure_database_gets_dropped() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Sprocs]); var dropConfig = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) diff --git a/unittests/TestCommon/Generic/Running_MigrationScripts/Environment_scripts.cs b/unittests/TestCommon/Generic/Running_MigrationScripts/Environment_scripts.cs index f921168e..ba781e8f 100644 --- a/unittests/TestCommon/Generic/Running_MigrationScripts/Environment_scripts.cs +++ b/unittests/TestCommon/Generic/Running_MigrationScripts/Environment_scripts.cs @@ -22,7 +22,7 @@ public async Task Are_not_run_if_not_in_environment() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up], "1_.OTHER.filename.ENV.sql"); @@ -55,7 +55,7 @@ public async Task Are_not_run_by_default() //Bug #101 var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up], "1_.OTHER.filename.ENV.sql"); @@ -87,7 +87,7 @@ public async Task Are_run_if_in_environment() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up], "1_.TEST.filename.ENV.sql"); CreateDummySql(parent, knownFolders[Up], "2_.TEST.ENV.otherfilename.sql"); @@ -121,7 +121,7 @@ public async Task Non_environment_scripts_are_always_run() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up], "1_.filename.sql"); CreateDummySql(parent, knownFolders[Up], "2_.TEST.ENV.otherfilename.sql"); diff --git a/unittests/TestCommon/Generic/Running_MigrationScripts/Everytime_scripts.cs b/unittests/TestCommon/Generic/Running_MigrationScripts/Everytime_scripts.cs index 25b21517..fabce6f8 100644 --- a/unittests/TestCommon/Generic/Running_MigrationScripts/Everytime_scripts.cs +++ b/unittests/TestCommon/Generic/Running_MigrationScripts/Everytime_scripts.cs @@ -22,7 +22,7 @@ public async Task Are_run_every_time_even_when_unchanged() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Permissions]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -50,7 +50,7 @@ public async Task Are_not_run_in_dryrun() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Permissions]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -89,7 +89,7 @@ public async Task Are_recognized_by_script_name() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var folder = knownFolders[Up];// not an everytime folder @@ -126,7 +126,7 @@ public async Task Are_not_run_in_baseline() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) .WithConnectionString(Context.ConnectionString(db)) diff --git a/unittests/TestCommon/Generic/Running_MigrationScripts/Failing_Scripts.cs b/unittests/TestCommon/Generic/Running_MigrationScripts/Failing_Scripts.cs index ae94a3c3..aa4690d3 100644 --- a/unittests/TestCommon/Generic/Running_MigrationScripts/Failing_Scripts.cs +++ b/unittests/TestCommon/Generic/Running_MigrationScripts/Failing_Scripts.cs @@ -31,7 +31,7 @@ public virtual async Task Aborts_the_run_giving_an_error_message() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = global::grate.Configuration.Folders.Default; CreateInvalidSql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -112,7 +112,7 @@ public async Task Inserts_Failed_Scripts_Into_ScriptRunErrors_Table() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = global::grate.Configuration.Folders.Default; CreateInvalidSql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -150,7 +150,7 @@ public async Task Inserts_RepositoryPath_Into_ScriptRunErrors_Table() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = global::grate.Configuration.Folders.Default; CreateInvalidSql(parent, knownFolders[Up]); var repositoryPath = "https://github.com/blah/blah.git"; @@ -192,7 +192,7 @@ public async Task Inserts_Large_Failed_Scripts_Into_ScriptRunErrors_Table() var db = TestConfig.RandomDatabase(); var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = global::grate.Configuration.Folders.Default; CreateLongInvalidSql(parent, knownFolders[Up]); @@ -234,7 +234,7 @@ public async Task Ensure_Command_Timeout_Fires() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = global::grate.Configuration.Folders.Default; var path = MakeSurePathExists(parent, knownFolders[Up]); WriteSql(path, "goodnight.sql", sql); @@ -269,7 +269,7 @@ public async Task Ensure_AdminCommand_Timeout_Fires() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = global::grate.Configuration.Folders.Default; var path = MakeSurePathExists(parent, knownFolders[AlterDatabase]); //so it's run on the admin connection WriteSql(path, "goodnight.sql", sql); @@ -323,7 +323,7 @@ public async Task Create_a_version_in_error_if_ran_without_transaction() IGrateMigrator? migrator; var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = global::grate.Configuration.Folders.Default; CreateInvalidSql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -412,7 +412,7 @@ protected void CreateLongInvalidSql(DirectoryInfo root, MigrationsFolder? folder } //private static readonly DirectoryInfo Root = TestConfig.CreateRandomTempDirectory(); - private static readonly IFoldersConfiguration Folders = FoldersConfiguration.Default(null); + private static readonly IFoldersConfiguration Folders = global::grate.Configuration.Folders.Default; public static TheoryData ShouldStillBeRunOnRollback() => new() diff --git a/unittests/TestCommon/Generic/Running_MigrationScripts/One_time_scripts.cs b/unittests/TestCommon/Generic/Running_MigrationScripts/One_time_scripts.cs index aca0111a..d3114db6 100644 --- a/unittests/TestCommon/Generic/Running_MigrationScripts/One_time_scripts.cs +++ b/unittests/TestCommon/Generic/Running_MigrationScripts/One_time_scripts.cs @@ -23,7 +23,7 @@ public async Task Are_not_run_more_than_once_when_unchanged() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -58,7 +58,7 @@ public virtual async Task Fails_if_changed_between_runs() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -101,7 +101,7 @@ public async Task Runs_and_warns_if_changed_between_runs_and_flag_set() IGrateMigrator? migrator; var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -145,7 +145,7 @@ public async Task Ignores_and_warns_if_changed_between_runs_and_flag_set() IGrateMigrator? migrator; var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var path = new DirectoryInfo(Path.Combine(parent.ToString(), knownFolders[Up]?.Path ?? throw new Exception("Config Fail"))); WriteSql(path, "token.sql", CreateView1); diff --git a/unittests/TestCommon/Generic/Running_MigrationScripts/Order_Of_Scripts.cs b/unittests/TestCommon/Generic/Running_MigrationScripts/Order_Of_Scripts.cs index 6b40a099..8bbba675 100644 --- a/unittests/TestCommon/Generic/Running_MigrationScripts/Order_Of_Scripts.cs +++ b/unittests/TestCommon/Generic/Running_MigrationScripts/Order_Of_Scripts.cs @@ -75,7 +75,7 @@ private IGrateMigrator GetMigrator(string databaseName, bool createDatabase) { CreateDatabase = createDatabase, ConnectionString = Context.ConnectionString(databaseName), - Folders = FoldersConfiguration.Default(null), + Folders = Folders.Default, SqlFilesDirectory = scriptsDir }; diff --git a/unittests/TestCommon/Generic/Running_MigrationScripts/ScriptsRun_Table.cs b/unittests/TestCommon/Generic/Running_MigrationScripts/ScriptsRun_Table.cs index cc8b466a..bc8bbd21 100644 --- a/unittests/TestCommon/Generic/Running_MigrationScripts/ScriptsRun_Table.cs +++ b/unittests/TestCommon/Generic/Running_MigrationScripts/ScriptsRun_Table.cs @@ -20,7 +20,7 @@ public async Task Includes_the_folder_name_in_the_script_name_if_subfolders() var db = TestConfig.RandomDatabase(); var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var folder = new DirectoryInfo(Path.Combine(parent.ToString(), knownFolders[Up]!.Path, "sub", "folder", "long", "way")); @@ -57,7 +57,7 @@ public async Task Does_not_include_the_folder_name_in_the_script_name_if_no_subf var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; string filename = "any_filename.sql"; @@ -96,7 +96,7 @@ public async Task Does_not_overwrite_scripts_from_different_folders_with_last_co var db = TestConfig.RandomDatabase(); var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; string filename = "any_filename.sql"; var folder1 = new DirectoryInfo(Path.Combine(parent.ToString(), knownFolders[Up]!.Path, "dub", "folder", "long", "way")); @@ -145,7 +145,7 @@ public async Task Can_handle_large_scripts() var db = TestConfig.RandomDatabase(); var parent = TestConfig.CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var folder = new DirectoryInfo(Path.Combine(parent.ToString(), knownFolders[Up]!.Path)); diff --git a/unittests/TestCommon/Generic/Running_MigrationScripts/TokenScripts.cs b/unittests/TestCommon/Generic/Running_MigrationScripts/TokenScripts.cs index 9ee34b72..520a2e92 100644 --- a/unittests/TestCommon/Generic/Running_MigrationScripts/TokenScripts.cs +++ b/unittests/TestCommon/Generic/Running_MigrationScripts/TokenScripts.cs @@ -23,7 +23,7 @@ public async Task Tokens_are_replaced() var db = TestConfig.RandomDatabase().ToUpper(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var path = new DirectoryInfo(Path.Combine(parent.ToString(), knownFolders[Views]?.Path ?? throw new Exception("Config Fail"))); WriteSql(path, "token.sql", CreateDatabaseName); @@ -52,7 +52,7 @@ public async Task User_tokens_are_replaced() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; var path = new DirectoryInfo(Path.Combine(parent.ToString(), knownFolders[Views]?.Path ?? throw new Exception("Config Fail"))); WriteSql(path, "token.sql", CreateViewMyCustomToken); diff --git a/unittests/TestCommon/Generic/Running_MigrationScripts/Versioning_The_Database.cs b/unittests/TestCommon/Generic/Running_MigrationScripts/Versioning_The_Database.cs index 36dc7aff..bb98121a 100644 --- a/unittests/TestCommon/Generic/Running_MigrationScripts/Versioning_The_Database.cs +++ b/unittests/TestCommon/Generic/Running_MigrationScripts/Versioning_The_Database.cs @@ -24,7 +24,7 @@ public async Task Returns_the_new_version_id() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Sprocs]); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration) @@ -58,7 +58,7 @@ public async Task Does_not_create_versions_on_DryRun() var db = TestConfig.RandomDatabase(); var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Sprocs]); // make sure there's something that could be logged... @@ -83,7 +83,7 @@ public async Task Creates_a_new_version_with_status_InProgress() var dbVersion = "1.2.3.4"; var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up]); long newVersionId = 0; @@ -122,7 +122,7 @@ public async Task Includes_RepositoryPath_in_version_table() var dbVersion = "1.2.3.4"; var parent = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(parent, knownFolders[Up]); var repositoryPath = "any repository path"; @@ -181,7 +181,7 @@ public async Task Does_not_create_versions_when_no_script_changed() { //for bug #388 - no script change, should not create new version entry var sqlFolder = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(sqlFolder, knownFolders[Up]); var originalVersion = "1.0.0.0-alpha"; @@ -224,7 +224,7 @@ public async Task Does_not_create_versions_when_no_script_changed() public async Task Should_set_the_version_table_to_new_version_value_when_migrating() { var sqlFolder = CreateRandomTempDirectory(); - var knownFolders = FoldersConfiguration.Default(null); + var knownFolders = Folders.Default; CreateDummySql(sqlFolder, knownFolders[Up], "1_up.sql"); var config = GrateConfigurationBuilder.Create(Context.DefaultConfiguration)