public void ShouldOpenAccountForNewClient() { //Arrange ClientsService clientsService = new ClientsService(clientsTableRepository, accountTableRepository, stockPriceTableRepository, stockOfClientTableRepository, logger); ClientRegistrationInfo args = new ClientRegistrationInfo(); args.Name = "John"; args.Surname = "Jaymson"; args.PhoneNumber = "+78908901234"; AccountRegistrationInfo argsForAcc = new AccountRegistrationInfo(); argsForAcc.Balance = 10m; argsForAcc.Stocks = new List <StockOfClientEntity>(); argsForAcc.Zone = "white"; //Act argsForAcc.ClientId = clientsService.RegisterNewClient(args); clientsService.CreateNewAccountForNewClient(argsForAcc); //Assert accountTableRepository.Received(1).Add(Arg.Is <AccountEntity>( w => w.Balance == argsForAcc.Balance && w.ClientId == argsForAcc.ClientId && w.Stocks == argsForAcc.Stocks && w.Zone == argsForAcc.Zone)); accountTableRepository.Received(1).SaveChanges(); }
public void ShouldNotOpenAccountForNewClientIfItExists() { //Arrange ClientsService clientsService = new ClientsService(clientsTableRepository, accountTableRepository, stockPriceTableRepository, stockOfClientTableRepository, logger); ClientRegistrationInfo args = new ClientRegistrationInfo(); args.Name = "John"; args.Surname = "Jaymson"; args.PhoneNumber = "+78908901234"; AccountRegistrationInfo argsForAcc = new AccountRegistrationInfo(); argsForAcc.Balance = 10m; argsForAcc.Stocks = new List <StockOfClientEntity>(); argsForAcc.Zone = "white"; AccountEntity ShouldReturnAcc = new AccountEntity(); ShouldReturnAcc.Balance = 10m; ShouldReturnAcc.Stocks = new List <StockOfClientEntity>(); ShouldReturnAcc.Zone = "white"; //Act argsForAcc.ClientId = clientsService.RegisterNewClient(args); ShouldReturnAcc.AccountId = clientsService.CreateNewAccountForNewClient(argsForAcc); ShouldReturnAcc.ClientId = argsForAcc.ClientId; accountTableRepository.GetAccountByClientId(Arg.Is <int>(w => w == argsForAcc.ClientId)).Returns(ShouldReturnAcc); clientsService.CreateNewAccountForNewClient(argsForAcc); }
public int CreateNewAccountForNewClient(AccountRegistrationInfo args) { var entityToAdd = new AccountEntity() { ClientId = args.ClientId, Balance = args.Balance, Stocks = args.Stocks }; if (entityToAdd.Balance > 0) { entityToAdd.Zone = "white"; } if (entityToAdd.Balance == 0) { entityToAdd.Zone = "orange"; } if (entityToAdd.Balance < 0) { entityToAdd.Zone = "black"; } if (this.accountTableRepository.GetAccountByClientId(entityToAdd.ClientId) != null) { throw new ArgumentException("This client already have an account"); } this.accountTableRepository.Add(entityToAdd); this.accountTableRepository.SaveChanges(); logger.Info($"Account {entityToAdd.AccountId} for client {entityToAdd.ClientId} has been created"); return(entityToAdd.AccountId); }
private void Registration() { ClientRegistrationInfo clientRegistrationInfo = new ClientRegistrationInfo(); AccountRegistrationInfo accountRegistrationInfo = new AccountRegistrationInfo(); StockOfClientInfo stockOfClientInfo = new StockOfClientInfo(); clientRegistrationInfo.Name = AskUser(KeysForPhrases.RegName); clientRegistrationInfo.Surname = AskUser(KeysForPhrases.RegSurname); clientRegistrationInfo.PhoneNumber = AskUser(KeysForPhrases.RegPhone, true); accountRegistrationInfo.ClientId = clientsService.RegisterNewClient(clientRegistrationInfo); accountRegistrationInfo.Balance = Convert.ToDecimal(AskUser(KeysForPhrases.RegBalance, true)); stockOfClientInfo.ClientsAccountId = clientsService.CreateNewAccountForNewClient(accountRegistrationInfo); if (Convert.ToInt32(AskUser(KeysForPhrases.RegStock, true)) == 1) { stockOfClientInfo.TypeOfStocks = AskUser(KeysForPhrases.RegStockType); stockOfClientInfo.quantityOfStocks = Convert.ToInt32(AskUser(KeysForPhrases.RegStockQuant, true)); if (!clientsService.CheckIfStockPriseConteinStockOfClientByTypeOfStock(stockOfClientInfo.TypeOfStocks)) { StockPriceInfo stockPriceInfo = new StockPriceInfo() { TypeOfStock = stockOfClientInfo.TypeOfStocks }; stockPriceInfo.PriceOfStock = Convert.ToDecimal(AskUser(KeysForPhrases.RegStockPrice, true)); clientsService.RegisterNewTypeOfStock(stockPriceInfo); } clientsService.RegisterStockForNewClient(stockOfClientInfo); } }