Beispiel #1
0
        /* Performance test commented out because it is not a real test. */
        // [Test]
        public void CsvExportPerformance()
        {
            // 2.29 s with alpha 13's multiple events
            string    method = System.Reflection.MethodInfo.GetCurrentMethod().ToString();
            Worksheet ws     = Instance.Default.ActiveWorkbook.Worksheets.Add();

            ws.Cells[1, 1]   = "hello";
            ws.Cells[200, 5] = "world";
            CsvExporter        model = new CsvExporter();
            CsvExportViewModel vm    = new CsvExportViewModel(model);
            string             fn    = System.IO.Path.GetTempFileName();

            model.FileName = fn;
            bool running = true;
            long start   = 0;

            vm.ProcessFinishedMessage.Sent += (sender, args) =>
            {
                Console.WriteLine(method + ": *** Export completed ***");
                long stop = DateTime.Now.Ticks;
                Console.WriteLine(
                    String.Format("{0}: export took {1} seconds.",
                                  method,
                                  Math.Round((double)(stop - start) / TimeSpan.TicksPerSecond, 3)
                                  ));
                running = false;
            };
            Task waitTask = new Task(
                () =>
            {
                Console.WriteLine(method + ": *** Wait task started ***");
                while (running)
                {
                    ;
                }
            }
                );

            waitTask.Start();
            start       = DateTime.Now.Ticks;
            model.Range = ws.UsedRange;
            vm.StartProcess();
            waitTask.Wait(-1);
        }
Beispiel #2
0
        public void ExportLargeCsv()
        {
            Worksheet ws = Instance.Default.ActiveWorkbook.Worksheets.Add();

            ws.Cells[1, 1]        = "hello";
            ws.Cells[1000, 16384] = "world";
            CsvExporter        model = new CsvExporter();
            CsvExportViewModel vm    = new CsvExportViewModel(model);
            string             fn    = System.IO.Path.GetTempFileName();

            vm.FileName = fn;
            bool cancel = false;
            bool progressCompletedRaised = false;

            vm.ProcessFinishedMessage.Sent += (sender, args) =>
            {
                progressCompletedRaised = true;
            };
            vm.StartProcess();
            while (!progressCompletedRaised && !cancel)
            {
            }
            Timer t = new Timer((obj) => cancel = true, null, 15000, Timeout.Infinite);

            if (vm.IsProcessing)
            {
                vm.CancelProcess();
                Assert.Inconclusive("CSV export took too long, did not finish.");
                // Do not delete the file, leave it for inspection
            }
            else
            {
                Assert.IsTrue(progressCompletedRaised,
                              "ProgressCompleted event was not raised");
                System.IO.File.Delete(fn);
            }
        }