private FileProgressReporter CreateFileProgressReporter() { var fileSize = 4000000000L + _random.Next(1000000000, int.MaxValue); var fileProgressReporter = new FileProgressReporter { FileName = $@"C:\{_random.Next()}.txt", FileSize = fileSize }; Task.Run(() => { long transferred = 0; while (transferred < fileSize && !_canceled) { Thread.Sleep(100); if (_continue) { var increase = _random.Next(1000000, 10000000); transferred = transferred + increase >= fileSize ? fileSize : transferred + increase; Debug.WriteLine($"transferred: {transferred}"); fileProgressReporter.Report(transferred); } } }); fileProgressReporter.Start(); return(fileProgressReporter); }
private static FileProgressReporter CreateFileProgressReporter() { const long FILE_SIZE = 6312487123; var fileProgressReporter = new FileProgressReporter { FileName = "C:\\a.txt", FileSize = FILE_SIZE }; Task.Run(() => { long transferred = 0; var random = new Random(DateTime.Now.Millisecond); while (transferred < FILE_SIZE) { Thread.Sleep(100); var increase = random.Next(1000000, 10000000); transferred = transferred + increase >= FILE_SIZE ? FILE_SIZE : transferred + increase; Debug.WriteLine($"transferred: {transferred}"); fileProgressReporter.Report(transferred); } }); fileProgressReporter.Start(); return(fileProgressReporter); }
public void ReportProgressTest() { var fileContent = ""; var fileName = "./TestFiles/GeneratedSampleLong.txt"; var amount = 100000; for (long i = 0; i < amount; i++) { fileContent += i + "\n"; } File.WriteAllText(fileName, fileContent); var reporter = new FileProgressReporter(); var parser = new AsciiFileParser(); var resFile = parser.ParseFile( fileName, reporter ); Assert.AreEqual(amount, reporter.ReadLines); }