Esempio n. 1
0
        public async Task UpdateAsync_OrderValidationFailed_ThrowsError()
        {
            // Arrange
            var fixture  = new Fixture();
            var order    = new OrderUpdateModel();
            var expected = fixture.Create <string>();

            var bookGetService = new Mock <IBookGetService>();

            bookGetService
            .Setup(x => x.ValidateAsync(order))
            .Throws(new InvalidOperationException(expected));

            var clientGetService = new Mock <IClientGetService>();

            clientGetService.Setup(x => x.ValidateAsync(order)).Throws(new InvalidOperationException(expected));


            var orderDataAccess = new Mock <IOrderDataAccess>();

            var orderGetService = new OrderUpdateService(orderDataAccess.Object, bookGetService.Object, clientGetService.Object);

            // Act
            var action = new Func <Task>(() => orderGetService.UpdateAsync(order));

            // Assert
            await action.Should().ThrowAsync <InvalidOperationException>().WithMessage(expected);

            orderDataAccess.Verify(x => x.UpdateAsync(order), Times.Never);
        }
Esempio n. 2
0
        public async Task UpdateAsync_OrderValidationSucceed_CreatesOrder()
        {
            // Arrange
            var order    = new OrderUpdateModel();
            var expected = new Order();

            var bookGetService = new Mock <IBookGetService>();

            bookGetService.Setup(x => x.ValidateAsync(order));

            var clientGetService = new Mock <IClientGetService>();

            clientGetService.Setup(x => x.ValidateAsync(order));

            var orderDataAccess = new Mock <IOrderDataAccess>();

            orderDataAccess.Setup(x => x.UpdateAsync(order)).ReturnsAsync(expected);

            var orderGetService = new OrderUpdateService(orderDataAccess.Object, bookGetService.Object, clientGetService.Object);

            // Act
            var result = await orderGetService.UpdateAsync(order);

            // Assert
            result.Should().Be(expected);
        }
Esempio n. 3
0
 public async Task <OrderDTO> Edit([FromRoute] int?id, [FromBody] OrderUpdateModel updateModel)
 {
     if (id.HasValue && id != updateModel.Id)
     {
         throw new InvalidDataException(nameof(id));
     }
     return(Mapper.Map <OrderDTO>(await OrderUpdateService.UpdateAsync(Mapper.Map <OrderUpdateModel>(updateModel))));
 }
Esempio n. 4
0
        public async Task <IActionResult> Edit(int id, OrderUpdateDTO orderUpdate)
        {
            if (id != orderUpdate.Id)
            {
                return(NotFound());
            }

            var order = Mapper.Map <OrderDTO>(await OrderUpdateService.UpdateAsync(Mapper.Map <OrderUpdateModel>(orderUpdate)));

            return(Redirect($"/orders/{order.Id}"));
        }