public async Task UpdateBanknote_ReturnsUnprocessableEntityObjectResponse_GivenInvalidBanknote() { //Arrange BanknoteUpdateDto banknote = new BanknoteUpdateDto(); _controller.ModelState.AddModelError("Type", "Required"); //Act var response = await _controller.UpdateBanknote(Guid.Empty, banknote); //Assert Assert.IsType <UnprocessableEntityObjectResult>(response); }
public async Task <IActionResult> UpdateBanknote(Guid id, [FromBody] BanknoteUpdateDto banknote) { if (banknote == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } if (!await _countryService.CountryExists(banknote.CountryId)) { return(BadRequest()); } var retrievedBanknote = await _banknoteService.FindBanknoteById(id); if (retrievedBanknote == null) { return(NotFound()); } var collectorValue = _mapper.Map <CollectorValue>(banknote.CollectorValue); var existingCollectorValue = await _collectorValueService.FindCollectorValueByValues(collectorValue); retrievedBanknote.CollectorValueId = existingCollectorValue == null?Guid.NewGuid() : existingCollectorValue.Id; retrievedBanknote.CollectorValue = collectorValue; _mapper.Map(banknote, retrievedBanknote); _banknoteService.UpdateBanknote(retrievedBanknote); if (!await _banknoteService.Save()) { throw new Exception($"Updating banknote {id} failed on save."); } return(NoContent()); }