コード例 #1
0
ファイル: DataMigrationTest.cs プロジェクト: oklancir/Rhetos
        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);
            }
        }
コード例 #2
0
ファイル: DataMigrationTest.cs プロジェクト: Rhetos/Rhetos
        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;
            }
        }