示例#1
0
        public void TestToCSVConverter(bool prefixWithWorkbookName)
        {
            var loc = _fileLocations[TestFile];

            ExcelToCSVFilesConverter converter = new ExcelToCSVFilesConverter();

            converter.ExcelFilePattern       = loc.Name;
            converter.PrefixWithWorkbookName = prefixWithWorkbookName;

            var mockProjDir = Mock.Of <ILoadDirectory>(p => p.ForLoading == loc.Directory);

            var j = new ThrowImmediatelyDataLoadJob();

            j.LoadDirectory = mockProjDir;

            converter.Fetch(j, new GracefulCancellationToken());

            var file = prefixWithWorkbookName ?  loc.Directory.GetFiles("Book1_Sheet1.csv").Single(): loc.Directory.GetFiles("Sheet1.csv").Single();

            Assert.IsTrue(file.Exists);

            var contents = File.ReadAllText(file.FullName);

            Assert.AreEqual(
                @"Participant,Score,IsEvil,DateField,DoubleField,MixedField
Bob,3,yes,2001-01-01,0.1,10:30:00
Frank,1.1,no,2001-01-01 10:30:00,0.51,11:30:00
Hank,2.1,no,2002-01-01 11:30:00,0.22,0.1
Shanker,2,yes,2003-01-01 01:30:00,0.10,0.51
Bobboy,2,maybe,2015-09-18,15:09:00,00:03:56", contents.Trim(new[] { ',', '\r', '\n', ' ', '\t' }));

            file.Delete();
        }
示例#2
0
        private void TestConversionFor(string targetFile, string fileExtensionToConvert, int expectedNumberOfSheets, LoadDirectory directory)
        {
            FileInfo f = new FileInfo(targetFile);

            try
            {
                Assert.IsTrue(f.Exists);
                Assert.IsTrue(f.Length > 100);

                ExcelToCSVFilesConverter converter = new ExcelToCSVFilesConverter();

                var job = new ThrowImmediatelyDataLoadJob(new ThrowImmediatelyDataLoadEventListener()
                {
                    ThrowOnWarning = true, WriteToConsole = true
                });
                job.LoadDirectory = directory;

                converter.ExcelFilePattern = fileExtensionToConvert;
                converter.Fetch(job, new GracefulCancellationToken());

                FileInfo[] filesCreated = directory.ForLoading.GetFiles("*.csv");

                Assert.AreEqual(expectedNumberOfSheets, filesCreated.Length);

                foreach (FileInfo fileCreated in filesCreated)
                {
                    Assert.IsTrue(Regex.IsMatch(fileCreated.Name, "Sheet[0-9].csv"));
                    Assert.GreaterOrEqual(fileCreated.Length, 100);
                    fileCreated.Delete();
                }
            }
            finally
            {
                f.Delete();
            }
        }