private List <string> TestExecuteDataMigrationScripts(string[] scriptsDescriptions, string expectedResult, bool skipScriptsWithWrongOrder = false) { using (var container = new RhetosTestContainer()) { var log = new List <string>(); container.AddLogMonitor(log); var sqlExecuter = container.Resolve <ISqlExecuter>(); sqlExecuter.ExecuteSql("DELETE FROM Rhetos.DataMigrationScript"); var sqlBatches = container.Resolve <SqlTransactionBatches>(); foreach (string scriptsDescription in scriptsDescriptions) { var scriptsProvider = new SimpleScriptsProvider(scriptsDescription); var configuration = new MockConfiguration { { "DataMigration.SkipScriptsWithWrongOrder", skipScriptsWithWrongOrder } }; var dataMigration = new DataMigration(sqlExecuter, container.Resolve <ILogProvider>(), scriptsProvider, configuration, sqlBatches); dataMigration.ExecuteDataMigrationScripts(); } var report = new List <string>(); sqlExecuter.ExecuteReader("SELECT Path, Active FROM Rhetos.DataMigrationScript ORDER BY OrderExecuted", reader => report.Add(reader.GetString(0).Replace(".sql", "") + (reader.GetBoolean(1) ? "" : "-"))); Assert.AreEqual(expectedResult, string.Join(", ", report)); return(log); } }
private List<string> TestExecuteDataMigrationScripts(string[] scriptsDescriptions, string expectedResult, bool skipScriptsWithWrongOrder = false) { using (var container = new RhetosTestContainer()) { var log = new List<string>(); container.AddLogMonitor(log); var sqlExecuter = container.Resolve<ISqlExecuter>(); sqlExecuter.ExecuteSql("DELETE FROM Rhetos.DataMigrationScript"); foreach (string scriptsDescription in scriptsDescriptions) { var scriptsProvider = new SimpleScriptsProvider(scriptsDescription); var configuration = new MockConfiguration(new Dictionary<string, object> { { "DataMigration.SkipScriptsWithWrongOrder", skipScriptsWithWrongOrder } }); var dataMigration = new DataMigration(sqlExecuter, container.Resolve<ILogProvider>(), scriptsProvider, configuration); dataMigration.ExecuteDataMigrationScripts(); } var report = new List<string>(); sqlExecuter.ExecuteReader("SELECT Path, Active FROM Rhetos.DataMigrationScript ORDER BY OrderExecuted", reader => report.Add(reader.GetString(0).Replace(".sql", "") + (reader.GetBoolean(1) ? "" : "-"))); Assert.AreEqual(expectedResult, string.Join(", ", report)); return log; } }