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); }
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); }