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 DataMigrationScripts(sqlExecuter, container.Resolve <ILogProvider>(), scriptsProvider, configuration, sqlBatches); dataMigration.Execute(); } 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); } }
public void Save(DataMigrationScripts dataMigrationScripts) => DataMigrationScripts = dataMigrationScripts;