public void PostEditNonExistingVisitTest() { //Arrange var model = new VisitViewModel { Id = 12, Caption = null, VisitDate = new DateTime(2012, 1, 24), VisitTime = new DateTime(2012, 1, 24, 10, 10, 10), ExpectedVisitDate = new DateTime(2012, 1, 25) }; //here we return "visit before editing" - this data should be overwritten from model repository.Setup(r => r.GetByKey(It.IsAny<int>())).Returns((Visit) null); //as checking of saved visit is quite complicated, we will save the passed object and inspect it later Visit savedVisit = null; repository.Setup(r => r.Edit(It.IsAny<Visit>())).Callback<Visit>(v => savedVisit = v); //Act var result = controller.EditVisit(model); //Assert Assert.That(result, Is.Not.Null); Assert.That(result is ViewResultBase); var viewResultBase = result as ViewResultBase; Assert.That(viewResultBase.Model, Is.Not.Null); Assert.That(viewResultBase.ViewName, Is.EqualTo("ErrorInfo")); Assert.That(viewResultBase.Model is ErrorViewModel); var errorModel = viewResultBase.Model as ErrorViewModel; Assert.That(errorModel.Caption, Is.EqualTo("Visit is not found")); }
private ActionResult ViewEditVisit(bool? isVisitEditing, Visit visit) { if (visit == null) { var errorModel = new ErrorViewModel { Caption = "Visit is not found", ErrorMessage = string.Format("Visit is not found in clinical data") }; return View("ErrorInfo", errorModel); } var model = new VisitViewModel { Id = visit.Id, Caption = visit.Caption, VisitType = visit.VisitType, ExpectedVisitDate = visit.ExpectedVisitDate, VisitDate = visit.VisitDate, VisitTime = visit.VisitTime, OrderNo = visit.OrderNo, NoExpectedVisitDate = visit.VisitType == VisitType.AdverseEventVisit }; if (visit.IsCompleted && !(isVisitEditing ?? false)) return PartialView("_ViewVisit", model); return PartialView("_EditVisit", model); }
public void PostEditExistingVisitTest() { //Arrange EmulateControllerContext(controller, false); var model = new VisitViewModel { Id = 12, Caption = "TestVisit", VisitDate = new DateTime(2012, 1, 24), VisitTime = new DateTime(2012, 1, 24, 10, 10, 10), ExpectedVisitDate = new DateTime(2012, 1, 25) }; //here we return "visit before editing" - this data should be overwritten from model repository.Setup(r => r.GetByKey(It.IsAny<int>())).Returns( new Visit() { Id = 12, Caption = "TestVisit", VisitDate = new DateTime(2012, 1, 04), VisitTime = new DateTime(2012, 1, 04, 10, 10, 10), ExpectedVisitDate = new DateTime(2012, 1, 05), Patient = new Patient {PatientNumber = 12} } ); //as checking of saved visit is quite complicated, we will save the passed object and inspect it later Visit savedVisit = null; repository.Setup(r => r.Edit(It.IsAny<Visit>())).Callback<Visit>(v => savedVisit = v); //Act var result = controller.EditVisit(model); //Assert Assert.That(result, Is.Not.Null); Assert.That(result is RedirectToRouteResult); repository.Verify(r => r.GetByKey(model.Id), Times.Once()); repository.Verify(r => r.Edit(It.IsAny<Visit>()), Times.Once()); repository.Verify(r => r.Save(), Times.Once()); Assert.That(savedVisit, Is.Not.Null); Assert.That(savedVisit.Caption, Is.EqualTo("TestVisit")); Assert.That(savedVisit.VisitDate, Is.EqualTo(new DateTime(2012, 1, 24))); Assert.That(savedVisit.VisitTime, Is.EqualTo(new DateTime(2012, 1, 24, 10, 10, 10))); Assert.That(savedVisit.ExpectedVisitDate, Is.EqualTo(new DateTime(2012, 1, 25))); }