public async Task <IActionResult> Edit(string id, TicketManagementDTO ticket) { if (id != ticket.Id) { _logger.LogError($"Id did not match when editing Ticket: Expected id was - {id}, Received id was -{ticket.Id}"); return(RedirectToAction(nameof(Index))); } if (ModelState.IsValid) { try { Ticket ticketItem = _mapper.Map <Ticket>(ticket); _repositoryWrapper.Ticket.UpdateTicket(ticketItem); await _repositoryWrapper.SaveAsync(); } catch (Exception ex) { _logger.LogError($"Concurrency Error when editing event : {ticket.Id}; EXCEPTION {ex}"); } return(RedirectToAction(nameof(Index))); } return(View(nameof(Edit), ticket)); }
public async void RedirectToIndexIfIdsDontMatchOnPost() { string id = "some_string"; TicketManagementDTO tm = new TicketManagementDTO() { Id = "notMatching" }; var result = await sut.Edit(id, tm); Assert.IsAssignableFrom <RedirectToActionResult>(result); }
public async void CallUpdateTicketInRepository() { string id = "Matching"; TicketManagementDTO tm = new TicketManagementDTO() { Id = "Matching", Actioned = true }; var result = await sut.Edit(id, tm); Assert.IsAssignableFrom <RedirectToActionResult>(result); fixture.repositoryWrapper.Verify(x => x.Ticket.UpdateTicket(It.IsAny <Ticket>()), Times.Once); fixture.repositoryWrapper.Verify(y => y.SaveAsync(), Times.Once); }
public async void ReturnViewIfModelStateInvalid() { sut.ModelState.AddModelError(string.Empty, "Invalid TicketManagementDTO"); string id = "Matching"; TicketManagementDTO tm = new TicketManagementDTO() { Id = "Matching" }; var result = await sut.Edit(id, tm); var vr = Assert.IsType <ViewResult>(result); fixture.repositoryWrapper.Verify(x => x.Ticket.UpdateTicket(It.IsAny <Ticket>()), Times.Never); fixture.repositoryWrapper.Verify(y => y.SaveAsync(), Times.Never); Assert.Equal("Edit", vr.ViewName); Assert.IsType <TicketManagementDTO>(vr.Model); }