public void TestPurchaseWithException() { var currenciesExchangeService = new Mock <ICurrenciesExchangeService>(); var transactionDbController = new Mock <ITransactionDbController>(); var validator = new Mock <IValidator <Transaction> >(); var exchange = new CurrencyExchange(1, 1, ""); var transaction = new Transaction() { UserId = 1, Amount = 100, CurrencyCode = "USD" }; validator.Setup(x => x.IsValid(It.IsAny <Transaction>())).Returns(false); currenciesExchangeService.Setup(x => x.GetExchange(It.IsAny <string>())).Returns(exchange); var sut = new CurrencyPurchaseService( currenciesExchangeService.Object, transactionDbController.Object, validator.Object ); Assert.Throws <NotAllowedAmountException>(() => sut.Purchase(transaction)); }
public void TestPurchase() { var currenciesExchangeService = new Mock <ICurrenciesExchangeService>(); var transactionDbController = new Mock <ITransactionDbController>(); var validator = new Mock <IValidator <Transaction> >(); var exchange = new CurrencyExchange(1, 1, ""); var transaction = new Transaction() { UserId = 1, Amount = 100, CurrencyCode = "USD" }; validator.Setup(x => x.IsValid(It.IsAny <Transaction>())).Returns(true); currenciesExchangeService.Setup(x => x.GetExchange(It.IsAny <string>())).Returns(exchange); var sut = new CurrencyPurchaseService( currenciesExchangeService.Object, transactionDbController.Object, validator.Object ); var result = sut.Purchase(transaction); Assert.AreSame(transaction, result); }