public bool ValidateShareInfo(ShareRegistrationInfo shareInfo, ILogger logger) { if (shareInfo.Cost < 1) { logger.WriteWarn("Share cannot have cost less than 1"); return(false); } return(true); }
public int RegisterShare(ShareRegistrationInfo shareInfo) { var shareToAdd = new ShareEntity() { ShareName = shareInfo.Name, ShareCost = shareInfo.Cost }; sharesRepository.Add(shareToAdd); sharesRepository.SaveChanges(); return(shareToAdd.ShareID); }
public void ShouldNotValidateShareInfo() { //Arrange TradeValidator tradeValidator = new TradeValidator(clientsRepository, shareRepository, clientsSharesRepository); ShareRegistrationInfo shareInfo = new ShareRegistrationInfo() { Name = "CostCorp", Cost = 0 }; //Act var isValid = tradeValidator.ValidateShareInfo(shareInfo, logger); //Assert Assert.AreEqual(false, isValid); }
public void ShouldRegisterShare() { //Arrange ShareService shareService = new ShareService(shareRepository); ShareRegistrationInfo shareInfo = new ShareRegistrationInfo() { Name = "Hardsoft", Cost = 10 }; //Act int id = shareService.RegisterShare(shareInfo); //Assert shareRepository.Received(1).Add(Arg.Is <ShareEntity>( w => w.ShareName == shareInfo.Name && w.ShareCost == shareInfo.Cost)); shareRepository.Received(1).SaveChanges(); Assert.AreEqual(1, id); }
public void ShouldRegisterNewShare() { // Arrange this.shareTableRepository = Substitute.For <IShareTableRepository>(); SharesService sharesService = new SharesService(this.shareTableRepository); ShareRegistrationInfo args = new ShareRegistrationInfo(); args.CompanyName = "Horns and hooves"; args.Type = this.type; args.Status = true; // Act var shareId = sharesService.RegisterNewShare(args); // Assert this.shareTableRepository.Received(1).Add(Arg.Is <ShareEntity>( s => s.CompanyName == args.CompanyName && s.Type == args.Type && s.Status == args.Status)); this.shareTableRepository.Received(1).SaveChanges(); }
public int RegisterNewShare(ShareRegistrationInfo args) { var entityToAdd = new ShareEntity() { CreatedAt = DateTime.Now, CompanyName = args.CompanyName, Type = args.Type, Status = true }; if (this.tableRepository.Contains(entityToAdd)) { throw new ArgumentException("This share type has been registered. Can't continue."); } this.tableRepository.Add(entityToAdd); this.tableRepository.SaveChanges(); return(entityToAdd.Id); }
public void ShouldNotRegisterNewShareIfItExists() { // Arrange this.shareTableRepository = Substitute.For <IShareTableRepository>(); SharesService sharesService = new SharesService(this.shareTableRepository); ShareRegistrationInfo args = new ShareRegistrationInfo(); args.CompanyName = "Horns and hooves"; args.Type = this.type; args.Status = true; // Act sharesService.RegisterNewShare(args); this.shareTableRepository.Contains(Arg.Is <ShareEntity>( // Now Contains returns true (table contains this share type) s => s.CompanyName == args.CompanyName && s.Type == args.Type && s.Status == args.Status)).Returns(true); sharesService.RegisterNewShare(args); // Try to reg. same twice and get exception // Assert }
private void processUserInput(string userInput) { string[] splitedUserInput = userInput.Split(' ', '\t', ';'); switch (splitedUserInput[0].ToLower()) { case "addclient": ClientRegistrationInfo clientInfo = new ClientRegistrationInfo() { FirstName = splitedUserInput[1], LastName = splitedUserInput[2], PhoneNumber = splitedUserInput[3] }; registerEntity(validator.ValidateClientInfo, clientService.RegisterClient, clientInfo); break; case "addshare": ShareRegistrationInfo shareInfo = new ShareRegistrationInfo() { Name = splitedUserInput[1], Cost = decimal.Parse(splitedUserInput[2]) }; registerEntity(validator.ValidateShareInfo, shareService.RegisterShare, shareInfo); break; case "changesharestoclient": ClientsSharesInfo clientsShareInfo = new ClientsSharesInfo() { ClientID = int.Parse(splitedUserInput[1]), ShareID = int.Parse(splitedUserInput[2]), Amount = int.Parse(splitedUserInput[3]) }; registerEntity(validator.ValidateShareToClient, clientsSharesService.ChangeClientsSharesAmount, clientsShareInfo); break; case "changeclientmoney": changeClientsMoney(splitedUserInput); break; case "showorange": showClientsList(clientService.GetClientsFromOrangeZone()); break; case "showblack": showClientsList(clientService.GetClientsFromBlackZone()); break; case "showfullclients": showClientsList(clientService.GetAllClients()); break; case "showfullshares": var fullList = shareService.GetAllShares(); logger.WriteInfo(phraseProvider.GetPhrase("ShareHeader")); foreach (ShareEntity share in fullList) { string sharesInfo = $"{share.ShareID.ToString()} {share.ShareName} {share.ShareCost.ToString()}"; logger.WriteInfo(sharesInfo); } logger.WriteInfo("Successfully showed full share list"); break; case "help": logger.WriteInfo(phraseProvider.GetPhrase("Help")); break; case "e": break; default: logger.WriteWarn("Unknown command"); return; } }