Exemple #1
0
        private void GenerateCsv(SqlTableSelect table)
        {
            _logger.Log("\t" + table.TableName);
            var select = _selectionFilteringStrategy.GetFilteredSelectStatement(table);
            var results =
                _queryExecutor.ExecuteSelectStatement(select);
            foreach (var column in table.ExcludedColumns)
            {
                results.Columns.Remove(column);
            }

            var csvOptions = new CsvOptions(DontCare, _delimiter, results.Columns.Count) {DateFormat = "g", Encoding = Encoding.UTF8};

            var filename = _destinationDirectory + table.TableName.ToLower() + ".csv";
            try
            {
                CsvEngine.DataTableToCsv(results, filename, csvOptions);
            }
            catch (UnauthorizedAccessException ex)
            {
                throw new nDumpApplicationException(
                    "nDump cannot access the CSV file at " + filename +
                    ". Is it checked out (TFS) or modifiable? This error may also occur if the file has been opened by another program.",
                    ex);
            }
        }
Exemple #2
0
 private void RunAllScriptFilesFor(SqlTableSelect table)
 {
     IEnumerator<SqlScript> scriptEnumerator = _sqlScriptFileStrategy.GetEnumeratorFor(table.TableName);
     while (scriptEnumerator.MoveNext())
     {
         var script = scriptEnumerator.Current;
         ExecuteScriptIfNotEmpty(script);
     }
 }
        public void ShouldExecuteQueryForEachFilterSelect()
        {
            var queryExecutor = new Mock<IQueryExecutor>();

            var filterStrategy = new UseFilterIfPresentStrategy(queryExecutor.Object, new NullLogger());
            var select1=new SqlTableSelect(null,"1",false);
            var select2 = new SqlTableSelect(null, "2", false);
            queryExecutor.Setup(q => q.ExecuteNonQueryStatement("1"));
            queryExecutor.Setup(q => q.ExecuteNonQueryStatement("2"));
            filterStrategy.SetupFilterTables(new List<SqlTableSelect>{select1,select2});
            queryExecutor.VerifyAll();
        }
        public void ShouldExecuteEachScriptFoundByStrategy()
        {
            var queryExecutor = new Mock<IQueryExecutor>();
            var scriptStrategy = new Mock<ISqlScriptFileStrategy>();

            var table1 = new SqlTableSelect("1");
            scriptStrategy.Setup(ss => ss.GetEnumeratorFor(table1.TableName)).Returns(new List<SqlScript>
                                                                                          {new SqlScript("01", "01")}.GetEnumerator());
            queryExecutor.Setup(qe => qe.ExecuteNonQueryStatement("01"));
            var sqlDataImporter = new SqlDataImporter(new NullLogger(), queryExecutor.Object, scriptStrategy.Object);

            sqlDataImporter.InsertDataIntoDesinationTables(new List<SqlTableSelect> { table1 });
            queryExecutor.VerifyAll();
            scriptStrategy.VerifyAll();
        }
        public void ShouldDeleteFromTablesInReverseOrder()
        {
            var queryExecutor= new Mock<IQueryExecutor>();

            var sqlDataImporter = new SqlDataImporter(new NullLogger(), queryExecutor.Object,null);

            var calls = new List<string>();
            var table1 = new SqlTableSelect("1");
            var table2=new SqlTableSelect("2");
            var delete2 = "delete from 2";
            queryExecutor.Setup(qe => qe.ExecuteNonQueryStatement(delete2)).Callback((string s)=> calls.Add(s));
            var delete1 = "delete from 1";
            queryExecutor.Setup(qe => qe.ExecuteNonQueryStatement(delete1)).Callback((string s) => calls.Add(s));
            sqlDataImporter.DeleteDataFromAllDestinationTables(new List<SqlTableSelect>{table1,table2});
            Assert.AreEqual(delete1,calls[1]);
            Assert.AreEqual(delete2,calls[0]);
        }
        public void ShouldContinueThenThrowTearDownExceptionWhenDeleteFails()
        {
            var queryExecutor = new Mock<IQueryExecutor>();

            var filterStrategy = new UseFilterIfPresentStrategy(queryExecutor.Object, new NullLogger());
            var select1 = new SqlTableSelect("1", null, false);
            var select2 = new SqlTableSelect("2", null, false);
            queryExecutor.Setup(q => q.ExecuteNonQueryStatement("drop table 1")).Throws(new Exception());
            queryExecutor.Setup(q => q.ExecuteNonQueryStatement("drop table 2"));
            try
            {
                filterStrategy.TearDownFilterTables(new List<SqlTableSelect> { select1, select2 });
                throw new AssertionException("ExpectedException was not thrown");
            }
            catch (TearDownException)
            {
                queryExecutor.VerifyAll();

            }
        }
 public string GetFilteredSelectStatement(SqlTableSelect table)
 {
     return !String.IsNullOrWhiteSpace(table.Select ) ? table.Select : "select * from " + table.TableName;
 }
 public string GetFilteredSelectStatement(SqlTableSelect table)
 {
     return "select * from " + table.TableName;
 }