Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
0
        public void After_AddRate_then_input_currency_get_Rate()
        {
            //Given
            string           fakeFranc  = "CHF";
            string           fakeDollar = "USD";
            int              fakeRate   = 2;
            IExchangeService exchange   = new ExchangeService();

            exchange.AddRate(fakeFranc, fakeDollar, fakeRate);
            //When
            int actual = exchange.Rate(fakeFranc, fakeDollar);

            //Then
            Assert.Equal(fakeRate, actual);
        }
Ejemplo n.º 3
0
        public void Invalid_paramsters_to_AddRate_then_throw_exception(
            string source,
            string to,
            int rate,
            string errorMessage
            )
        {
            //Given
            IExchangeService exchange = new ExchangeService();
            //When
            ArgumentException exception = Assert.Throws <ArgumentException>(
                () => exchange.AddRate(source, to, rate)
                );

            //Then
            Assert.Contains(errorMessage, exception.Message);
        }
        public void Sum_and_Times_N_and_ExchangeTo_then_return_correct_total()
        {
            //Given
            IExchangeService service = new ExchangeService();
            var tenBucks             = FakeDataBuilder.MakeDollar(10);
            var fiveBucks            = FakeDataBuilder.MakeDollar(5);

            service.AddRate("CHF", "USD", 2);
            //When
            ICurrencyExpression result = service
                                         .Sum(new Money[] { tenBucks, fiveBucks })
                                         .Times(2)
                                         .ExchangeTo("USD");

            //Then
            Assert.Equal(FakeDataBuilder.MakeDollar(30), result);
        }
        public void After_ExchangeTo_currency_then_clean_ExpressionList()
        {
            //Given
            IExchangeService exchange = new ExchangeService();
            var fiveBucks             = FakeDataBuilder.MakeDollar(5);
            var tenFranc = FakeDataBuilder.MakeFranc(10);

            exchange.AddRate("CHF", "USD", 2);
            //When
            ICurrencyExpression sameParamSum = exchange
                                               .Sum(new Money[] { fiveBucks, fiveBucks })
                                               .ExchangeTo("USD");
            int counts = exchange.ExpressionsList.Count();

            //Then
            Assert.Equal(0, counts);
        }
Ejemplo n.º 6
0
        public void Invalid_parameters_to_Rate_then_throw_exception(
            string source,
            string to,
            string errorMessage
            )
        {
            //Given
            IExchangeService service = new ExchangeService();

            service.AddRate("CHF", "USD", 2);
            //When
            ArgumentException exception = Assert.Throws <ArgumentException>(
                () => service.Rate(source, to)
                );

            //Then
            Assert.Contains(errorMessage, exception.Message);
        }
Ejemplo n.º 7
0
        public void AddRate_Then_RatesList_have_value()
        {
            //Given
            string           fakeFranc  = "CHF";
            string           fakeDollar = "USD";
            int              fakeRate   = 2;
            IExchangeService exchange   = new ExchangeService();

            exchange.AddRate(fakeFranc, fakeDollar, fakeRate);
            //When
            var  pair      = new Pair(fakeFranc, fakeDollar);
            bool pairExist = exchange.RatesList.ContainsKey(pair);
            int  rate      = (int)exchange.RatesList[pair];

            //Then
            Assert.True(pairExist);
            Assert.Equal(fakeRate, rate);
        }
        public void ExchangeTo_then_return_correct_currency()
        {
            //Given
            ExchangeService service = new ExchangeService();

            service.AddRate("CHF", "USD", 2);
            //When
            ICurrencyExpression result = service
                                         .Sum(
                new ICurrencyExpression[]
            {
                FakeDataBuilder.MakeDollar(5),
                FakeDataBuilder.MakeFranc(10)
            }).ExchangeTo("USD");

            //Then
            Assert.Equal(FakeDataBuilder.MakeDollar(10), result);
        }