public void Execute_WithdrawDeposit_FromAccountUpdated()
        {
            var fromAccount = new Account()
            {
                Id      = Guid.NewGuid(),
                Balance = 1000m
            };

            var toAccount = new Account()
            {
                Id      = Guid.NewGuid(),
                Balance = 0m
            };

            var mock = MockingHelper.GetAccountRepositoryMock(
                new List <Account>()
            {
                fromAccount, toAccount
            });

            var transfer = new TransferMoney(mock.Object);

            transfer.Execute(fromAccount.Id, toAccount.Id, 100);

            mock.Verify(m => m.Update(It.Is <Account>(a =>
                                                      a.Id.Equals(fromAccount.Id) &&
                                                      a.Balance == 900m)),
                        Times.AtLeastOnce);
        }
        public void Withdraw_NotificationLowFunds_NotifyNotifyFundsLowEmailSentToUser()
        {
            var email = "*****@*****.**";

            var mock = MockingHelper.GetNotificationServiceMock(email);

            var account = new Account()
            {
                User = new User(mock.Object)
                {
                    Email = email
                },

                Balance = 500m
            };

            account.Withdraw(100m);

            mock.Verify(m => m.NotifyFundsLow(It.Is <string>(em => em.Equals(email))), Times.AtLeastOnce);
        }
        public void Deposit_ApproachingPayInLimit_NotifyApproachingPayInLimitEmailSentToUser()
        {
            var email = "*****@*****.**";

            var mock = MockingHelper.GetNotificationServiceMock(email);

            var account = new Account()
            {
                User = new User(mock.Object)
                {
                    Email = email
                },

                PaidIn = 3000m
            };

            account.Deposit(999m);

            mock.Verify(m => m.NotifyApproachingPayInLimit(It.Is <string>(em => em.Equals(email))), Times.AtLeastOnce);
        }
Beispiel #4
0
        public void Execute_Withdraw_FromAccountUpdated()
        {
            var account = new Account()
            {
                Id      = Guid.NewGuid(),
                Balance = 1000m
            };

            var mock = MockingHelper.GetAccountRepositoryMock(
                new List <Account>()
            {
                account
            });

            var withdraw = new WithdrawMoney(mock.Object);

            withdraw.Execute(account.Id, 100m);

            mock.Verify(m =>
                        m.Update(It.Is <Account>(a =>
                                                 a.Id.Equals(account.Id) &&
                                                 a.Balance == 900m)), Times.AtLeastOnce);
        }