Exemplo n.º 1
0
        public async Task Handle_OrderStockCommandWithoutInsuficientFounds_ThrowsAppException(string symbol, int amount)
        {
            var repository       = new Mock <IStockRepository>();
            var traderRepository = new Mock <ITraderRepository>();

            var request = new OrderStockCommand
            {
                Symbol = symbol,
                Amount = amount
            };

            repository.Setup(r => r.GetBySymbol(It.IsAny <String>())).ReturnsAsync(new Stock()
            {
                Symbol = "a", CurrentPrice = 10.0
            });
            traderRepository.Setup(r => r.GetById(It.IsAny <int>())).ReturnsAsync(new Trader()
            {
                Name = "joão", AccountAmmount = 0, FinancialAssets = new System.Collections.Generic.List <FinancialAsset>()
            });

            var handler = new OrderStockCommandHandler(repository.Object, traderRepository.Object);

            var result = await handler.Handle(request, new CancellationToken());

            Assert.True(result.Error);
            Assert.Equal("saldo insuficiente", result.ErrorMessage);
        }
Exemplo n.º 2
0
        public async Task Handle_OrderStockCommand_WithSuccess(string symbol, int amount)
        {
            var repository       = new Mock <IStockRepository>();
            var traderRepository = new Mock <ITraderRepository>();

            var request = new OrderStockCommand
            {
                Symbol = symbol,
                Amount = amount
            };
            var query = new OrderStockCommandHandler(repository.Object, traderRepository.Object);

            repository.Setup(r => r.GetBySymbol(It.IsAny <String>())).ReturnsAsync(new Stock()
            {
                Symbol = "a", CurrentPrice = 10.0
            });
            traderRepository.Setup(r => r.GetById(It.IsAny <int>())).ReturnsAsync(new Trader()
            {
                Name = "joão", AccountAmmount = 1000, FinancialAssets = new System.Collections.Generic.List <FinancialAsset>()
            });

            var result = await query.Handle(request, new CancellationToken());

            Assert.False(result.Error);
            Assert.Equal("sucesso", result.Data);
        }
Exemplo n.º 3
0
        public async Task Handle_OrderStockCommand_WithInvalidFinancialAsset(string symbol, int amount)
        {
            var repository       = new Mock <IStockRepository>();
            var traderRepository = new Mock <ITraderRepository>();

            var request = new OrderStockCommand
            {
                Symbol = symbol,
                Amount = amount
            };

            repository.Setup(r => r.GetBySymbol(It.IsAny <String>())).ReturnsAsync(() => null);
            traderRepository.Setup(r => r.GetById(It.IsAny <int>())).ReturnsAsync(new Trader()
            {
                Name = "joão", AccountAmmount = 0, FinancialAssets = new System.Collections.Generic.List <FinancialAsset>()
            });

            var handler = new OrderStockCommandHandler(repository.Object, traderRepository.Object);

            var result = await handler.Handle(request, new CancellationToken());

            Assert.True(result.Error);
            Assert.Equal("ativo inválido", result.ErrorMessage);
        }