public ActionResult <BankAccountModel> Post(BankAccountModel accountIn) { var newAccount = _bankAccountService.CreateAccount(accountIn.ToDomain()); return(BankAccountModel.FromDomain(newAccount)); //return CreatedAtRoute("BankAccounts", new { id = accountIn.Id.ToString() }, accountIn); }
// Feature: Create new accounts // Requirements: // Savings must have a minimum of 700 // Can't have more than 1 account of the same type public bool CreateAccount(BankAccount newBankAccount) { if (newBankAccount.AccountType == BankAccountType.Savings) { if (newBankAccount.Balance < 700) { return(false); } } // Lecture: // Incur two round trips for consolidate business rules if (String.IsNullOrWhiteSpace(newBankAccount.Owner?.EntityId)) { throw new Exception($"Invalid {nameof(BankAppUser.EntityId)}"); } var userAccounts = _bankAccountService.GetBankAccounts(newBankAccount.Owner); foreach (var account in userAccounts) { if (account.AccountType == newBankAccount.AccountType) { return(false); } } return(_bankAccountService.CreateAccount(newBankAccount)); }
public void BankAccountRepository_UpdateAccountTest(string firstName, string lastName, string email, string expectedAccountNumber) { var repositoryMock = new Mock <IBankAccountRepository>(); repositoryMock.Setup(repository => repository.GetAccount(It.IsAny <string>())).Returns( new DtoAccount { AccountNumber = expectedAccountNumber, AccountType = "BaseBankAccount", Balance = 100, Bonus = 100, OwnerFirstName = firstName, OwnerLastName = lastName }); var accountNumberGeneratorMock = new Mock <IAccountNumberGenerator>(MockBehavior.Strict); accountNumberGeneratorMock.Setup(service => service.CreateNumber(new List <BankAccount>())).Returns(expectedAccountNumber); var bankAccountService = new BankAccountService(repositoryMock.Object); string actualAccountNumber = bankAccountService.CreateAccount( AccountType.Base, accountNumberGeneratorMock.Object, firstName, lastName, email); bankAccountService.Deposit(actualAccountNumber, 100m); bankAccountService.Withdraw(actualAccountNumber, 10m); repositoryMock.Verify( repository => repository.UpdateAccount(It.Is <DtoAccount>(account => account.AccountNumber == expectedAccountNumber)), Times.Exactly(2)); }
public static void Main(string[] args) { BankAccountService service = new BankAccountService(new FakeRepository(), new BankAccountsFactory()); service.CreateAccount(AccountType.BaseAccount, 1, new Client("Brahinets", "Ilia", "Andreevich"), 0, 0); Console.ReadKey(); }
public void createAccountTest() { var account1 = _bankAccountService.CreateAccount(new BankAccount(100, "user1")); var account2 = _bankAccountService.CreateAccount(new BankAccount(1000, "user2")); Assert.IsNotNull(account1); Assert.IsNotNull(account2); Assert.IsInstanceOf(typeof(BankAccount), account1); Assert.IsInstanceOf(typeof(BankAccount), account2); }
public void BankAccountRepository_GetAllAccountsTest(string firstName, string lastName, string email, string expectedAccountNumber) { var repositoryMock = new Mock <IBankAccountRepository>(); var accountNumberGeneratorMock = new Mock <IAccountNumberGenerator>(MockBehavior.Strict); accountNumberGeneratorMock.Setup(service => service.CreateNumber(new List <BankAccount>())).Returns(expectedAccountNumber); var bankAccountService = new BankAccountService(repositoryMock.Object); bankAccountService.CreateAccount( AccountType.Base, accountNumberGeneratorMock.Object, firstName, lastName, email); repositoryMock.Verify(repository => repository.GetAllAccounts(), Times.Once); }
public void AccountNumberGenerator_CreateNumberTest(string firstName, string lastName, string email, string expectedAccountNumber) { var repositoryMock = new Mock <IBankAccountRepository>(); var accountNumberGeneratorMock = new Mock <IAccountNumberGenerator>(MockBehavior.Strict); accountNumberGeneratorMock.Setup(service => service.CreateNumber(new List <BankAccount>())).Returns(expectedAccountNumber); var bankAccountService = new BankAccountService(repositoryMock.Object); string actualAccountNumber = bankAccountService.CreateAccount( AccountType.Base, accountNumberGeneratorMock.Object, firstName, lastName, email); Assert.AreEqual(expectedAccountNumber, actualAccountNumber); }
static void Main(string[] args) { BankAccount account1 = BankAccountService.CreateAccount("1", new Owner("John", "Doe"), BankAccountService.AccountType.Base, 100), account2 = BankAccountService.CreateAccount("2", new Owner("Jane", "Doe"), BankAccountService.AccountType.Gold, 200); //Create account Console.WriteLine("Create account:"); PrintAccount(account1); //Deposit Console.WriteLine("\nDeposit:"); account1.Deposit(20); PrintAccount(account1); //Withdraw Console.WriteLine("\nWithdraw:"); account1.Withdraw(50); PrintAccount(account1); //Close account Console.WriteLine("\nClose account:"); account1.Close(); PrintAccount(account1); //Work with files if (args.Length >= 1) { AccountBinaryReadWrite binaryReadWrite = new AccountBinaryReadWrite(args[0]); List <BankAccount> accounts = new List <BankAccount>(); //Read collection from file try { accounts = binaryReadWrite.CollectionRead().ToList(); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine("\nRead list from file:"); PrintAccounts(accounts); //Add account Console.WriteLine("\nAdd account:"); accounts.Add(account2); PrintAccount(account2); //Deposit to account from list Console.WriteLine("\nDeposit first:"); accounts[0].Deposit(50); PrintAccount(accounts[0]); //Save collection to file Console.WriteLine("\nSave to file:"); binaryReadWrite.CollectionWrite(accounts); PrintAccounts(accounts); } else { Console.WriteLine("Enter source path"); } Console.ReadLine(); }