public async Task <CreatedActionResult <ItemResponse> > PostAddItemToCharacterInventoryAsync( [FromServices] NaheulbookExecutionContext executionContext, [FromRoute] int characterId, CreateItemRequest request ) { try { var item = await _characterService.AddItemToCharacterAsync(executionContext, characterId, request); return(_mapper.Map <ItemResponse>(item)); } catch (ForbiddenAccessException ex) { throw new HttpErrorException(StatusCodes.Status403Forbidden, ex); } catch (CharacterNotFoundException ex) { throw new HttpErrorException(StatusCodes.Status404NotFound, ex); } catch (ItemTemplateNotFoundException ex) { throw new HttpErrorException(StatusCodes.Status400BadRequest, ex); } }
public async Task PostAddItemToCharacterInventory_ShouldLoadCharacterFromService_ThenMapItIntoResponse() { const int characterId = 2; var item = new Item(); var itemResponse = new ItemResponse(); var request = new CreateItemRequest(); _characterService.AddItemToCharacterAsync(_executionContext, characterId, request) .Returns(item); _mapper.Map <ItemResponse>(item) .Returns(itemResponse); var result = await _controller.PostAddItemToCharacterInventoryAsync(_executionContext, characterId, request); result.Value.Should().BeSameAs(itemResponse); }