public ActionResult Edit(ReferencesViewModel model) { string oldFileName = string.Empty; try { Reference reference = setupRepository.GetReference(model.Id) ?? new Reference(); Mapper.Map(model, reference, typeof(ReferencesViewModel), typeof(Reference)); oldFileName = reference?.FileName ?? string.Empty; if (!string.IsNullOrEmpty(model.NewFilePath)) reference.FileName = fileService.UploadReference(model.NewFilePath); if (ModelState.IsValid) { setupRepository.Save(reference); TempData["savemessage"] = string.Format("{0} has been added", model.Name); if (!string.IsNullOrEmpty(oldFileName)) try { fileService.DeleteReference(oldFileName); } catch (Exception) { /*Logs*/ }; return RedirectToAction("List"); } else { return View("Reference", model); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return View("Reference", model); } }
public void Cannot_EditInvalidReference_Redirect() { referencesController.ModelState.AddModelError("Error", "Error"); ReferencesViewModel reference = new ReferencesViewModel() { Name = "ok" }; var actionResult = referencesController.Edit(reference) as ViewResult; Assert.AreEqual("Reference", actionResult.ViewName); }
public void Cannot_Delete_Reference_WhenException() { ServiceMock.Setup(x => x.DeleteReference(It.IsAny<int>())).Throws(new Exception()); ReferencesViewModel reference = new ReferencesViewModel() { Id = 3, Name = "ok" }; var result = referencesController.DeleteConfirmed(reference) as RedirectToRouteResult; ServiceMock.Verify(x => x.DeleteReference(It.IsAny<int>()), Times.Once); Assert.AreEqual("List", result.RouteValues["action"]); }
public void Cannot_EditNotUploaded_Redirect() { ReferencesViewModel reference = new ReferencesViewModel() { Name = "ok" }; var actionResult = referencesController.Edit(reference) as ViewResult; Assert.AreEqual("Reference", actionResult.ViewName); }
public void Can_EditSolution_RedirectToAction() { ReferencesViewModel reference = new ReferencesViewModel() { Name = "ok" }; var actionResult = referencesController.Edit(reference) as RedirectToRouteResult; ServiceMock.Verify(x => x.Save(It.IsAny<Reference>()), Times.Once); Assert.AreNotEqual(null, referencesController.TempData["savemessage"]); Assert.AreEqual("List", actionResult.RouteValues["action"]); }
public void Can_Delete_References() { ReferencesViewModel reference = new ReferencesViewModel() { Id = 3, Name = "ok" }; var result = referencesController.DeleteConfirmed(reference) as RedirectToRouteResult; ServiceMock.Verify(x => x.DeleteReference(It.IsAny<int>()), Times.Once); Assert.AreNotEqual(null, referencesController.TempData["savemessage"]); Assert.AreEqual("List", result.RouteValues["action"]); }
public void Cannot_EditSolution_SaveException() { ServiceMock.Setup(x => x.Save(It.IsAny<Reference>())).Throws(new Exception()); ReferencesViewModel reference = new ReferencesViewModel() { Name = "ok" }; var actionResult = referencesController.Edit(reference) as ViewResult; var model = (actionResult as ViewResult).Model as ReferencesViewModel; ServiceMock.Verify(x => x.Save(It.IsAny<Reference>()), Times.Once); Assert.AreEqual(null, referencesController.TempData["savemessage"]); Assert.AreEqual("Reference", actionResult.ViewName); Assert.AreEqual("ok", model.Name); }
public ActionResult DeleteConfirmed(ReferencesViewModel model) { try { Reference reference = setupRepository.GetReference(model.Id); string fileName = reference?.FileName ?? string.Empty; setupRepository.DeleteReference(model.Id); if (!string.IsNullOrEmpty(fileName)) fileService.DeleteReference(fileName); TempData["savemessage"] = string.Format("Solution has been deleted"); } catch (Exception /*ex*/ ) { ModelState.AddModelError(String.Empty, string.Format("An error occurred when deleting")); } return RedirectToAction("List"); }