public void AdverseEventViewModelToFormData_FullData() { //Arrange var aViewModel = new AdverseEventFormViewModel { Id = 6, AdverseExperience = "Broken arm", OnsetDate = new DateTime(2012, 3, 4), OnsetTime = new DateTime(2012, 4, 5, 12, 13, 14), EndDate = new DateTime(2011, 2, 3), EndTime = new DateTime(2011, 4, 5, 1, 2, 3), Outcome = 2, Intensity = 3, RelationshipToInvestigationalDrug = 4 }; var aFormData = CreateEmptyAdverseEventFormData(); //Act formController.MapAdverseEventViewModelToFormData(aViewModel, aFormData); //Assert Assert.That(aFormData.AdverseExperience.Value, Is.EqualTo("Broken arm")); Assert.That(aFormData.OnsetDate.Value, Is.EqualTo(new DateTime(2012, 3, 4).ToString(CultureInfo.InvariantCulture))); Assert.That(aFormData.OnsetTime.Value, Is.EqualTo(new DateTime(2012, 4, 5, 12, 13, 14).ToString(CultureInfo.InvariantCulture))); Assert.That(aFormData.EndDate.Value, Is.EqualTo(new DateTime(2011, 2, 3).ToString(CultureInfo.InvariantCulture))); Assert.That(aFormData.EndTime.Value, Is.EqualTo(new DateTime(2011, 4, 5, 1, 2, 3).ToString(CultureInfo.InvariantCulture))); Assert.That(aFormData.Outcome.Value, Is.EqualTo("2")); Assert.That(aFormData.Intensity.Value, Is.EqualTo("3")); Assert.That(aFormData.RelationshipToInvestigationalDrug.Value, Is.EqualTo("4")); }
public void PostEditAdverseEventFormData_NonExistingForm_Test() { //Arrange var model = new AdverseEventFormViewModel { Id = 12, FormId = 13, OnsetDate = new DateTime(2010, 1, 2), OnsetTime = new DateTime(2011, 1, 1, 5, 4, 3), EndDate = new DateTime(2011, 11, 12), EndTime = new DateTime(2012, 1, 1, 14, 15, 16), Intensity = 4, Outcome = 5, RelationshipToInvestigationalDrug = 6 }; fRep.Setup(r => r.GetByKey(13)).Returns((Form) null); //Act var result = formController.EditAdverseEventForm(model); //Assert CheckErrorInfoViewResult(result); }
public void PostEditAdverseEventFormData_ChangedValues_IncompleteForm_Test() { //Arrange EmulateControllerContext(formController, false); var form = new Form { Id = 13, FormState = FormState.Incomplete, Caption = "TestForm", Visit = new Visit { Caption = "TestVisit", Patient = new Patient { PatientNumber = 123 } } }; var formData = new AdverseEventFormData { Id = 12, Form = form, OnsetDate = new Question() { Id = 101, Value = new DateTime(2011, 10, 11).ToString(CultureInfo.InvariantCulture) }, OnsetTime = new Question() { Id = 102, Value = new DateTime(2010, 11, 12, 12, 13, 14).ToString(CultureInfo.InvariantCulture) }, EndDate = new Question() { Id = 103, Value = new DateTime(2012, 1, 2).ToString(CultureInfo.InvariantCulture) }, EndTime = new Question() { Id = 104, Value = new DateTime(2011, 9, 3, 3, 4, 5).ToString(CultureInfo.InvariantCulture) }, AdverseExperience = new Question() { Id = 105, Value = "Broken neck" }, Intensity = new Question() { Id = 106, Value = "1" }, Outcome = new Question() { Id = 107, Value = "2" }, RelationshipToInvestigationalDrug = new Question() { Id = 108, Value = "3" } }; var incomingModel = new AdverseEventFormViewModel { Id = 12, FormId = 13, OnsetDate = new DateTime(2010, 1, 2), OnsetTime = new DateTime(2011, 1, 1, 5, 4, 3), EndDate = new DateTime(2011, 11, 12), EndTime = new DateTime(2012, 1, 1, 14, 15, 16), Intensity = 4, Outcome = 5, RelationshipToInvestigationalDrug = 6 }; bool isValid = true; Mock<IHtmlEditorAdapter> htmlHelper = new Mock<IHtmlEditorAdapter>(); htmlHelper.Setup(hh => hh.GetActiveView(It.IsAny<string>())).Returns(null); htmlHelper.Setup(hh => hh.GetHtmlView(It.IsAny<string>(), It.IsAny<ASPxHtmlEditorHtmlEditingSettings>(), It.IsAny<HtmlEditorValidationSettings>(), It.IsAny<EventHandler<HtmlEditorValidationEventArgs>>(), out isValid)).Returns("Broken brain"); formController.HtmlEditorAdapter = htmlHelper.Object; fRep.Setup(r => r.GetByKey(incomingModel.FormId)).Returns(form); //here we return "formdata before editing" - this data should be overwritten from model afdRep.Setup(r => r.GetByKey(incomingModel.Id)).Returns(formData); //as checking of saved formdata is quite complicated, we will save the passed object and inspect it later AdverseEventFormData savedFormData = null; afdRep.Setup(r => r.Edit(It.IsAny<AdverseEventFormData>())).Callback<AdverseEventFormData>(fd => savedFormData = fd); Form savedForm = null; fRep.Setup(r => r.Edit(It.IsAny<Form>())).Callback<Form>(f => savedForm = f); //Act var result = formController.EditAdverseEventForm(incomingModel); //Assert CheckEditFormDataRedirectRouteValues(result, form); afdRep.Verify(r => r.GetByKey(incomingModel.Id), Times.Once()); afdRep.Verify(r => r.Edit(It.IsAny<AdverseEventFormData>()), Times.Once()); afdRep.Verify(r => r.Save(), Times.Once()); fRep.Verify(r => r.GetByKey(incomingModel.FormId), Times.Once()); fRep.Verify(r => r.Edit(It.IsAny<Form>()), Times.Once()); fRep.Verify(r => r.Save(), Times.Once()); Assert.That(savedFormData, Is.Not.Null); Assert.That(savedFormData.Id, Is.EqualTo(incomingModel.Id)); Assert.That(savedFormData.OnsetDate.Value, Is.EqualTo(new DateTime(2010, 1, 2).ToString(CultureInfo.InvariantCulture))); Assert.That(savedFormData.OnsetTime.Value, Is.EqualTo(new DateTime(2011, 1, 1, 5, 4, 3).ToString(CultureInfo.InvariantCulture))); Assert.That(savedFormData.EndDate.Value, Is.EqualTo(new DateTime(2011, 11, 12).ToString(CultureInfo.InvariantCulture))); Assert.That(savedFormData.EndTime.Value, Is.EqualTo(new DateTime(2012, 1, 1, 14, 15, 16).ToString(CultureInfo.InvariantCulture))); Assert.That(savedFormData.AdverseExperience.Value, Is.EqualTo("Broken brain")); Assert.That(savedFormData.Intensity.Value, Is.EqualTo("4")); Assert.That(savedFormData.Outcome.Value, Is.EqualTo("5")); Assert.That(savedFormData.RelationshipToInvestigationalDrug.Value, Is.EqualTo("6")); Assert.That(savedForm, Is.Not.Null); Assert.That(savedForm.Id, Is.EqualTo(incomingModel.FormId)); Assert.That(savedForm.FormState, Is.EqualTo(FormState.Completed)); }
public void PostEditAdverseEventFormData_NonExistingFormData_Test() { //Arrange var form = new Form { Id = 13, FormState = FormState.Incomplete }; var model = new AdverseEventFormViewModel { Id = 12, FormId = 13, OnsetDate = new DateTime(2010, 1, 2), OnsetTime = new DateTime(2011, 1, 1, 5, 4, 3), EndDate = new DateTime(2011, 11, 12), EndTime = new DateTime(2012, 1, 1, 14, 15, 16), Intensity = 4, Outcome = 5, RelationshipToInvestigationalDrug = 6 }; fRep.Setup(r => r.GetByKey(13)).Returns(form); //here we return "formdata before editing" - this data should be overwritten from model afdRep.Setup(r => r.GetByKey(12)).Returns((AdverseEventFormData) null); //Act var result = formController.EditAdverseEventForm(model); //Assert CheckErrorInfoViewResult(result); }
public void PostEditAdverseEventFormData_ChangedUnconfirmedValues_Test() { //Arrange EmulateControllerContext(formController, false); var form = new Form { Id = 13, FormState = FormState.Completed, Caption = "TestForm", Visit = new Visit { Caption = "TestVisit", Patient = new Patient { PatientNumber = 123 } } }; var formData = new AdverseEventFormData { Id = 12, Form = form, OnsetDate = new Question() { Id = 101, Value = new DateTime(2011, 10, 11).ToString(CultureInfo.InvariantCulture) }, OnsetTime = new Question() { Id = 102, Value = new DateTime(2010, 11, 12, 12, 13, 14).ToString(CultureInfo.InvariantCulture) }, EndDate = new Question() { Id = 103, Value = new DateTime(2012, 1, 2).ToString(CultureInfo.InvariantCulture) }, EndTime = new Question() { Id = 104, Value = new DateTime(2011, 9, 3, 3, 4, 5).ToString(CultureInfo.InvariantCulture) }, AdverseExperience = new Question() { Id = 105, Value = "Broken neck" }, Intensity = new Question() { Id = 106, Value = "1" }, Outcome = new Question() { Id = 107, Value = "2" }, RelationshipToInvestigationalDrug = new Question() { Id = 108, Value = "3" } }; var incomingModel = new AdverseEventFormViewModel { Id = 12, FormId = 13, OnsetDate = new DateTime(2010, 1, 2), OnsetTime = new DateTime(2011, 1, 1, 5, 4, 3), EndDate = new DateTime(2011, 11, 12), EndTime = new DateTime(2012, 1, 1, 14, 15, 16), Intensity = 2, Outcome = 1, RelationshipToInvestigationalDrug = 2 }; bool isValid = true; Mock<IHtmlEditorAdapter> htmlHelper = new Mock<IHtmlEditorAdapter>(); htmlHelper.Setup(hh => hh.GetActiveView(It.IsAny<string>())).Returns(null); htmlHelper.Setup(hh => hh.GetHtmlView(It.IsAny<string>(), It.IsAny<ASPxHtmlEditorHtmlEditingSettings>(), It.IsAny<HtmlEditorValidationSettings>(), It.IsAny<EventHandler<HtmlEditorValidationEventArgs>>(), out isValid)).Returns("Broken brain"); formController.HtmlEditorAdapter = htmlHelper.Object; fRep.Setup(r => r.GetByKey(incomingModel.FormId)).Returns(form); //here we return "formdata before editing" - this data should not be overwritten from model as no any data change note provided afdRep.Setup(r => r.GetByKey(incomingModel.Id)).Returns(formData); //Act var result = formController.EditAdverseEventForm(incomingModel); //Assert afdRep.Verify(r => r.GetByKey(incomingModel.Id), Times.Once()); afdRep.Verify(r => r.Edit(It.IsAny<AdverseEventFormData>()), Times.Never()); afdRep.Verify(r => r.Save(), Times.Never()); fRep.Verify(r => r.GetByKey(incomingModel.FormId), Times.Once()); fRep.Verify(r => r.Edit(It.IsAny<Form>()), Times.Never()); fRep.Verify(r => r.Save(), Times.Never()); Assert.That(result, Is.Not.Null); Assert.That(result is ViewResultBase); var viewResultBase = result as ViewResultBase; Assert.That(viewResultBase.Model, Is.Not.Null); AdverseEventFormViewModel model = viewResultBase.Model as AdverseEventFormViewModel; Assert.That(model, Is.Not.Null); Assert.That(model.DataChangeReasonRequired); Assert.That(model.ChangeInfos, Is.Not.Null); Assert.That(model.ChangeInfos.Count, Is.EqualTo(8)); AssertChangeInfo(formData.OnsetDate, DateTime.Parse(formData.OnsetDate.Value).ToShortDateString(), incomingModel.OnsetDate.Value.ToShortDateString(), model); AssertChangeInfo(formData.OnsetTime, "12:13 PM", "5:04 AM", model); AssertChangeInfo(formData.EndDate, DateTime.Parse(formData.EndDate.Value).ToShortDateString(), incomingModel.EndDate.Value.ToShortDateString(), model); AssertChangeInfo(formData.EndTime, "3:04 AM", "2:15 PM", model); AssertChangeInfo(formData.AdverseExperience, "Broken neck", "Broken brain", model); AssertChangeInfo(formData.Intensity, "Mild", "Moderate", model); AssertChangeInfo(formData.Outcome, "Ongoing", "Resolved", model); AssertChangeInfo(formData.RelationshipToInvestigationalDrug, "Suspected (reasonably possible)", "Unlikely", model); }