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