Beispiel #1
0
        public async Task Pedido_AtualizarPedidoENaoRelacionarAUmDrone_Retornar200OK()
        {
            // Arrange
            var latitudeOrigem  = -23.5880684;
            var longitudeOrigem = -46.6564195;

            var latitudeUsuario  = -23.5950753;
            var longitudeUsuario = -46.645421;

            var velocidadeDrone = 3.333;

            IEnumerable <Drone> drones = new List <Drone> {
                Drone.Criar(12000, velocidadeDrone, 35, 100, DroneStatus.EmManutencao)
            };


            var usuario = Usuario.Criar("test", "*****@*****.**", 0, 0, UsuarioRole.Cliente);

            //obter pedido
            var pedido = Pedido.Criar(Guid.NewGuid(), 1000, 1000, usuario);

            pedido.CarregarUsuario(usuario);
            pedido.AtualizarStatusPedido(PedidoStatus.AguardandoPagamento);
            _mocker.GetMock <IUnitOfWork>()
            .Setup(p => p.Pedidos.ObterPorIdAsync(pedido.Id))
            .Returns(Task.FromResult(pedido));

            //Calcular tempo entrega
            _mocker.GetMock <ICalcularTempoEntrega>()
            .Setup(p => p.ObterTempoEntregaEmMinutosIda(latitudeOrigem, longitudeOrigem, latitudeUsuario, longitudeUsuario, velocidadeDrone));

            //Obter ponto inicial do drone
            _mocker.GetMock <IOptions <DronePontoInicialConfig> >()
            .Setup(p => p.Value)
            .Returns(new DronePontoInicialConfig {
                Latitude = latitudeOrigem, Longitude = longitudeOrigem
            });

            //Criar lista de drones
            _mocker.GetMock <IUnitOfWork>()
            .Setup(p => p.Drones.ObterTodosAsync())
            .Returns(Task.FromResult(drones));

            //adicionar pedido
            _mocker.GetMock <IUnitOfWork>()
            .Setup(p => p.Pedidos.AdicionarAsync(It.IsAny <Pedido>()))
            .Returns(Task.CompletedTask);


            var command = new AtualizarPedidoStatusCommand(pedido.Id, PedidoStatus.AguardandoPagamento);

            // Act
            var result = await _handler.Handle(command, CancellationToken.None);

            // Assert
            Assert.False(result.HasFails);
            _mocker.GetMock <IUnitOfWork>().Verify(o => o.Pedidos.AtualizarAsync(pedido), Times.Once);
        }
Beispiel #2
0
        public async Task <IActionResult> AtualizarStatusPedido(AtualizarPedidoStatusCommand command)
        {
            var response = await EventBus.SendCommand(command);

            if (response.HasFails)
            {
                return(BadRequest(response.Fails));
            }
            return(Ok());
        }
        public async Task AtualizarPedido_AoCriarumAtualizarPedidoComComandoInvalido_RetornarNotificacoesComFalha()
        {
            // Arrange
            var command = new AtualizarPedidoStatusCommand(Guid.Empty, PedidoStatus.Pago);

            // Act
            var responseResult = await _handler.Handle(command, CancellationToken.None);

            // Assert
            Assert.True(responseResult.HasFails);
        }
        public async Task Pedido_AoAtualizarPedidoSemDroneCadastrado_RetornarNotificacoesComFalha()
        {
            // Arrange
            var command = new AtualizarPedidoStatusCommand(Guid.NewGuid(), PedidoStatus.Pago);

            var usuario = Usuario.Criar("test", "*****@*****.**", 0, 0, UsuarioRole.Cliente);

            //Usuario autenticado nao retorna nada
            _mocker.GetMock <IUsuarioAutenticado>()
            .Setup(p => p.GetCurrentId())
            .Returns(usuario.Id);

            //Obter usuario
            _mocker.GetMock <IUnitOfWork>()
            .Setup(p => p.Usuarios.ObterPorIdAsync(usuario.Id))
            .Returns(Task.FromResult(usuario));

            //obter pedido
            var pedido = Pedido.Criar(Guid.NewGuid(), 1000, 1000, usuario);

            _mocker.GetMock <IUnitOfWork>()
            .Setup(p => p.Pedidos.ObterPorIdAsync(pedido.Id))
            .Returns(Task.FromResult(pedido));



            //Criar lista de drones
            IEnumerable <Drone> drones = new List <Drone> {
            };

            _mocker.GetMock <IUnitOfWork>()
            .Setup(p => p.Drones.ObterTodosAsync())
            .Returns(Task.FromResult(drones));

            // Act
            var responseResult = await _handler.Handle(command, CancellationToken.None);

            // Assert
            Assert.True(responseResult.HasFails);
            Assert.True(responseResult.Fails.Count() == 1);
            Assert.NotNull(responseResult.Fails.Select(x => x.Message == Erros.ErroDrone_NaoCadastrado));
        }
        public async Task Pedido_AoAtualizarPedidoPago_RetornarNotificacoesComFalha()
        {
            // Arrange
            var command = new AtualizarPedidoStatusCommand(Guid.NewGuid(), PedidoStatus.Pago);

            var usuario = Usuario.Criar("test", "*****@*****.**", 0, 0, UsuarioRole.Cliente);

            //obter pedido
            var pedido = Pedido.Criar(Guid.NewGuid(), 1000, 1000, usuario);

            _mocker.GetMock <IUnitOfWork>()
            .Setup(p => p.Pedidos.ObterPorIdAsync(pedido.Id))
            .Returns(Task.FromResult(pedido));

            // Act
            var responseResult = await _handler.Handle(command, CancellationToken.None);

            // Assert
            Assert.True(responseResult.HasFails);
            Assert.True(responseResult.Fails.Count() == 1);
        }