예제 #1
0
        public void ShouldBeSuccessToPaidOrder()
        {
            //Arrange
            var order = FakerOrder.GetSampleWithItems(3);

            order.Close();

            var model = new PaidOrderModel()
            {
                Id = order.Id,
                TotalPaidInCents = order.TotalInCents
            };

            _repositoryMock.Setup(r => r.Get(It.Is <Guid>(id => id == order.Id))).Returns(order);
            _repositoryMock.Setup(r => r.Update(It.Is <Order>(o => o.Id == order.Id))).Returns(order);

            //Act
            var response = _service.PaidOrder(model);

            //Assert
            var output = GlobalMapper.Map <Result <OrderModelOutput> >(response);

            var validateTest = response.Success &&
                               output.Data.Status == EOrderStatus.Paid;

            _repositoryMock.Verify(r => r.Get(It.Is <Guid>(id => id == order.Id)), Times.Once);
            _repositoryMock.Verify(r => r.Update(It.Is <Order>(o => o.Id == order.Id)), Times.Once);

            validateTest.Should().BeTrue();
        }
        public IResult PaidOrder(PaidOrderModel model)
        {
            var order = _repository.Get(model.Id);

            if (order == null)
            {
                return(ErrorExtensions.CreateNotification("id", "Nenhum pedido encontrado"));
            }

            order.Paid(model.TotalPaidInCents);

            if (order.IsValid())
            {
                _repository.Update(order);
                var output = _mapper.Map <OrderModelOutput>(order);
                return(new Result <OrderModelOutput>(output, "Pedido pago com sucesso!", true));
            }

            return(order.GetNotifications());
        }
예제 #3
0
        public IActionResult PaidOrder([FromRoute] string id, [FromBody] PaidOrderModel model)
        {
            if (Guid.TryParse(id, out var idGuid) == false)
            {
                return(GenerateResponse(HttpStatusCode.BadRequest, ErrorExtensions.CreateNotification("id", "Identificador inválido")));
            }

            if (ModelState.IsValid == false)
            {
                return(GenerateBadRequestResponse());
            }

            model.Id = idGuid;
            var response = _service.PaidOrder(model);

            if (response.Success)
            {
                return(GenerateResponse(HttpStatusCode.OK, response));
            }

            return(GenerateResponse(HttpStatusCode.BadRequest, response));
        }