예제 #1
0
        public void DetermineColumnFormatFillGuessColumnFormatWriter()
        {
            var reader = new CsvFile
            {
                ID             = "Reader",
                FileName       = Path.Combine(m_ApplicationDirectory, "BasicCSV.txt"),
                HasFieldHeader = true
            };

            ApplicationSetting.ToolSetting.Input.Clear();
            ApplicationSetting.ToolSetting.Input.Add(reader);
            var mimic = new MimicSQLReader();

            mimic.AddSetting(reader);

            reader.FileFormat.FieldDelimiter = ",";
            var writer = new CsvFile
            {
                SqlStatement = reader.ID
            };

            ApplicationSetting.ToolSetting.Output.Clear();
            ApplicationSetting.ToolSetting.Output.Add(writer);

            // setting.TreatTextNullAsNull = true;
            ApplicationSetting.FillGuessSettings.IgnoreIdColums = false;
            using (var processDisplay = new DummyProcessDisplay())
            {
                writer.FillGuessColumnFormatWriter(true, processDisplay.CancellationToken);
                Assert.AreEqual(6, writer.Column.Count);
            }
        }
예제 #2
0
        public void FillGuessColumnFormatDateParts()
        {
            var setting = new CsvFile
            {
                FileName       = Path.Combine(m_ApplicationDirectory, "Sessions.txt"),
                HasFieldHeader = true,
                ByteOrderMark  = true
            };

            setting.FileFormat.FieldDelimiter = "\t";

            ApplicationSetting.FillGuessSettings.DateParts = true;
            using (var prc = new DummyProcessDisplay())
            {
                setting.FillGuessColumnFormatReader(false, prc);
            }

            ApplicationSetting.FillGuessSettings.DateParts = false;

            Assert.AreEqual("Start Date", setting.Column[0].Name, "Column 1 Start date");
            Assert.AreEqual("Start Time", setting.Column[1].Name, "Column 2 Start Time");
            Assert.AreEqual("Start Time", setting.Column[0].TimePart, "TimePart is Start Time");
            Assert.AreEqual(DataType.DateTime, setting.Column[0].DataType);
            Assert.AreEqual("MM/dd/yyyy", setting.Column[0].DateFormat);
            Assert.AreEqual("HH:mm:ss", setting.Column[1].DateFormat);
        }
예제 #3
0
 public void DummyProcessDisplayTest()
 {
     using (var dpd = new DummyProcessDisplay())
     {
         dpd.SetProcess("Test");
     }
 }
예제 #4
0
        public void DetermineColumnFormatGetSampleValues2()
        {
            using (var dt = new DataTable())
            {
                dt.Columns.Add(new DataColumn
                {
                    ColumnName = "ID",
                    DataType   = typeof(string)
                });
                for (var i = 0; i < 150; i++)
                {
                    var row = dt.NewRow();
                    if (i == 10 || i == 47)
                    {
                        row[0] = "NULL";
                    }
                    row[0] = (i / 3).ToString(CultureInfo.InvariantCulture);
                    dt.Rows.Add(row);
                }

                using (var processDisplay = new DummyProcessDisplay())
                {
                    var res = DetermineColumnFormat.GetSampleValues(dt, 0, 20, string.Empty, processDisplay.CancellationToken);
                    Assert.AreEqual(20, res.Count());
                }
            }
        }
예제 #5
0
        public void FillGuessColumnFormatGermanDateAndNumbers()
        {
            var setting = new CsvFile
            {
                FileName       = Path.Combine(m_ApplicationDirectory, "DateAndNumber.csv"),
                HasFieldHeader = true
            };

            setting.FileFormat.FieldQualifier = "Quote";
            setting.CodePageId = 1252;
            setting.FileFormat.FieldDelimiter = "TAB";
            // setting.TreatTextNullAsNull = true;
            using (var processDisplay = new DummyProcessDisplay())
            {
                setting.FillGuessColumnFormatReader(false, processDisplay);
            }

            Assert.IsNotNull(setting.GetColumn(@"Betrag Brutto (2 Nachkommastellen)"), "Data Type recognized");

            Assert.AreEqual(DataType.Numeric, setting.GetColumn(@"Betrag Brutto (2 Nachkommastellen)").DataType,
                            "Is Numeric");
            Assert.AreEqual(",", setting.GetColumn(@"Betrag Brutto (2 Nachkommastellen)").DecimalSeparator,
                            "Decimal Separator found");

            Assert.AreEqual(DataType.DateTime, setting.GetColumn(@"Erstelldatum Rechnung").DataType);
        }
예제 #6
0
 public void CancelTest()
 {
     using (var dpd = new DummyProcessDisplay())
     {
         dpd.Cancel();
         Assert.IsTrue(dpd.CancellationToken.IsCancellationRequested);
     }
 }
예제 #7
0
 public void SetProcessTest2()
 {
     using (var dpd = new DummyProcessDisplay())
     {
         dpd.Maximum = 5;
         dpd.SetProcess(null, new ProgressEventArgs("Hallo", 2));
     }
 }
예제 #8
0
 public void SetProcessTest1()
 {
     using (var dpd = new DummyProcessDisplay())
     {
         dpd.Maximum = 5;
         dpd.SetProcess("Test", 100);
     }
 }
예제 #9
0
        public void SetMaximum()
        {
            using (var dpd = new DummyProcessDisplay())
            {
                dpd.Maximum = 666;
                Assert.AreEqual(666, dpd.Maximum);

                dpd.Maximum = -1;
                Assert.AreEqual(-1, dpd.Maximum);
            }
        }
예제 #10
0
 public void DetermineColumnFormatGetSampleValues()
 {
     using (var dt = new DataTable())
     {
         using (var processDisplay = new DummyProcessDisplay())
         {
             var res = DetermineColumnFormat.GetSampleValues(dt, 0, 20, string.Empty, processDisplay.CancellationToken);
             Assert.AreEqual(0, res.Count());
         }
     }
 }
예제 #11
0
        public void NewCsvFileGuessAllTestEmpty()
        {
            var setting = new CsvFile
            {
                FileName = Path.Combine(m_ApplicationDirectory, "CSVTestEmpty.txt")
            };

            using (var display = new DummyProcessDisplay())
            {
                setting.RefreshCsvFile(display);
            }

            Assert.AreEqual(0, setting.SkipRows);
        }
예제 #12
0
        public void NewCsvFileGuessAllHeadings()
        {
            var setting = new CsvFile
            {
                FileName = Path.Combine(m_ApplicationDirectory, "BasicCSV.txt")
            };

            using (var display = new DummyProcessDisplay())
            {
                setting.RefreshCsvFile(display);
            }

            Assert.AreEqual(0, setting.SkipRows);
            Assert.AreEqual(",", setting.FileFormat.FieldDelimiter);
            Assert.AreEqual(1200, setting.CodePageId); //UTF16_LE
        }
예제 #13
0
        public void GetEmptyColumnHeaderTest()
        {
            var setting = new CsvFile();

            setting.FileFormat.FieldDelimiter = ",";
            setting.FileName       = Path.Combine(m_ApplicationDirectory, "EmptyColumns.txt");
            setting.HasFieldHeader = false;
            using (var disp = new DummyProcessDisplay())
            {
                Assert.IsTrue(CsvHelper.GetEmptyColumnHeader(setting, disp).IsEmpty());
                setting.HasFieldHeader = true;
                var res = CsvHelper.GetEmptyColumnHeader(setting, disp);

                Assert.IsFalse(res.IsEmpty());
                Assert.AreEqual("ID", res[0]);
            }
        }
예제 #14
0
        public void FillGuessColumnFormatTrailingColumns()
        {
            var setting = new CsvFile
            {
                FileName       = Path.Combine(m_ApplicationDirectory, "Test.csv"),
                HasFieldHeader = true,
                ByteOrderMark  = true
            };

            setting.FileFormat.FieldDelimiter = ",";
            setting.SkipRows = 1;
            using (var processDisplay = new DummyProcessDisplay())
            {
                setting.FillGuessColumnFormatReader(false, processDisplay);
            }
            Assert.AreEqual(DataType.DateTime, setting.Column[2].DataType, "column2");
            Assert.AreEqual(DataType.DateTime, setting.Column[3].DataType, "column3");
            Assert.AreEqual(DataType.DateTime, setting.Column[4].DataType, "column4");
        }
예제 #15
0
        public void FillGuessColumnFormatDoNotIgnoreID()
        {
            var setting = new CsvFile
            {
                FileName = Path.Combine(m_ApplicationDirectory, "BasicCSV.txt")
            };

            setting.FileFormat.FieldDelimiter = ",";
            setting.HasFieldHeader            = true;
            // setting.TreatTextNullAsNull = true;
            ApplicationSetting.FillGuessSettings.IgnoreIdColums = false;
            using (var processDisplay = new DummyProcessDisplay())
            {
                setting.FillGuessColumnFormatReader(false, processDisplay);
                Assert.AreEqual(DataType.Integer, setting.GetColumn("ID").DataType);
                Assert.AreEqual(DataType.DateTime, setting.GetColumn("ExamDate").DataType);
                Assert.AreEqual(DataType.Boolean, setting.GetColumn("IsNativeLang").DataType);
            }
        }
예제 #16
0
        public void FillGuessColumnFormatTextColumns()
        {
            var setting = new CsvFile
            {
                FileName       = Path.Combine(m_ApplicationDirectory, "Test.csv"),
                HasFieldHeader = true,
                ByteOrderMark  = true
            };

            setting.FileFormat.FieldDelimiter = ",";
            setting.SkipRows = 1;
            using (var processDisplay = new DummyProcessDisplay())
            {
                setting.FillGuessColumnFormatReader(true, processDisplay);
            }
            Assert.AreEqual(11, setting.Column.Count);
            Assert.AreEqual(DataType.DateTime, setting.Column[7].DataType);
            Assert.AreEqual(DataType.DateTime, setting.Column[8].DataType);
            Assert.AreEqual(DataType.DateTime, setting.Column[9].DataType);
            Assert.AreEqual(DataType.String, setting.Column[10].DataType);
        }
예제 #17
0
        public void PgpEncryptTest()
        {
            using (var pdt = new ProcessDisplayTime(CancellationToken.None))
            {
                using (var input = new MemoryStream(Encoding.UTF8.GetBytes("This is a test")))
                {
                    using (var output = new MemoryStream())
                    {
                        m_PGPKeyStorage.PgpEncrypt(input, output, m_PGPKeyStorage.GetRecipientList().First(), pdt);
                    }
                }
            }

            using (var pdt = new DummyProcessDisplay(CancellationToken.None))
            {
                using (var input = new MemoryStream(Encoding.UTF8.GetBytes("This is a test")))
                {
                    using (var output = new MemoryStream())
                    {
                        m_PGPKeyStorage.PgpEncrypt(input, output, m_PGPKeyStorage.GetRecipientList().First(), pdt);
                    }
                }
            }
        }