public async Task <ActionResult> Put([FromRoute] Guid plantId, Guid id, [FromBody] UpdateAdministeredNutrientViewModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { UpdateAdministeredNutrientModel updateAdministeredNutrientModel = _mapper.Map <UpdateAdministeredNutrientModel>(model); updateAdministeredNutrientModel.Id = id; AdministeredNutrient administeredNutrient = await _commands.Update(plantId, updateAdministeredNutrientModel); if (administeredNutrient is null) { return(NotFound()); } return(Ok(_mapper.Map <UpdateAdministeredNutrientViewModel>(administeredNutrient))); } catch (Exception ex) when(ex is ResourceNotFoundException) { return(NotFound(new ErrorViewModel(ex))); } catch (Exception ex) when(ex is ResourceStateException) { return(Conflict(new ErrorViewModel(ex))); } }
public async Task PutAdministeredPlantNutrientReturnsBadRequestAndCorrectContentType() { // Given UpdateAdministeredNutrientViewModel model = ViewModelFactory.CreateInvalidUpdateModel(); // When HttpResponseMessage response = await Client.PutAsJsonAsync(EndPointFactory.UpdateEndpoint(), model); // Then response.StatusCode.Should().Be(HttpStatusCode.BadRequest); response.Content.Headers.ContentType.ToString().Should().Be("application/problem+json; charset=utf-8"); }