public void DemographicViewModelToFormData_FullData() { //Arrange var dViewModel = new DemographicFormViewModel { Id = 1, DateOfBirth = new DateTime(1978, 2, 3), Other = "Some description - updated", Race = 2, Sex = 3 }; var dFormData = CreateEmptyDemographicFormData(); //Act formController.MapDemographicViewModelToFormData(dViewModel, dFormData); //Assert Assert.That(dFormData.DateOfBirth.Value, Is.EqualTo(new DateTime(1978, 2, 3).ToString(CultureInfo.InvariantCulture))); Assert.That(dFormData.Other.Value, Is.EqualTo("Some description - updated")); Assert.That(dFormData.Race.Value, Is.EqualTo("2")); Assert.That(dFormData.Sex.Value, Is.EqualTo("3")); }
public void PostEditDemographicFormData_NonExistingForm_Test() { //Arrange var model = new DemographicFormViewModel { Id = 12, FormId = 13, DateOfBirth = new DateTime(2012, 1, 24), Race = 1, Sex = 2, Other = "Some text" }; fRep.Setup(r => r.GetByKey(13)).Returns((Form) null); //Act var result = formController.EditDemographicForm(model); //Assert CheckErrorInfoViewResult(result); }
public void PostEditDemographicFormData_NonExistingFormData_Test() { //Arrange var form = new Form { Id = 13, FormState = FormState.Incomplete }; var model = new DemographicFormViewModel { Id = 12, FormId = 13, DateOfBirth = new DateTime(2012, 1, 24), Race = 1, Sex = 2, Other = "Some text" }; fRep.Setup(r => r.GetByKey(13)).Returns(form); //here we return "formdata before editing" - this data should be overwritten from model dfdRep.Setup(r => r.GetByKey(12)).Returns((DemographicFormData) null); //Act var result = formController.EditDemographicForm(model); //Assert CheckErrorInfoViewResult(result); }
public void PostEditDemographicFormData_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 DemographicFormData { Id = 12, Form = form, DateOfBirth = new Question() { Value = new DateTime(2011, 10, 11).ToString(CultureInfo.InvariantCulture) }, Other = new Question() { Value = String.Empty }, Race = new Question() { Value = "4" }, Sex = new Question() { Value = "2" } }; var model = new DemographicFormViewModel { Id = 12, FormId = 13, DateOfBirth = new DateTime(2012, 1, 24), Race = 3, Sex = 1, Other = "Some text" }; fRep.Setup(r => r.GetByKey(model.FormId)).Returns(form); //here we return "formdata before editing" - this data should be overwritten from model dfdRep.Setup(r => r.GetByKey(model.Id)).Returns(formData); //as checking of saved formdata is quite complicated, we will save the passed object and inspect it later DemographicFormData demogFormData = null; dfdRep.Setup(r => r.Edit(It.IsAny<DemographicFormData>())).Callback<DemographicFormData>(fd => demogFormData = fd); Form demogForm = null; fRep.Setup(r => r.Edit(It.IsAny<Form>())).Callback<Form>(f => demogForm = f); //Act var result = formController.EditDemographicForm(model); //Assert CheckEditFormDataRedirectRouteValues(result, form); dfdRep.Verify(r => r.GetByKey(model.Id), Times.Once()); dfdRep.Verify(r => r.Edit(It.IsAny<DemographicFormData>()), Times.Once()); dfdRep.Verify(r => r.Save(), Times.Once()); fRep.Verify(r => r.GetByKey(model.FormId), Times.Once()); fRep.Verify(r => r.Edit(It.IsAny<Form>()), Times.Once()); fRep.Verify(r => r.Save(), Times.Once()); Assert.That(demogFormData, Is.Not.Null); Assert.That(demogFormData.Id, Is.EqualTo(model.Id)); Assert.That(demogFormData.DateOfBirth.Value, Is.EqualTo(new DateTime(2012, 1, 24).ToString(CultureInfo.InvariantCulture))); Assert.That(demogFormData.Race.Value, Is.EqualTo("3")); Assert.That(demogFormData.Sex.Value, Is.EqualTo("1")); Assert.That(demogFormData.Other.Value, Is.EqualTo("Some text")); Assert.That(demogForm, Is.Not.Null); Assert.That(demogForm.Id, Is.EqualTo(model.FormId)); Assert.That(demogForm.FormState, Is.EqualTo(FormState.Completed)); }
public void PostEditDemographicFormData_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 DemographicFormData { Id = 12, Form = form, DateOfBirth = new Question() { Id = 14, Caption = "Date of Birth", Value = new DateTime(2011, 10, 11).ToString(CultureInfo.InvariantCulture)}, Other = new Question() { Id = 15, Caption = "Other", Value = String.Empty }, Race = new Question() { Id = 16, Caption = "Race", Value = "4" }, Sex = new Question() { Id = 17, Caption = "Sex", Value = "1" } }; var incomingModel = new DemographicFormViewModel { Id = 12, FormId = 13, DateOfBirth = new DateTime(2012, 1, 24), Race = 3, Sex = 0, Other = "Some text" }; 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 dfdRep.Setup(r => r.GetByKey(incomingModel.Id)).Returns(formData); //Act var result = formController.EditDemographicForm(incomingModel); //Assert dfdRep.Verify(r => r.GetByKey(incomingModel.Id), Times.Once()); dfdRep.Verify(r => r.Edit(It.IsAny<DemographicFormData>()), Times.Never()); dfdRep.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); DemographicFormViewModel model = viewResultBase.Model as DemographicFormViewModel; Assert.That(model, Is.Not.Null); Assert.That(model.DataChangeReasonRequired); Assert.That(model.ChangeInfos, Is.Not.Null); Assert.That(model.ChangeInfos.Count, Is.EqualTo(4)); AssertChangeInfo(formData.DateOfBirth, DateTime.Parse(formData.DateOfBirth.Value).ToShortDateString(), incomingModel.DateOfBirth.Value.ToShortDateString(), model); AssertChangeInfo(formData.Race, "American Indian", "Asian", model); AssertChangeInfo(formData.Sex, "Female", "Male", model); AssertChangeInfo(formData.Other, string.Empty, "Some text", model); }
public void PostEditDemographicFormData_ChangedConfirmedValues_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 DemographicFormData { Id = 12, Form = form, DateOfBirth = new Question() { Id = 14, Caption = "Date of Birth", Value = new DateTime(2011, 10, 11).ToString(CultureInfo.InvariantCulture) }, Other = new Question() { Id = 15, Caption = "Other", Value = String.Empty }, Race = new Question() { Id = 16, Caption = "Race", Value = "4" }, Sex = new Question() { Id = 17, Caption = "Sex", Value = "1" } }; var incomingModel = new DemographicFormViewModel { Id = 12, FormId = 13, DateOfBirth = new DateTime(2012, 1, 24), Race = 3, Sex = 0, Other = "Some text" }; incomingModel.ChangeInfos = new List<ChangeNoteViewModel> { new ChangeNoteViewModel{QuestionId = formData.DateOfBirth.Id, ChangeReason = "DateOfBirth Reason"}, new ChangeNoteViewModel{QuestionId = formData.Race.Id, ChangeReason = "Race Reason"}, new ChangeNoteViewModel{QuestionId = formData.Sex.Id, ChangeReason = "Sex Reason"}, new ChangeNoteViewModel{QuestionId = formData.Other.Id, ChangeReason = "Other Reason"}, }; 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 dfdRep.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 DemographicFormData demogFormData = null; dfdRep.Setup(r => r.Edit(It.IsAny<DemographicFormData>())).Callback<DemographicFormData>(fd => demogFormData = fd); //Act var result = formController.EditDemographicForm(incomingModel); //Assert CheckEditFormDataRedirectRouteValues(result, form); dfdRep.Verify(r => r.GetByKey(incomingModel.Id), Times.Once()); dfdRep.Verify(r => r.Edit(It.IsAny<DemographicFormData>()), Times.Once()); dfdRep.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(demogFormData, Is.Not.Null); Assert.That(demogFormData.Id, Is.EqualTo(incomingModel.Id)); Assert.That(demogFormData.DateOfBirth.Value, Is.EqualTo(new DateTime(2012, 1, 24).ToString(CultureInfo.InvariantCulture))); Assert.That(demogFormData.Race.Value, Is.EqualTo("3")); Assert.That(demogFormData.Sex.Value, Is.EqualTo("0")); Assert.That(demogFormData.Other.Value, Is.EqualTo("Some text")); changeNoteBuilder.Verify(b => b.CreateChangeNote(It.IsAny<Question>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(4)); }