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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }