Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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());
        }
Пример #4
0
        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);
        }
Пример #5
0
        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!");
            }
        }
Пример #6
0
        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!");
            }
        }