public void MappingTest() { //Arrange var dataStorage = new Mock<IDataStorage>(); var entity = new Question { Id = 1, DataType = QuestionDataType.Integer, Value = "2", File = null }; var updatedEntity = new Question { Id = 1, DataType = QuestionDataType.Integer, Value = "3", File = new Attachment() }; var repository = new QuestionRepository(dataStorage.Object); dataStorage.Setup(ds => ds.GetData<Question>()).Returns(new List<Question> {entity}); //Act repository.Edit(updatedEntity); //Assert //Values are equal Assert.That(entity.DataType, Is.EqualTo(updatedEntity.DataType)); Assert.That(entity.Value, Is.EqualTo(updatedEntity.Value)); Assert.That(entity.File, Is.EqualTo(updatedEntity.File)); }
public void Map_DateQuestion_Correct() { //Arrange var question = new Question { Id = 11, DataType = QuestionDataType.Date, Value = "Tue, 19 Feb 1980 00:00:00 GMT" }; var model = new ChangeNoteViewModel { ChangeReason = "Hi", NewValue = "Thu, 04 Jan 1979 00:00:00 GMT", OriginalValue = "Tue, 19 Feb 1980 00:00:00 GMT", QuestionId = 11 }; //Act var result = builder.CreateChangeNote(question, model.OriginalValue, model.NewValue, model.ChangeReason); //Assert Assert.That(result, Is.Not.Null); Assert.That(result.Question, Is.EqualTo(question)); Assert.That(result.ChangeDate.Date, Is.EqualTo(DateTime.UtcNow.Date)); Assert.That(result.ChangeReason, Is.EqualTo(model.ChangeReason)); Assert.That(result.OriginalValue, Is.EqualTo(new DateTime(1980, 2, 19).ToString(CultureInfo.InvariantCulture))); Assert.That(result.NewValue, Is.EqualTo(new DateTime(1979, 1, 4).ToString(CultureInfo.InvariantCulture))); }
public void GetOpenQueries() { //Arrange var dataStorage = new Mock<IDataStorage>(); var clinic = new Clinic {Caption = "Clinic1"}; var doctor1 = new User {FirstName = "DoctorFirst1", LastName = "DoctorLast1", Clinic = clinic}; var doctor2 = new User {FirstName = "DoctorFirst2", LastName = "DoctorLast2", Clinic = clinic}; var patient1 = new Patient {PatientNumber = 11, Doctor = doctor1}; var patient2 = new Patient {PatientNumber = 12, Doctor = doctor2}; var visit1 = new Visit {Caption = "Visit1", Patient = patient1}; var visit2 = new Visit {Caption = "Visit2", Patient = patient2}; var form1 = new Form {FormType = FormType.Happiness, Visit = visit1}; var form2 = new Form {FormType = FormType.Demographics, Visit = visit2}; var question1 = new Question {Form = form1}; var question2 = new Question {Form = form2}; var query1 = new Query {Id = 1, QueryText = "Text1", Question = question1}; var query2 = new Query {Id = 2, QueryText = "Text2", AnswerText = "Answer1", Question = question2}; var repository = new QueryRepository(dataStorage.Object); dataStorage.Setup(ds => ds.GetData<Query>()).Returns(new List<Query> {query1, query2}); //Act var result = repository.GetOpenQueries(); //Assert Assert.That(result, Is.Not.Null); Assert.That(result.Count(), Is.EqualTo(1)); var query = result.ToList()[0]; Assert.That(query.FormType, Is.EqualTo(FormType.Happiness)); Assert.That(query.ClinicName, Is.EqualTo("Clinic1")); Assert.That(query.DoctorName, Is.EqualTo("DoctorLast1")); Assert.That(query.QuestionText, Is.EqualTo("Text1")); Assert.That(query.PatientNumber, Is.EqualTo(11)); Assert.That(query.VisitName, Is.EqualTo("Visit1")); }
public ChangeNote CreateChangeNote(Question question, string originalValue, string newValue, string changeReason) { var changeNote = new ChangeNote { Question = question, ChangeReason = changeReason, ChangeDate = DateTime.UtcNow }; switch (question.DataType) { case QuestionDataType.Date: case QuestionDataType.Time: DateTime newDate; if ( !DateTime.TryParse(newValue, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeUniversal, out newDate)) return null; DateTime originalDate; if ( !DateTime.TryParse(originalValue, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeUniversal, out originalDate)) return null; changeNote.NewValue = newDate.ToString(CultureInfo.InvariantCulture); changeNote.OriginalValue = originalDate.ToString(CultureInfo.InvariantCulture); break; case QuestionDataType.String: changeNote.NewValue = newValue; changeNote.OriginalValue = originalValue; break; case QuestionDataType.Integer: case QuestionDataType.Enum: int newInt; if (!int.TryParse(newValue, NumberStyles.Integer, CultureInfo.InvariantCulture, out newInt)) return null; int originalInt; if (!int.TryParse(originalValue, NumberStyles.Integer, CultureInfo.InvariantCulture, out originalInt)) return null; changeNote.NewValue = newInt.ToString(CultureInfo.InvariantCulture); changeNote.OriginalValue = originalInt.ToString(CultureInfo.InvariantCulture); break; case QuestionDataType.Number: decimal newNumber; if (!decimal.TryParse(newValue, NumberStyles.Number, CultureInfo.InvariantCulture, out newNumber)) return null; decimal originalNumber; if (!decimal.TryParse(originalValue, NumberStyles.Number, CultureInfo.InvariantCulture, out originalNumber)) return null; changeNote.NewValue = newNumber.ToString(CultureInfo.InvariantCulture); changeNote.OriginalValue = originalNumber.ToString(CultureInfo.InvariantCulture); break; } changeNoteRepository.Add(changeNote); changeNoteRepository.Save(); question.ChangeNotes.Add(changeNote); return changeNote; }
public void Map_DateQuestion_Incorrect() { //Arrange var question = new Question { Id = 11, DataType = QuestionDataType.Date, Value = "Tue, 19 Feb 1980 00:00:00 GMT" }; var model = new ChangeNoteViewModel { ChangeReason = "Hi", NewValue = "This is not a date", OriginalValue = "Tue, 19 Feb 1980 00:00:00 GMT", }; //Act var result = builder.CreateChangeNote(question, model.OriginalValue, model.NewValue, model.ChangeReason); //Assert Assert.That(result, Is.Null); }
public void Map_EnumQuestion_Correct() { //Arrange var question = new Question { Id = 11, DataType = QuestionDataType.Enum, Value = "1" }; var model = new ChangeNoteViewModel { ChangeReason = "Hi", NewValue = "2", OriginalValue = "1", QuestionId = 11 }; //Act ChangeNote result = builder.CreateChangeNote(question, model.OriginalValue, model.NewValue, model.ChangeReason); //Assert Assert.That(result, Is.Not.Null); Assert.That(result.Question, Is.EqualTo(question)); Assert.That(result.ChangeDate.Date, Is.EqualTo(DateTime.UtcNow.Date)); Assert.That(result.ChangeReason, Is.EqualTo(model.ChangeReason)); Assert.That(result.OriginalValue, Is.EqualTo("1")); Assert.That(result.NewValue, Is.EqualTo("2")); }
public void Map_TimeQuestion_Incorrect() { //Arrange var question = new Question { Id = 11, DataType = QuestionDataType.Time, Value = "Fri, 01 Jan 0100 11:05:00 GMT" }; var model = new ChangeNoteViewModel { ChangeReason = "Hi", NewValue = "This is not a time", OriginalValue = "Fri, 01 Jan 0100 11:05:00 GMT", QuestionId = 11 }; //Act var result = builder.CreateChangeNote(question, model.OriginalValue, model.NewValue, model.ChangeReason); //Assert Assert.That(result, Is.Null); }
public void Map_TimeQuestion_Correct() { //Arrange var question = new Question { Id = 11, DataType = QuestionDataType.Time, Value = "Fri, 01 Jan 0100 11:05:00 GMT" }; var model = new ChangeNoteViewModel { ChangeReason = "Hi", NewValue = "Fri, 01 Jan 0100 16:55:20 GMT", OriginalValue = "Fri, 01 Jan 0100 11:05:00 GMT", QuestionId = 11 }; //Act var result = builder.CreateChangeNote(question, model.OriginalValue, model.NewValue, model.ChangeReason); //Assert Assert.That(result, Is.Not.Null); Assert.That(result.Question, Is.EqualTo(question)); Assert.That(result.ChangeDate.Date, Is.EqualTo(DateTime.UtcNow.Date)); Assert.That(result.ChangeReason, Is.EqualTo(model.ChangeReason)); Assert.That(result.OriginalValue, Is.EqualTo(new DateTime(100, 1, 1, 11, 05, 0, DateTimeKind.Utc).ToString(CultureInfo.InvariantCulture))); Assert.That(result.NewValue, Is.EqualTo(new DateTime(100, 1, 1, 16, 55, 20, DateTimeKind.Utc).ToString(CultureInfo.InvariantCulture))); }
public void Map_NumberQuestion_Incorrect() { //Arrange var question = new Question { Id = 11, DataType = QuestionDataType.Number, Value = 3.5m.ToString(CultureInfo.InvariantCulture) }; var model = new ChangeNoteViewModel { ChangeReason = "Hi", NewValue = "This is incorrect number string", OriginalValue = 3.5m.ToString(CultureInfo.InvariantCulture), QuestionId = 11 }; //Act ChangeNote result = builder.CreateChangeNote(question, model.OriginalValue, model.NewValue, model.ChangeReason); //Assert Assert.That(result, Is.Null); }
public void Map_NumberQuestion_Correct() { //Arrange var question = new Question { Id = 11, DataType = QuestionDataType.Number, Value = 3.5m.ToString(CultureInfo.InvariantCulture) }; var model = new ChangeNoteViewModel { ChangeReason = "Hi", NewValue = 4.84m.ToString(CultureInfo.InvariantCulture), OriginalValue = 3.5m.ToString(CultureInfo.InvariantCulture), QuestionId = 11 }; //Act var result = builder.CreateChangeNote(question, model.OriginalValue, model.NewValue, model.ChangeReason); //Assert Assert.That(result, Is.Not.Null); Assert.That(result.Question, Is.EqualTo(question)); Assert.That(result.ChangeDate.Date, Is.EqualTo(DateTime.UtcNow.Date)); Assert.That(result.ChangeReason, Is.EqualTo(model.ChangeReason)); Assert.That(result.OriginalValue, Is.EqualTo(3.5m.ToString(CultureInfo.InvariantCulture))); Assert.That(result.NewValue, Is.EqualTo(4.84m.ToString(CultureInfo.InvariantCulture))); }
public void Map_IntegerQuestion_Incorrect() { //Arrange var question = new Question { Id = 11, DataType = QuestionDataType.Integer, Value = "135" }; var model = new ChangeNoteViewModel { ChangeReason = "Hi", NewValue = "This is incorrect integer string", OriginalValue = "135", QuestionId = 11 }; //Act var result = builder.CreateChangeNote(question, model.OriginalValue, model.NewValue, model.ChangeReason); //Assert Assert.That(result, Is.Null); }
private void PrepareQueriesReportData() { supervisor1000 = new User {Id = 1000, FirstName = "First1000", LastName = "Last1000"}; supervisor2000 = new User {Id = 2000, FirstName = "First2000", LastName = "Last2000"}; doctor1 = new User {Id = 1, FirstName = "First1", LastName = "Last1"}; doctor2 = new User {Id = 2, FirstName = "First2", LastName = "Last2"}; doctor3 = new User {Id = 3, FirstName = "First3", LastName = "Last3"}; form11 = new Form {Id = 11, Caption = "CRF11"}; form12 = new Form {Id = 12, Caption = "CRF12"}; form13 = new Form {Id = 13, Caption = "CRF13"}; form21 = new Form {Id = 21, Caption = "CRF21"}; form22 = new Form {Id = 22, Caption = "CRF22"}; form31 = new Form {Id = 31, Caption = "CRF31"}; form32 = new Form {Id = 32, Caption = "CRF32"}; form33 = new Form {Id = 33, Caption = "CRF33"}; form34 = new Form {Id = 34, Caption = "CRF34"}; form35 = new Form {Id = 35, Caption = "CRF35"}; question111 = new Question {Id = 111, Caption = "Question111", Form = form11}; question121 = new Question {Id = 121, Caption = "Question121", Form = form12}; question122 = new Question {Id = 122, Caption = "Question122", Form = form12}; question211 = new Question {Id = 211, Caption = "Question211", Form = form21}; question212 = new Question {Id = 212, Caption = "Question212", Form = form21}; question213 = new Question {Id = 213, Caption = "Question213", Form = form21}; question311 = new Question {Id = 311, Caption = "Question311", Form = form31}; question321 = new Question {Id = 321, Caption = "Question321", Form = form32}; question331 = new Question {Id = 331, Caption = "Question331", Form = form33}; question341 = new Question {Id = 341, Caption = "Question341", Form = form34}; question351 = new Question {Id = 351, Caption = "Question351", Form = form35}; query1110 = new Query { Id = 1110, Question = question111, QueryAuthor = supervisor1000, QueryTime = DateTime.Today.AddDays(-1110), QueryText = "Query1110", AnswerAuthor = doctor1, AnswerText = "Reply1110", AnswerTime = DateTime.Today.AddDays(1110)}; query1210 = new Query { Id = 1210, Question = question121, QueryAuthor = supervisor2000, QueryTime = DateTime.Today.AddDays(-1210), QueryText = "Query1210", AnswerAuthor = doctor1, AnswerText = "Reply1210", AnswerTime = DateTime.Today.AddDays(1210) }; query1220 = new Query { Id = 1220, Question = question122, QueryAuthor = supervisor1000, QueryTime = DateTime.Today.AddDays(-1220), QueryText = "Query1220", AnswerAuthor = doctor1, AnswerText = "Reply1220", AnswerTime = DateTime.Today.AddDays(1220) }; query2110 = new Query { Id = 2110, Question = question211, QueryAuthor = supervisor2000, QueryTime = DateTime.Today.AddDays(-2110), QueryText = "Query2110", AnswerAuthor = doctor2, AnswerText = "Reply2110", AnswerTime = DateTime.Today.AddDays(2110) }; query2120 = new Query { Id = 2120, Question = question212, QueryAuthor = supervisor1000, QueryTime = DateTime.Today.AddDays(-2120), QueryText = "Query2120", AnswerAuthor = doctor2, AnswerText = "Reply2120", AnswerTime = DateTime.Today.AddDays(2120) }; query2130 = new Query { Id = 2130, Question = question213, QueryAuthor = supervisor2000, QueryTime = DateTime.Today.AddDays(-2130), QueryText = "Query2130", AnswerAuthor = doctor2, AnswerText = "Reply2130", AnswerTime = DateTime.Today.AddDays(2130) }; query3110 = new Query { Id = 3110, Question = question311, QueryAuthor = supervisor1000, QueryTime = DateTime.Today.AddDays(-3110), QueryText = "Query3110"}; query3210 = new Query { Id = 3210, Question = question321, QueryAuthor = supervisor2000, QueryTime = DateTime.Today.AddDays(-3210), QueryText = "Query3210"}; query3310 = new Query { Id = 3310, Question = question331, QueryAuthor = supervisor1000, QueryTime = DateTime.Today.AddDays(-3310), QueryText = "Query3310"}; query3410 = new Query { Id = 3410, Question = question341, QueryAuthor = supervisor2000, QueryTime = DateTime.Today.AddDays(-3410), QueryText = "Query3410"}; query3510 = new Query { Id = 3510, Question = question351, QueryAuthor = supervisor1000, QueryTime = DateTime.Today.AddDays(-3510), QueryText = "Query3510"}; }
private void AssertChangeInfo(Question question, string oldDisplayValue, string newDisplayValue, BaseFormDataViewModel model) { AssertChangeInfo(question.Id, question.Caption, oldDisplayValue, newDisplayValue, model); }
public void CorrectModelMapping() { //Arrange var dataStorage = new Mock<IDataStorage>(); var repository = new QueryRepository(dataStorage.Object); var clinic = new Clinic {Caption = "Clinic"}; var doctor = new User {FirstName = "DoctorFirst", LastName = "DoctorLast", Clinic = clinic}; var patient = new Patient {Doctor = doctor}; var visit = new Visit {Caption = "Visit", Patient = patient}; var form1 = new Form {FormType = FormType.Happiness, Visit = visit}; var question1 = new Question {Caption = "QuestionCaption1", Form = form1}; var query1 = new Query {Id = 1, Question = question1}; var form2 = new Form {FormType = FormType.Inventory, Visit = visit}; var question2 = new Question {Caption = "QuestionCaption2", Form = form2}; var query2 = new Query {Id = 2, Question = question2, AnswerText = "Answer"}; dataStorage.Setup(ds => ds.GetData<Query>()).Returns(new List<Query> {query1, query2}); //Act var result = repository.GetQueriesReportData(); //Assert Assert.That(result, Is.Not.Null); Assert.That(result.Count(), Is.EqualTo(2)); var dto = result.ToList()[0]; Assert.That(dto.FormType, Is.EqualTo(FormType.Happiness)); Assert.That(dto.ClinicName, Is.EqualTo("Clinic")); Assert.That(dto.DoctorName, Is.EqualTo("DoctorFirst DoctorLast")); Assert.That(dto.QuestionName, Is.EqualTo("QuestionCaption1")); Assert.That(dto.IsOpen, Is.True); dto = result.ToList()[1]; Assert.That(dto.FormType, Is.EqualTo(FormType.Inventory)); Assert.That(dto.ClinicName, Is.EqualTo("Clinic")); Assert.That(dto.DoctorName, Is.EqualTo("DoctorFirst DoctorLast")); Assert.That(dto.QuestionName, Is.EqualTo("QuestionCaption2")); Assert.That(dto.IsOpen, Is.False); }