Esempio n. 1
0
        // GET: Accounts/Details/5
        public ActionResult Details(int id)
        {
            BankAccount bankAccount = _service.GetAccountById(id);

            if (bankAccount == null)
            {
                return(HttpNotFound());
            }

            return(View(BankAccountMapper.BankAccToDTO(bankAccount)));
        }
Esempio n. 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="BankAccountService"/> class by instance of factory of storage.
        /// </summary>
        /// <param name="bankAccountStorage">The storage.</param>
        /// <param name="bankAccountFactory">The factory of bank accounts.</param>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="bankAccountStorage"/> is null.
        /// <paramref name="bankAccountFactory"/> is null.
        /// </exception>
        public BankAccountService(IBankAccountStorage bankAccountStorage, BankAccountMapper bankAccountMapper)
        {
            if (bankAccountStorage is null)
            {
                throw new ArgumentNullException(nameof(bankAccountStorage));
            }

            if (bankAccountMapper is null)
            {
                throw new ArgumentNullException(nameof(bankAccountMapper));
            }

            this.bankAccountStorage = bankAccountStorage;
            this.bankAccountMapper  = bankAccountMapper;
            this.listBankAccounts   = this.bankAccountStorage.Load().Select(m => this.bankAccountMapper.ToBankAccount(m)).ToList();
        }
Esempio n. 3
0
        public OkObjectResult FetchAllDebitCards()
        {
            logger.LogInformation("Inside FetchAllDebitCards Method for Debit cards");

            var debitCards = dataContext.DebitCards.
                             Join(dataContext.BankAccounts,
                                  debitCard => debitCard.BankAccount.Id,
                                  bankAccount => bankAccount.Id,
                                  (debitCard, bankAccount) => new {
                debitCard.CardName,
                CardNumber  = debitCard.Id,
                BankAccount = BankAccountMapper.ToBankAccountDTOMap(bankAccount)
            })
                             .ToList();

            return(new OkObjectResult(debitCards));
        }
Esempio n. 4
0
        public void GetAccountByIdTest()
        {
            // Arrange
            var data = new[]
            {
                new BankAccountDTO(3, "Vlad", "Borovsky", 100.0m, 15, AccountType.Gold.ToString()),
                new BankAccountDTO(4, "Maw", "Flames", 260.0m, 10, AccountType.Platinum.ToString())
            };

            var mock = new Mock <IRepository>();

            mock.Setup(a => a.GetAll()).Returns(data);

            // Act
            var service = new AccountService(mock.Object);
            var acc     = service.GetAccountById(3);
            var result  = BankAccountMapper.BankAccToDTO(acc);

            string expectedAccountType = data[0].AccountType;
            string actualAccountType   = result.AccountType;

            if (expectedAccountType.Substring(0, 3) != "BLL")
            {
                expectedAccountType = "BLL.Interface." + expectedAccountType + "Account";
            }

            if (actualAccountType.Substring(0, 3) != "BLL")
            {
                actualAccountType = "BLL.Interface." + actualAccountType + "Account";
            }

            // Assert
            Assert.AreEqual(data[0].Id, result.Id);
            Assert.AreEqual(data[0].FirstName, result.FirstName);
            Assert.AreEqual(data[0].LastName, result.LastName);
            Assert.AreEqual(data[0].Balance, result.Balance);
            Assert.AreEqual(expectedAccountType, actualAccountType);
            Assert.AreEqual(data[0].BonusPoints, result.BonusPoints);
        }
Esempio n. 5
0
        public void WithdrawAccountTest()
        {
            // Arrange
            var data = new List <BankAccountDTO>();

            var account  = new BankAccountDTO(4, "Maw", "Flames", 260.0m, 10, AccountType.Platinum.ToString());
            var expected = account.Balance;

            var mockRepository = new Mock <IRepository>();

            mockRepository.Setup(a => a.UpdateAccount(It.IsAny <BankAccountDTO>())).Callback(() => account.Balance -= 10.0m);

            // Act
            var service = new AccountService(mockRepository.Object);

            service.WithdrawAccount(BankAccountMapper.DTOToBancAcc(account), 10.0m);

            expected -= 10.0m;
            var actual = account.Balance;

            // Assert
            Assert.AreEqual(expected, actual);
        }
Esempio n. 6
0
        public void DepositAccountTest()
        {
            // Arrange
            var data = new List <BankAccountDTO>();

            var account  = new BankAccountDTO(6, "Harry", "Potter", 50.0m, 25, (AccountType.Silver).ToString());
            var expected = account.Balance;

            var mockRepository = new Mock <IRepository>();

            mockRepository.Setup(a => a.UpdateAccount(It.IsAny <BankAccountDTO>())).Callback(() => account.Balance += 10.0m);

            // Act
            var service = new AccountService(mockRepository.Object);

            service.DepositAccount(BankAccountMapper.DTOToBancAcc(account), 10.0m);

            expected += 10.0m;
            var actual = account.Balance;

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void BankAccountServiceTest_Add_BankAccount_Succed(int id, string name, decimal balance, int bonusPoints, TypeBankAccount type)
        {
            Mock <ICalculatorBonusPoints> mockBonusPointsToWithfraw = new Mock <ICalculatorBonusPoints>();

            mockBonusPointsToWithfraw
            .Setup(m => m.GetBonusPoints(It.IsAny <BankAccount>(), It.IsAny <Decimal>()))
            .Returns <BankAccount, decimal>((bankAccount, amount) => bankAccount.BonusPointsWithdraw);

            Mock <ICalculatorBonusPoints> mockBonusPointsToDeposit = new Mock <ICalculatorBonusPoints>();

            mockBonusPointsToDeposit
            .Setup(m => m.GetBonusPoints(It.IsAny <BankAccount>(), It.IsAny <Decimal>()))
            .Returns <BankAccount, decimal>((bankAccount, amount) => bankAccount.BonusPointsDeposit);

            Mock <IBankAccountFactory> mockBankAccountFactory = new Mock <IBankAccountFactory>();

            mockBankAccountFactory
            .Setup(m => m.GetInstance(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <decimal>(), It.IsAny <int>(), It.IsAny <TypeBankAccount>()))
            .Returns <int, string, decimal, int, TypeBankAccount>((idF, nameF, balanceF, bonus, typeF) => GetInstance(idF, nameF, balanceF, bonus, typeF, mockBonusPointsToWithfraw.Object, mockBonusPointsToDeposit.Object));

            BankAccountMapper          mapper = new BankAccountMapper(mockBankAccountFactory.Object);
            Mock <IBankAccountStorage> mockBankAccountStorage = new Mock <IBankAccountStorage>();

            mockBankAccountStorage
            .Setup(m => m.Load())
            .Returns(() =>
            {
                return(new List <AccountDTO>());
            });
            mockBankAccountStorage
            .Setup(m => m.Save(It.IsAny <IEnumerable <AccountDTO> >()));

            IBankAccountService service = new BankAccountService(mockBankAccountStorage.Object, mapper);

            service.Add(new BaseAccount(1, name, balance, bonusPoints));
            Assert.AreEqual(1, service.Count());
        }
Esempio n. 8
0
        public void CloseAccountTest()
        {
            // Arrange
            var data = new List <BankAccountDTO>();

            var accountSwift = new BankAccountDTO(3, "Jonathan", "Swift", 50.0m, 25, (AccountType.Silver).ToString());

            data.Add(accountSwift);

            var mock = new Mock <IRepository>();

            mock.Setup(a => a.RemoveAccount(It.IsAny <BankAccountDTO>())).Callback(() => data.Remove(accountSwift));

            // Act
            var service = new AccountService(mock.Object);

            service.CloseAcount(BankAccountMapper.DTOToBancAcc(accountSwift));

            var actual   = data.Count;
            var expected = 0;

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void ToDTOTest(BankAccount account)
        {
            var dto = BankAccountMapper.ToDTO(account);

            Assert.That(dto.IBAN == account.IBAN && dto.Owner == account.Owner && dto.Balance == account.Balance && dto.BonusPoints == account.BonusPoints && dto.AccountType == account.GetType().FullName);
        }
        public void FromDTOTest(BankAccountDTO dto)
        {
            var account = BankAccountMapper.FromDTO(dto);

            Assert.That(account.IBAN == dto.IBAN && account.Owner == dto.Owner && account.Balance == dto.Balance && account.BonusPoints == dto.BonusPoints && account.GetType().FullName == dto.AccountType);
        }
Esempio n. 11
0
 public IEnumerable <BankAccountDto> FetchAllAccounts()
 {
     logger.LogInformation("Inside FetchAllAccounts Method for Account");
     return(dataContext.BankAccounts.Select(x => BankAccountMapper.ToBankAccountDTOMap(x)).ToList());
 }