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 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); }
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); }
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); }
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); }