public void MappingTest() { //Arrange var dataStorage = new Mock<IDataStorage>(); var entity = new VitalsFormData() { Id = 1, ActualTime = new Question {Id = 2, Value = "2"}, HeartRate = new Question {Id = 3, Value = "3"}, Height = new Question {Id = 4, Value = "4"}, Weight = new Question {Id = 5, Value = "5"}, Temperature = new Question {Id = 6, Value = "6"}, BloodPressureDiastolic = new Question {Id = 7, Value = "7"}, BloodPressureSystolic = new Question {Id = 8, Value = "8"} }; var updatedEntity = new VitalsFormData() { Id = 1, ActualTime = new Question {Id = 3, Value = "3"}, HeartRate = new Question {Id = 4, Value = "4"}, Height = new Question {Id = 5, Value = "5"}, Weight = new Question {Id = 6, Value = "6"}, Temperature = new Question {Id = 7, Value = "7"}, BloodPressureDiastolic = new Question {Id = 8, Value = "8"}, BloodPressureSystolic = new Question {Id = 9, Value = "9"} }; var repository = new VitalsFormDataRepository(dataStorage.Object); dataStorage.Setup(ds => ds.GetData<VitalsFormData>()).Returns(new List<VitalsFormData> {entity}); //Act repository.Edit(updatedEntity); //Assert //Values are equal Assert.That(entity.ActualTime.Value, Is.EqualTo(updatedEntity.ActualTime.Value)); Assert.That(entity.HeartRate.Value, Is.EqualTo(updatedEntity.HeartRate.Value)); Assert.That(entity.Height.Value, Is.EqualTo(updatedEntity.Height.Value)); Assert.That(entity.Weight.Value, Is.EqualTo(updatedEntity.Weight.Value)); Assert.That(entity.Temperature.Value, Is.EqualTo(updatedEntity.Temperature.Value)); Assert.That(entity.BloodPressureDiastolic.Value, Is.EqualTo(updatedEntity.BloodPressureDiastolic.Value)); Assert.That(entity.BloodPressureSystolic.Value, Is.EqualTo(updatedEntity.BloodPressureSystolic.Value)); //Objects are not equal Assert.That(entity.ActualTime, Is.Not.EqualTo(updatedEntity.ActualTime)); Assert.That(entity.HeartRate, Is.Not.EqualTo(updatedEntity.HeartRate)); Assert.That(entity.Height, Is.Not.EqualTo(updatedEntity.Height)); Assert.That(entity.Weight, Is.Not.EqualTo(updatedEntity.Weight)); Assert.That(entity.Temperature, Is.Not.EqualTo(updatedEntity.Temperature)); Assert.That(entity.BloodPressureDiastolic, Is.Not.EqualTo(updatedEntity.BloodPressureDiastolic)); Assert.That(entity.BloodPressureSystolic, Is.Not.EqualTo(updatedEntity.BloodPressureSystolic)); }
private void FillVitalsBasedOnPreviousVisit(VitalsFormData vitalsOriginalFormData, VitalsFormData vitalsFormData, Form vitalsForm) { vitalsForm.FormState = FormState.Completed; vitalsFormData.Height.Value = vitalsOriginalFormData.Height.Value; double weight = double.Parse(vitalsOriginalFormData.Weight.Value); weight = Math.Round(weight + randomGenerator.NextDouble()*3 - 1.5d, 1); vitalsFormData.Weight.Value = weight.ToString(); vitalsFormData.BloodPressureDiastolic.Value = vitalsOriginalFormData.BloodPressureDiastolic.Value; vitalsFormData.BloodPressureSystolic.Value = vitalsOriginalFormData.BloodPressureSystolic.Value; var temperature = GetRandomTemperature(); vitalsFormData.Temperature.Value = temperature.ToString(); var heartRate = GetRandomHeartRate(); vitalsFormData.HeartRate.Value = heartRate.ToString(); }
public void VitalsFormDataToViewModel_FullData() { //Arrange var vFormData = new VitalsFormData { Id = 2, Form = new Form { Id = 12, Caption = "Form12", FormState = FormState.Completed, Visit = new Visit {Caption = "Visit12", Patient = new Patient {PatientNumber = 120}} }, ActualTime = new Question { Id = 2, DataType = QuestionDataType.Date, Value = new DateTime(2012, 1, 1, 10, 11, 12).ToString( CultureInfo.InvariantCulture) }, Height = new Question {Id = 3, DataType = QuestionDataType.Number, Value = "177"}, Weight = new Question {Id = 4, DataType = QuestionDataType.Number, Value = "90"}, Temperature = new Question { Id = 5, DataType = QuestionDataType.Number, Value = (36.6m).ToString(CultureInfo.InvariantCulture) }, HeartRate = new Question {Id = 6, DataType = QuestionDataType.Integer, Value = "66"}, BloodPressureSystolic = new Question {Id = 7, DataType = QuestionDataType.String, Value = "120"}, BloodPressureDiastolic = new Question {Id = 8, DataType = QuestionDataType.String, Value = "70"} }; //Act var vitals = formController.MapVitalsFormDataToViewModel(vFormData); //Assert Assert.That(vitals.FormId, Is.EqualTo(12)); Assert.That(vitals.FormCaption, Is.EqualTo("Form12")); Assert.That(vitals.IsCompleted, Is.True); Assert.That(vitals.VisitName, Is.EqualTo("Visit12")); Assert.That(vitals.PatientNumber, Is.EqualTo(120)); Assert.That(vitals.Id, Is.EqualTo(2)); Assert.That(vitals.ActualTime, Is.Not.Null); Assert.That(vitals.ActualTime.Value.ToLongTimeString(), Is.EqualTo(new DateTime(1980, 1, 1, 10, 11, 12).ToLongTimeString())); Assert.That(vitals.Height, Is.EqualTo(177)); Assert.That(vitals.Weight, Is.EqualTo(90)); Assert.That(vitals.Temperature, Is.EqualTo(36.6m)); Assert.That(vitals.HeartRate, Is.EqualTo(66)); Assert.That(vitals.BloodPressureSystolic, Is.EqualTo("120")); Assert.That(vitals.BloodPressureDiastolic, Is.EqualTo("70")); Assert.That(vitals.ActualTimeQuestionId, Is.EqualTo(vFormData.ActualTime.Id)); Assert.That(vitals.HeightQuestionId, Is.EqualTo(vFormData.Height.Id)); Assert.That(vitals.WeightQuestionId, Is.EqualTo(vFormData.Weight.Id)); Assert.That(vitals.TemperatureQuestionId, Is.EqualTo(vFormData.Temperature.Id)); Assert.That(vitals.HeartRateQuestionId, Is.EqualTo(vFormData.HeartRate.Id)); Assert.That(vitals.BloodPressureSystolicQuestionId, Is.EqualTo(vFormData.BloodPressureSystolic.Id)); Assert.That(vitals.BloodPressureDiastolicQuestionId, Is.EqualTo(vFormData.BloodPressureDiastolic.Id)); }
public void PostEditVitalsFormData_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 VitalsFormData { Id = 12, Form = form, ActualTime = new Question() { Id = 100, Value = new DateTime(2011, 10, 11, 12, 13, 14).ToString(CultureInfo.InvariantCulture) }, Height = new Question() { Id = 101, Value = "170" }, Weight = new Question() { Id = 102, Value = "50" }, HeartRate = new Question() { Id = 103, Value = "20" }, Temperature = new Question() { Id = 104, Value = "30" }, BloodPressureSystolic = new Question() { Id = 105, Value = "120" }, BloodPressureDiastolic = new Question() { Id = 106, Value = "70" } }; var incomingModel = new VitalsFormViewModel { Id = 12, FormId = 13, ActualTime = new DateTime(2012, 10, 11, 15, 16, 17), Height = 171, Weight = 51, HeartRate = 21, Temperature = 31, BloodPressureSystolic = "121", BloodPressureDiastolic = "71" }; fRep.Setup(r => r.GetByKey(incomingModel.FormId)).Returns(form); //here we return "formdata before editing" - this data should be overwritten from model vfdRep.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 VitalsFormData savedFormData = null; vfdRep.Setup(r => r.Edit(It.IsAny<VitalsFormData>())).Callback<VitalsFormData>(fd => savedFormData = fd); Form savedForm = null; fRep.Setup(r => r.Edit(It.IsAny<Form>())).Callback<Form>(f => savedForm = f); //Act var result = formController.EditVitalsForm(incomingModel); //Assert CheckEditFormDataRedirectRouteValues(result, form); vfdRep.Verify(r => r.GetByKey(incomingModel.Id), Times.Once()); vfdRep.Verify(r => r.Edit(It.IsAny<VitalsFormData>()), Times.Once()); vfdRep.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.ActualTime.Value, Is.EqualTo(new DateTime(2012, 10, 11, 15, 16, 17).ToString(CultureInfo.InvariantCulture))); Assert.That(savedFormData.Height.Value, Is.EqualTo("171")); Assert.That(savedFormData.Weight.Value, Is.EqualTo("51")); Assert.That(savedFormData.HeartRate.Value, Is.EqualTo("21")); Assert.That(savedFormData.Temperature.Value, Is.EqualTo("31")); Assert.That(savedFormData.BloodPressureSystolic.Value, Is.EqualTo("121")); Assert.That(savedFormData.BloodPressureDiastolic.Value, Is.EqualTo("71")); Assert.That(savedForm, Is.Not.Null); Assert.That(savedForm.Id, Is.EqualTo(incomingModel.FormId)); Assert.That(savedForm.FormState, Is.EqualTo(FormState.Completed)); }
public void PostEditVitalsFormData_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 VitalsFormData { Id = 12, Form = form, ActualTime = new Question() { Id = 100, Value = new DateTime(2011, 10, 11, 12, 13, 14).ToString(CultureInfo.InvariantCulture) }, Height = new Question() { Id = 101, Value = "170" }, Weight = new Question() { Id = 102, Value = "50" }, HeartRate = new Question() { Id = 103, Value = "20" }, Temperature = new Question() { Id = 104, Value = "30" }, BloodPressureSystolic = new Question() { Id = 105, Value = "120" }, BloodPressureDiastolic = new Question() { Id = 106, Value = "70" } }; var incomingModel = new VitalsFormViewModel { Id = 12, FormId = 13, ActualTime = new DateTime(2012, 10, 11, 15, 16, 17), Height = 171, Weight = 51, HeartRate = 21, Temperature = 31, BloodPressureSystolic = "121", BloodPressureDiastolic = "71" }; 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 vfdRep.Setup(r => r.GetByKey(incomingModel.Id)).Returns(formData); //Act var result = formController.EditVitalsForm(incomingModel); //Assert vfdRep.Verify(r => r.GetByKey(incomingModel.Id), Times.Once()); vfdRep.Verify(r => r.Edit(It.IsAny<VitalsFormData>()), Times.Never()); vfdRep.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); VitalsFormViewModel model = viewResultBase.Model as VitalsFormViewModel; Assert.That(model, Is.Not.Null); Assert.That(model.DataChangeReasonRequired); Assert.That(model.ChangeInfos, Is.Not.Null); Assert.That(model.ChangeInfos.Count, Is.EqualTo(7)); AssertChangeInfo(formData.Height, "170", "171", model); AssertChangeInfo(formData.Weight, "50", "51", model); AssertChangeInfo(formData.HeartRate, "20", "21", model); AssertChangeInfo(formData.Temperature, "30", "31", model); AssertChangeInfo(formData.BloodPressureSystolic, "120", "121", model); AssertChangeInfo(formData.BloodPressureDiastolic, "70", "71", model); AssertChangeInfo(formData.ActualTime, "12:13 PM", "3:16 PM", model); }
private VitalsFormData AddVitalsFormData(Form form) { var formData = new VitalsFormData() { Form = form, ActualTime = new Question { Caption = "Actual Time", DataType = QuestionDataType.Date, Form = form }, Height = new Question { Caption = "Height", DataType = QuestionDataType.Number, Form = form }, Weight = new Question { Caption = "Weight", DataType = QuestionDataType.Number, Form = form }, Temperature = new Question { Caption = "Temperature", DataType = QuestionDataType.Number, Form = form }, HeartRate = new Question { Caption = "Heart Rate", DataType = QuestionDataType.Integer, Form = form }, BloodPressureSystolic = new Question { Caption = "Systolic Blood Pressure, mmHg", DataType = QuestionDataType.String, Form = form }, BloodPressureDiastolic = new Question { Caption = "Diastolic Blood Pressure, mmHg", DataType = QuestionDataType.String, Form = form } }; VitalsFormDataRepository.Add(formData); QuestionRepository.Add(formData.ActualTime); QuestionRepository.Add(formData.Height); QuestionRepository.Add(formData.Weight); QuestionRepository.Add(formData.Temperature); QuestionRepository.Add(formData.HeartRate); QuestionRepository.Add(formData.BloodPressureSystolic); QuestionRepository.Add(formData.BloodPressureDiastolic); return formData; }