public void ArrangeAndAct() { _folder = "vgn6to834nchgiyoewrngcyfueiwrgcnytr4"; _filePaths = new[] { "vngtyicnhyucikw", "ny6ft5874386ngdtyrugw22dfr", "bhj765ghyegft43" }; _filePathsProvider = A.Fake <IFilePathsProvider>(); A.CallTo(() => _filePathsProvider.GetFilePathsFromFolder(_folder)).Returns(_filePaths); _fileContentProvider = A.Fake <IFileContentProvider>(); _content1 = "n7g9865yn3879gchyruicgchu542"; A.CallTo(() => _fileContentProvider.GetDataFrom(_filePaths[0])).Returns(_content1); A.CallTo(() => _fileContentProvider.GetDataFrom(_filePaths[1])).Throws <Exception>(); _content3 = "vhy67538ongt87rw2nfgrycngfyr42"; A.CallTo(() => _fileContentProvider.GetDataFrom(_filePaths[2])).Returns(_content3); _dbFactory = A.Fake <IDbFactory>(); _db = A.Fake <IDb>(); A.CallTo(() => _dbFactory.Create()).Returns(_db); _out = new FilesProcessor(_filePathsProvider, _fileContentProvider, _dbFactory); //act _out.ProcessFilesFromFolder(_folder); }
public void ArrangeAndAct() { _folder = "jmop gvghfewlinwcvufbewyrqtctoiufbqywckieuwfqbcygyofqewiu"; _filePaths = new[] { "vngtyicnhyucikw", "ny6ft5874386ngdtyrugw22dfr", "bhj765ghyegft43" }; _filePathsProvider = new Mock <IFilePathsProvider>(); _filePathsProvider.Setup(x => x.GetFilePathsFromFolder(_folder)).Returns(_filePaths); _fileContentProvider = new Mock <IFileContentProvider>(); _content1 = "n7g9865yn3879gchyruicgchu542"; _fileContentProvider.Setup(x => x.GetDataFrom(_filePaths[0])).Returns(_content1); _fileContentProvider.Setup(x => x.GetDataFrom(_filePaths[1])).Throws <Exception>(); _content3 = "vhy67538ongt87rw2nfgrycngfyr42"; _fileContentProvider.Setup(x => x.GetDataFrom(_filePaths[2])).Returns(_content3); _dbFactory = new Mock <IDbFactory>(); _db = new Mock <IDb>(); _dbFactory.Setup(x => x.Create()).Returns(_db.Object); _out = new FilesProcessor(_filePathsProvider.Object, _fileContentProvider.Object, _dbFactory.Object); //act _out.ProcessFilesFromFolder(_folder); }
public void Stop() { var fileIsProcessed = false; var txtFileType = A.Fake <IFileType>(); A.CallTo(() => txtFileType.Extension).Returns(".txt"); A.CallTo(() => txtFileType.GetResult(A <string> .Ignored)) .Invokes(() => { fileIsProcessed = true; }) .Returns(new string[0]); var resultFile = Path.Combine(Environment.CurrentDirectory, "Result.txt"); if (File.Exists(resultFile)) { File.Delete(resultFile); } var directory = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); Directory.CreateDirectory(directory); try { var filesProcessor = new FilesProcessor(new[] { txtFileType }); filesProcessor.Run(directory); Thread.Sleep(500); // Чтобы успел запуститься. filesProcessor.Stop(); File.WriteAllBytes(Path.Combine(directory, "File1.txt"), new byte[0]); File.WriteAllBytes(Path.Combine(directory, "File2.txt"), new byte[0]); Thread.Sleep(500); // Чтобы успел обработать, если что. } finally { Directory.Delete(directory, true); } // Файлы не должны были обрабатываться, так как появлялись после остановки. Assert.False(fileIsProcessed); Assert.False(File.Exists(resultFile)); }
public void Process() { string processedEmptyFile = null; string processedTxtFile = null; const string emptyFileName = "File"; const string txtFileName = "File.txt"; const string emptyFileTypeResult = "EmptyFileTypeResult"; const string txtFileTypeResult = "TxtFileTypeResult"; var resultFile = Path.Combine(Environment.CurrentDirectory, "Result.txt"); var directory = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); Directory.CreateDirectory(directory); try { File.WriteAllBytes(Path.Combine(directory, "OldFile"), new byte[0]); var emptyFileType = A.Fake <IFileType>(); A.CallTo(() => emptyFileType.Extension).Returns(null); A.CallTo(() => emptyFileType.GetResult(A <string> .Ignored)) .Invokes((string filePath) => { processedEmptyFile = filePath; }) .Returns(new[] { emptyFileTypeResult }); var txtFileType = A.Fake <IFileType>(); A.CallTo(() => txtFileType.Extension).Returns(".txt"); A.CallTo(() => txtFileType.GetResult(A <string> .Ignored)) .Invokes((string filePath) => { processedTxtFile = filePath; }) .Returns(new[] { txtFileTypeResult }); if (File.Exists(resultFile)) { File.Delete(resultFile); } using (var filesProcessor = new FilesProcessor(new[] { emptyFileType, txtFileType })) { filesProcessor.Run(directory); Thread.Sleep(500); // Чтобы успел запуститься. File.WriteAllBytes(Path.Combine(directory, txtFileName), new byte[0]); File.WriteAllBytes(Path.Combine(directory, emptyFileName), new byte[0]); Thread.Sleep(500); // Чтобы успел обработать. } } finally { Directory.Delete(directory, true); } Assert.True(File.Exists(resultFile)); var resultLines = File.ReadAllLines(resultFile); Assert.Equal(2, resultLines.Length); Assert.Contains(emptyFileTypeResult, resultLines); Assert.Contains(txtFileTypeResult, resultLines); }