public void TestProcessNextTransactionShouldReturnRightResult() { var loggerMock = new Mock <ICalcFeesLogger>(); var transactionsReaderMock = new Mock <ITransactionsReader>(); var transactionsWriterMock = new Mock <ITransactionsWriter>(); TransactionObject transactionObject = null; transactionsReaderMock.Setup(method => method.ReadNextTransaction()).Returns(transactionObject); var transactionsProcessor = new TransactionsProcessorChild(loggerMock.Object, transactionsReaderMock.Object, transactionsWriterMock.Object); var processTransactionsResult = transactionsProcessor.ProcessNextTransaction(); processTransactionsResult.ShouldBe(false); transactionsWriterMock.Verify(method => method.WriteNextTransaction(transactionObject), Times.Once); transactionObject = new TransactionObject() { TransactionDate = DateTime.MinValue, MerchantName = "test", TransactionAmount = 10, TransactionPercentageFee = 0 }; transactionsReaderMock.Setup(method => method.ReadNextTransaction()).Returns(transactionObject); transactionsWriterMock.Setup(method => method.WriteNextTransaction(transactionObject)).Returns(true); processTransactionsResult = transactionsProcessor.ProcessNextTransaction(); processTransactionsResult.ShouldBe(true); transactionsWriterMock.Verify(method => method.WriteNextTransaction(transactionObject), Times.Once); }
public void TestTransactionErrorCountExceededShouldReturnRightResult() { var loggerMock = new Mock <ICalcFeesLogger>(); var transactionsReaderMock = new Mock <ITransactionsReader>(); var transactionsWriterMock = new Mock <ITransactionsWriter>(); int errorCount = 10; var transactionsProcessor = new TransactionsProcessorChild(loggerMock.Object, transactionsReaderMock.Object, transactionsWriterMock.Object); var processTransactionsResult = transactionsProcessor.TransactionErrorCountExceeded(ref errorCount); processTransactionsResult.ShouldBe(false); transactionsReaderMock.Setup(method => method.HasError()).Returns(true); processTransactionsResult = transactionsProcessor.TransactionErrorCountExceeded(ref errorCount); processTransactionsResult.ShouldBe(true); transactionsReaderMock.Setup(method => method.HasError()).Returns(false); transactionsWriterMock.Setup(method => method.HasError()).Returns(true); processTransactionsResult = transactionsProcessor.TransactionErrorCountExceeded(ref errorCount); processTransactionsResult.ShouldBe(true); errorCount = 9; processTransactionsResult = transactionsProcessor.TransactionErrorCountExceeded(ref errorCount); processTransactionsResult.ShouldBe(false); }
public void TestTryOpenTransactionReaderShouldReturnRightResult() { var loggerMock = new Mock <ICalcFeesLogger>(); var transactionsReaderMock = new Mock <ITransactionsReader>(); var transactionsWriterMock = new Mock <ITransactionsWriter>(); var transactionsProcessor = new TransactionsProcessorChild(loggerMock.Object, transactionsReaderMock.Object, transactionsWriterMock.Object); var processTransactionsResult = transactionsProcessor.TryOpenTransactionReader(); processTransactionsResult.ShouldBe(false); transactionsReaderMock.Setup(method => method.Open()).Returns(true); processTransactionsResult = transactionsProcessor.TryOpenTransactionReader(); processTransactionsResult.ShouldBe(true); }