public async Task Exchange_When_ExpectedDkk() { // Arrange var sut = new ExchangeService(_currencyRatesRepositoryTestDouble.Object); const double expected = 1000.01; // Act var actual = await sut.Exchange(133.98, "eur", "dkk"); // Assert Assert.AreEqual(expected, actual.Amount); }
public void Exchange_currency_then_return_assign_currency_and_correct_amount() { //Given IExchangeService exchange = new ExchangeService(); var tenFranc = FakeDataBuilder.MakeFranc(10); exchange.AddRate("CHF", "USD", 2); //When ICurrencyExpression result = exchange.Exchange(tenFranc, "USD"); //Then Assert.Equal(FakeDataBuilder.MakeDollar(5), result); }
public void Not_setting_Rate_Then_Exchange_then_throw_exception() { //Given IExchangeService exchange = new ExchangeService(); var tenFranc = FakeDataBuilder.MakeFranc(10); //When ArgumentNullException exception = Assert.Throws <ArgumentNullException>(() => exchange.Exchange(tenFranc, "USD")); //Then Assert.Contains("Before Exchange must be setting Exchange rates", exception.Message); }
public void Invalid_params_to_Exchange_then_throw_exception() { //Given IExchangeService exchange = new ExchangeService(); //When ArgumentNullException exception = Assert.Throws <ArgumentNullException>(() => exchange.Exchange(FakeDataBuilder.MakeDollar(1), null)); //Then Assert.Contains("Exchange must assign Currency", exception.Message); ArgumentNullException sourceException = Assert .Throws <ArgumentNullException>(() => exchange.Exchange(null, "USD")); Assert.Contains("Exchange must be have Money", sourceException.Message); }