public void ShouldNotBuyWhenTotalAccountIsLtTotalBalance(int totalBalance) { List <Acao> acoes = new List <Acao>() { new Acao() { Quantity = 120, Value = 2.85M, Operation = OperationTypeEnum.Buy }, new Acao() { Quantity = 43, Value = 2.85M, Operation = OperationTypeEnum.Buy }, new Acao() { Quantity = 18, Value = 2.85M, Operation = OperationTypeEnum.Buy }, new Acao() { Quantity = 25, Value = 2.85M, Operation = OperationTypeEnum.Buy }, new Acao() { Quantity = 32, Value = 2.85M, Operation = OperationTypeEnum.Buy }, new Acao() { Quantity = 44, Value = 2.85M, Operation = OperationTypeEnum.Buy }, }; var context = MockStockContext.GenerateContext(InternalUserId, totalBalance, acoes); var user = context.Users.FirstOrDefault(f => f.Id == InternalUserId); decimal total = context.Operations.Where(f => f.OperationType == OperationTypeEnum.Buy).ToList().Sum(f => f.TotalValue); _mockUserService.Setup(f => f.CanBuy(It.IsAny <User>(), total)).Returns(false); var canBuy = _mockUserService.Object.CanBuy(user, total); var verif = new Mock <IUserService>().Object; var result = verif.CanBuy(user, total); Assert.IsFalse(result); Assert.AreEqual(canBuy, result); }
public void ShouldHaveBuyWhenTotalAccountIs2000([Values(2.85, 12.45, 2.95)] decimal preco, [Range(120, 120, 120)] int qte) { var context = MockStockContext.GenerateContext(InternalUserId, 2000); var firstOperation = context.Operations.FirstOrDefault(); firstOperation.CurrentPrice = preco; firstOperation.Quantity = qte; var user = context.Users.FirstOrDefault(f => f.Id == InternalUserId); decimal total = context.Operations.Where(f => f.OperationType == OperationTypeEnum.Buy).ToList().Sum(f => f.TotalValue); _mockUserService.Setup(f => f.CanBuy(It.IsAny <User>(), total)).Returns(true); var canBuy = _mockUserService.Object.CanBuy(user, total); var result = service.CanBuy(user, total); Assert.IsTrue(result); Assert.AreEqual(canBuy, result); }
public void ShouldNotSellWhenHaveMinusTradesThanRequested() { List <Acao> acoes = new List <Acao>() { new Acao() { Quantity = 120, Value = 2.85M, Operation = OperationTypeEnum.Sell }, new Acao() { Quantity = 43, Value = 2.85M, Operation = OperationTypeEnum.Sell }, new Acao() { Quantity = 18, Value = 2.85M, Operation = OperationTypeEnum.Sell }, new Acao() { Quantity = 25, Value = 2.85M, Operation = OperationTypeEnum.Sell }, new Acao() { Quantity = 32, Value = 2.85M, Operation = OperationTypeEnum.Sell }, new Acao() { Quantity = 44, Value = 2.85M, Operation = OperationTypeEnum.Sell }, }; int quantity = 200; var context = MockStockContext.GenerateContext(InternalUserId, 2000); var user = context.Users.FirstOrDefault(f => f.Id == InternalUserId); _mockUserService.Setup(f => f.CanSell(It.IsAny <User>(), It.IsAny <string>(), quantity)).Returns(false); var canBuy = _mockUserService.Object.CanSell(user, "VAL3", quantity); var result = service.CanSell(user, "VAL3", quantity); Assert.IsFalse(result); Assert.AreEqual(canBuy, result); }