public void When_ChargeMoney_Then_ShouldReturn_ExpectedValue(decimal input1, decimal input2, decimal expected) { var balance = new Balance(); balance.ChargeMoney(new Money(input1, new Currency())); balance.ChargeMoney(new Money(input2, new Currency())); balance.Amount.ShouldBe(expected); }
public void Charge_money_will_deduct_from_currency_amount() { var chargeMoney = new Money(_currencyInPeso, 200M); balance.ChargeMoney(chargeMoney); moneyInBalance = balance.GetAllMoney(); var moneyInPeso = moneyInBalance.FirstOrDefault(c => c.Currency == _currencyInPeso).Amount; Assert.IsNotNull(moneyInBalance); Assert.AreEqual(800M, moneyInPeso); }
public IHttpActionResult SendMoneyToOthers(Money money, string toUsername, string fromUsername) { //initialize Currency usd = new Currency("USD", (decimal)1.0); Currency eur = new Currency("EUR", (decimal)1.5); Currency php = new Currency("PHP", (decimal)0.02); _currencyRepository.Save(usd); _currencyRepository.Save(eur); _currencyRepository.Save(php); // sender initialize Balance myBalance = new Balance(); myBalance.AddMoney(new Money(usd, 20)); myBalance.AddMoney(new Money(eur, 100)); // recipient initialize Balance toBalance = new Balance(); toBalance.AddMoney(new Money(usd, 0)); toBalance.AddMoney(new Money(eur, 0)); //Send Money myBalance.ChargeMoney(money); //the input parameter toBalance.AddMoney(money); _userRepository.Save(new User(fromUsername, myBalance)); _userRepository.Save(new User(toUsername, toBalance)); return(Ok()); }
public void ChargeMoney_Should_Be_Deducted_To_Balance() { Balance balance = new Balance(); balance.AddMoney(_500Php); balance.ChargeMoney(_150Php); var monies = balance.GetAllMonies(); var newPhpBalance = monies.Find(c => c.Currency == _php); newPhpBalance.Amount.Should().Be(350); }
public void ValidateMoney_Should_Block_Transaction_If_Money_Not_Exist() { Balance balance = new Balance(); try { balance.ChargeMoney(_200Usd); } catch (Exception e) { e.Message.Should().Be("Currency does not exist!"); } }
public void ValidateMoney_Should_Block_Transaction_If_No_Enough_Money() { Balance balance = new Balance(); balance.AddMoney(_150Php); try { balance.ChargeMoney(_500Php); } catch (Exception e) { e.Message.Should().Be("Insufficient amount in balance!"); } }