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);
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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);
        }