// GET: Accounts/Details/5 public ActionResult Details(int id) { BankAccount bankAccount = _service.GetAccountById(id); if (bankAccount == null) { return(HttpNotFound()); } return(View(BankAccountMapper.BankAccToDTO(bankAccount))); }
/// <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(); }
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)); }
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); }
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); }
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()); }
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); }
public IEnumerable <BankAccountDto> FetchAllAccounts() { logger.LogInformation("Inside FetchAllAccounts Method for Account"); return(dataContext.BankAccounts.Select(x => BankAccountMapper.ToBankAccountDTOMap(x)).ToList()); }