public async Task ChangeItemContainerAsync_ShouldChangeItemContainerAndSaveItInDb() { const int itemId = 4; const int containerId = 8; var equipRequest = new ChangeItemContainerRequest { ContainerId = containerId }; var item = new Item(); _unitOfWorkFactory.GetUnitOfWork().Items.GetWithOwnerAsync(itemId) .Returns(item); _unitOfWorkFactory.GetUnitOfWork().When(x => x.SaveChangesAsync()) .Do(_ => item.ContainerId.Should().Be(containerId)); var actualItem = await _service.ChangeItemContainerAsync(new NaheulbookExecutionContext(), itemId, equipRequest); actualItem.Should().BeSameAs(item); await _unitOfWorkFactory.GetUnitOfWork().Received(1).SaveChangesAsync(); }
public async Task <ActionResult <ItemPartialResponse> > PutChangeItemContainerAsync( [FromServices] NaheulbookExecutionContext executionContext, [FromRoute] int itemId, ChangeItemContainerRequest request ) { try { var item = await _itemService.ChangeItemContainerAsync(executionContext, itemId, request); return(_mapper.Map <ItemPartialResponse>(item)); } catch (ForbiddenAccessException ex) { throw new HttpErrorException(StatusCodes.Status403Forbidden, ex); } catch (ItemNotFoundException ex) { throw new HttpErrorException(StatusCodes.Status404NotFound, ex); } }