public void ShouldAddStockToCustomerAfterBuyingIfNotExists() { //Arrange var args = new BuyArguments() { SellerID = 5, CustomerID = 40, StockID = 20, //Customer hasnt this stock StockCount = 2, PricePerItem = 100.0M }; var entityToAdd = new StockToTraderEntityDB() { TraderId = args.CustomerID, StockId = args.StockID, StockCount = args.StockCount, PricePerItem = args.PricePerItem }; //Act saleHandler.HandleBuy(args); //Assert this.traderStockTableRepository.Received(1).Add(Arg.Any <StockToTraderEntityDB>()); this.traderStockTableRepository.Received(2).SaveChanges(); }
public void AdditionStockToCustomer(BuyArguments args) { var entityToAdd = new StockToTraderEntityDB() { TraderId = args.CustomerID, StockId = args.StockID, StockCount = args.StockCount, PricePerItem = args.PricePerItem }; if (traderStockTableRepository.Contains(entityToAdd)) { traderStockTableRepository.AdditionalStockToCustomer(args); } else { traderStockTableRepository.Add(entityToAdd); } traderStockTableRepository.SaveChanges(); }
public int AddNewStockToTrader(TraderInfo trader, StockInfo stock) { var entityToAdd = new StockToTraderEntityDB() { TraderId = trader.Id, StockId = stock.Id, StockCount = stock.Count, PricePerItem = stock.PricePerItem }; if (this.traderStockTableRepository.Contains(entityToAdd)) { throw new ArgumentException($"This stock {stock.Name} has been added for trader {trader.Name} {trader.Surname}."); } this.traderStockTableRepository.Add(entityToAdd); this.traderStockTableRepository.SaveChanges(); return(entityToAdd.Id); }
public bool Contains(StockToTraderEntityDB stockToTraderEntity) { return(this.dbContext.TraderStocks.Any(t => t.TraderId == stockToTraderEntity.TraderId && t.StockId == stockToTraderEntity.StockId)); }
public void Add(StockToTraderEntityDB entityToAdd) { this.dbContext.TraderStocks.Add(entityToAdd); }