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 ShouldCallFileContentProviderAppropriateNumberOfTimes()
        {
            A.CallTo(() => _fileContentProvider.GetDataFrom(string.Empty)).WithAnyArguments().MustHaveHappened(3, Times.Exactly);

            A.CallTo(() => _fileContentProvider.GetDataFrom(_filePaths[0])).MustHaveHappened();
            A.CallTo(() => _fileContentProvider.GetDataFrom(_filePaths[1])).MustHaveHappened();
            A.CallTo(() => _fileContentProvider.GetDataFrom(_filePaths[2])).MustHaveHappened();
        }