public void TestConstructorShouldSetError()
        {
            var loggerMock = new Mock <ICalcFeesLogger>();
            var transactionStringReaderMock = new Mock <ITransactionStringReader>();

            var transactionsFileReader = new TransactionsTextFileReader(loggerMock.Object, transactionStringReaderMock.Object, "");

            transactionsFileReader.HasError().ShouldBe(true);

            transactionsFileReader = new TransactionsTextFileReader(loggerMock.Object, transactionStringReaderMock.Object, "Very1Long2File3Name4That5Should6Definitely7Not8Exist9On10Default11Path12.txt");
            transactionsFileReader.HasError().ShouldBe(true);
        }
        static void Main(string[] args)
        {
            _logger = new CalcFeesConsoleLogger();

            if (!ParseArguments(args))
            {
                return;
            }

            var fileReader = new TransactionsTextFileReader(_logger, new TransactionString3ColumnReader(_logger), _filePath);

            if (fileReader.HasError())
            {
                _logger.WriteLine("Could not initialise transactions file for reading - " + _filePath);
                return;
            }

            var processor = new TransactionsProcessor(_logger, fileReader, new TransactionsConsoleWriter(_logger, new TransactionString3ColumnWriter(_logger)));

            if (!processor.ProcessAllTransactions())
            {
                _logger.WriteLine("Could not process all transactions - " + _filePath);
            }
        }