public void Given_new_answers_when_UpdateAnswers_then_new_answers_added_to_the_database() { // Given var newAnswer = new ChecklistAnswer() { Id = Guid.NewGuid(), ActionRequired = "the action required", AssignedTo = new BusinessSafe.Domain.Entities.Employee() {Id = Guid.NewGuid()} , EmployeeNotListed = "employee not listed", GuidanceNotes = "the guidance notes", SupportingEvidence = "the supporting evidence", Question = new Question() {Id = new Guid()} , Response = new QuestionResponse(){Id = Guid.NewGuid()} , Timescale = new Timescale(){ Id = 2L} }; var newAnswers = new List<ChecklistAnswer>() { newAnswer }; var checklist = new Checklist(); checklist.UpdateAnswers(newAnswers,new UserForAuditing()); // When Assert.That(checklist.Answers.Count, Is.EqualTo(1)); Assert.That(checklist.Answers.First().ActionRequired, Is.EqualTo(newAnswer.ActionRequired)); Assert.That(checklist.Answers.First().AssignedTo, Is.EqualTo(newAnswer.AssignedTo)); Assert.That(checklist.Answers.First().EmployeeNotListed, Is.EqualTo(newAnswer.EmployeeNotListed)); Assert.That(checklist.Answers.First().GuidanceNotes, Is.EqualTo(newAnswer.GuidanceNotes)); Assert.That(checklist.Answers.First().SupportingEvidence, Is.EqualTo(newAnswer.SupportingEvidence)); Assert.That(checklist.Answers.First().Question, Is.EqualTo(newAnswer.Question)); Assert.That(checklist.Answers.First().Response, Is.EqualTo(newAnswer.Response)); Assert.That(checklist.Answers.First().Timescale, Is.EqualTo(newAnswer.Timescale)); Assert.That(checklist.Answers.First().LastModifiedBy, Is.Not.Null); Assert.That(checklist.Answers.First().LastModifiedOn, Is.Not.Null); }
public void Setup() { ResourceUrl = string.Format("{0}{1}/", ApiBaseUrl, "Checklists"); _checklistRepository = ObjectFactory.GetInstance<ICheckListRepository>(); _questionRepository = ObjectFactory.GetInstance<IQuestionRepository>(); _questionResponseRepository = ObjectFactory.GetInstance<IQuestionResponseRepository>(); _userForAuditingRepository = ObjectFactory.GetInstance<IUserForAuditingRepository>(); //Creats a new checklist if does not exist. _checklist = _checklistRepository.GetById(ApiTestChecklistId); if (_checklist == null) { _checklist = new SC.Checklist() { Id = ApiTestChecklistId, ClientId = ApiTestClientId, SiteId = APiTestSiteId, CoveringLetterContent = ApiTestCoveringLetterContents, CreatedBy = _userForAuditingRepository.GetSystemUser(), CreatedOn = DateTime.Now, LastModifiedBy = _userForAuditingRepository.GetSystemUser(), LastModifiedOn = DateTime.Now }; var questions = _questionRepository.GetAll().Take(1).ToList(); //_checklist.UpdateQuestions(questions, new UserForAuditing()); foreach (var question in questions) { _checklist.Questions.Add(new ChecklistQuestion { Checklist = _checklist, Question = question, CreatedBy = _userForAuditingRepository.GetSystemUser(), CreatedOn = DateTime.Now, LastModifiedBy = _userForAuditingRepository.GetSystemUser(), LastModifiedOn = DateTime.Now }); } var response = questions.First().PossibleResponses .Where(r => r.ResponseType.Equals("Positive")) .Select( r => new SC.ChecklistAnswer() { SupportingEvidence = r.SupportingEvidence, ActionRequired = r.ActionRequired, Question = questions.First(), Response = r, CreatedBy = _userForAuditingRepository.GetSystemUser(), CreatedOn = DateTime.Now, LastModifiedBy = _userForAuditingRepository.GetSystemUser(), LastModifiedOn = DateTime.Now }) .ToList(); _checklist.UpdateAnswers(response, _userForAuditingRepository.GetSystemUser()); _checklistRepository.SaveOrUpdate(_checklist); } _totalNumberOfChecklistQuestions = _checklist.Questions.Count(); _totalNumberOfChecklistAnswers = _checklist.Answers.Count(); ObjectFactory.Container.GetInstance<IBusinessSafeSessionManager>().CloseSession(); }
public void given_checklist_when_copyWithResponses_with_question_marked_as_acceptable_then_SupportingDocumentationDate_is_not_set() { //given var siteId = 213123; var clientId = 54321; var userForAuditing = new UserForAuditing() { Id = Guid.NewGuid() }; var copiedByUserName = "******"; var question = Question.Create(Guid.NewGuid(), "Title", new Category() { Id = Guid.NewGuid(), Title = "Care" }, false, userForAuditing); var answer = new ChecklistAnswer() { Id = Guid.NewGuid(), AssignedTo = new BusinessSafe.Domain.Entities.Employee() { Id = Guid.NewGuid() }, EmployeeNotListed = "employee not listed", Timescale = new Timescale() { Id = 2L }, Question = question, Response = new QuestionResponse() { Id = Guid.NewGuid(), SupportingEvidence = "sp", GuidanceNotes = "the guidance notes", ActionRequired = "the action required", ResponseType = "Positive", Question = question }, SupportingDocumentationDate = DateTime.Now.Date, SupportingDocumentationStatus = "SS", SupportingEvidence = "se" }; var answersList = new List<ChecklistAnswer>() { answer }; var checklist = new Checklist() { Id = Guid.NewGuid() }; checklist.Questions.Add(new ChecklistQuestion() { Id = Guid.NewGuid(), Question = question, Checklist = checklist, CategoryNumber = 1, QuestionNumber = 4 }); checklist.UpdateAnswers(answersList, new UserForAuditing()); //when var result = checklist.CopyToSiteWithResponses(siteId, clientId, userForAuditing, copiedByUserName, false); //then Assert.That(result.Answers.Count, Is.EqualTo(1)); Assert.That(result.Answers[0].Question.Id, Is.EqualTo(checklist.Answers[0].Question.Id)); Assert.AreEqual(null, result.Answers[0].SupportingDocumentationDate); }
public void given_checklist_when_copyWithResponses_then_Answers_to_all_non_mandatory_questions_are_set() { //given var siteId = 213123; var clientId = 54321; var userForAuditing = new UserForAuditing() { Id = Guid.NewGuid() }; var copiedByUserName = "******"; var question1 = Question.Create(Guid.NewGuid(), "Title", new Category() { Id = Guid.NewGuid(), Title = "Care" }, true, userForAuditing); var responseId = Guid.NewGuid(); var questionResponse1 = new QuestionResponse() { Id = responseId, Title = "Acceptable", SupportingEvidence = "sp", GuidanceNotes = "the guidance notes", ActionRequired = "the action required", ResponseType = "Positive", Question = question1, }; var questionResponse2 = new QuestionResponse() { Id = Guid.NewGuid(), Question = question1, Title = "Unacceptable", ResponseType = "Negative"}; question1.PossibleResponses.Add(questionResponse1); question1.PossibleResponses.Add(questionResponse2); var answer = new ChecklistAnswer() { Id = Guid.NewGuid(), AssignedTo = new BusinessSafe.Domain.Entities.Employee() { Id = Guid.NewGuid() }, EmployeeNotListed = "employee not listed", Timescale = new Timescale() { Id = 2L }, Question = question1, Response = new QuestionResponse() { Id = responseId, Title = "Acceptable", SupportingEvidence = "sp", GuidanceNotes = "the guidance notes", ActionRequired = "the action required", ResponseType = "Positive", Question = question1, }, SupportingDocumentationDate = DateTime.Now.Date, SupportingDocumentationStatus = "SS", SupportingEvidence = "se" }; var answersList = new List<ChecklistAnswer>() { answer }; var checklist = new Checklist() { Id = Guid.NewGuid() }; checklist.Questions.Add(new ChecklistQuestion() { Id = Guid.NewGuid(), Question = question1, Checklist = checklist, CategoryNumber = 1, QuestionNumber = 4 }); checklist.UpdateAnswers(answersList, new UserForAuditing()); //when var result = checklist.CopyToSiteWithResponses(siteId, clientId, userForAuditing, copiedByUserName, false); Assert.That(result.Answers.Count, Is.EqualTo(checklist.Answers.Count())); Assert.That(result.Answers[0].Id, Is.Not.EqualTo(checklist.Answers[0].Id)); Assert.That(result.Answers[0].Question.Id, Is.Not.EqualTo(checklist.Answers[0].Question.Id)); Assert.That(result.Answers[0].Timescale, Is.EqualTo(null)); Assert.That(result.Answers[0].AssignedTo, Is.EqualTo(null)); Assert.That(result.Answers[0].EmployeeNotListed, Is.EqualTo(checklist.Answers[0].EmployeeNotListed)); Assert.That(result.Answers[0].Response.Question.Id, Is.Not.EqualTo(checklist.Answers[0].Question.Id)); Assert.That(result.Answers[0].Response.Title, Is.EqualTo(checklist.Answers[0].Response.Title)); Assert.That(result.Answers[0].Response.ActionRequired, Is.EqualTo(checklist.Answers[0].Response.ActionRequired)); Assert.That(result.Answers[0].Response.GuidanceNotes, Is.EqualTo(checklist.Answers[0].Response.GuidanceNotes)); Assert.That(result.Answers[0].Response.SupportingEvidence, Is.EqualTo(checklist.Answers[0].Response.SupportingEvidence)); Assert.That(result.Answers[0].Response.SupportingEvidence, Is.EqualTo(checklist.Answers[0].Response.SupportingEvidence)); Assert.That(result.Answers[0].Response.ResponseType, Is.EqualTo(checklist.Answers[0].Response.ResponseType)); }
public void Given_answer_has_previously_been_given_when_a_question_without_an_answer_is_saved_then_original_answer_is_not_removed() { var originalResponseId = Guid.NewGuid(); var originalLastModifiedOn = DateTime.Now.AddDays(-5); // Given var originalAnswer = new ChecklistAnswer() { Id = Guid.NewGuid(), Question = new Question() {Id = new Guid()}, LastModifiedOn = originalLastModifiedOn, SupportingDocumentationStatus = "Reported", Response = new QuestionResponse() {Id = originalResponseId} }; var newAnswer = new ChecklistAnswer() { Id = originalAnswer.Id, Question = originalAnswer.Question, Response = null }; var newAnswers = new List<ChecklistAnswer>() {newAnswer}; var checklist = new Checklist(); checklist.Answers.Add(originalAnswer); checklist.UpdateAnswers(newAnswers, new UserForAuditing()); Assert.That(checklist.Answers.First().SupportingDocumentationStatus, Is.EqualTo("Reported")); Assert.That(checklist.Answers.First().LastModifiedOn.Value, Is.EqualTo(originalLastModifiedOn)); Assert.That(checklist.Answers.First().Response.Id, Is.EqualTo(originalResponseId)); }
public void Given_answer_supporting_documentation_date_changed_then_supporting_documentation_date_updated() { var originalLastModifiedOn = DateTime.Now.AddDays(-5); // Given var originalAnswer = new ChecklistAnswer() { Id = Guid.NewGuid(), Question = new Question() { Id = new Guid() }, Response = new QuestionResponse() { Id = Guid.NewGuid() } , LastModifiedOn = originalLastModifiedOn, SupportingDocumentationStatus = "Reported" }; var newAnswer = new ChecklistAnswer() { Id = originalAnswer.Id, Question = originalAnswer.Question, SupportingDocumentationStatus = "Reported", SupportingDocumentationDate = DateTime.Now.AddDays(-51), Response = originalAnswer.Response }; var newAnswers = new List<ChecklistAnswer>() { newAnswer }; var checklist = new Checklist(); checklist.Answers.Add(originalAnswer); checklist.UpdateAnswers(newAnswers, new UserForAuditing()); Assert.That(checklist.Answers.First().SupportingDocumentationDate, Is.EqualTo(newAnswer.SupportingDocumentationDate)); Assert.That(checklist.Answers.First().LastModifiedOn.Value.Date, Is.EqualTo(DateTime.Now.Date)); }
public void Given_answer_area_of_non_compliance_changed_then_area_of_non_compliance_updated() { var originalLastModifiedOn = DateTime.Now.AddDays(-5); // Given var originalAnswer = new ChecklistAnswer() { Id = Guid.NewGuid(), Question = new Question() { Id = new Guid() } ,Response = new QuestionResponse(){Id = Guid.NewGuid()} ,LastModifiedOn = originalLastModifiedOn }; var newAnswer = new ChecklistAnswer() { Id = originalAnswer.Id, Question = originalAnswer.Question, Response = originalAnswer.Response, AreaOfNonCompliance = "you have 1 second to comply" }; var newAnswers = new List<ChecklistAnswer>() { newAnswer }; var checklist = new Checklist(); checklist.Answers.Add(originalAnswer); checklist.UpdateAnswers(newAnswers, new UserForAuditing()); Assert.That(checklist.Answers.First().AreaOfNonCompliance, Is.EqualTo(newAnswer.AreaOfNonCompliance)); Assert.That(checklist.Answers.First().LastModifiedOn.Value.Date, Is.EqualTo(DateTime.Now.Date)); }
public void Given_answer_QA_signed_off_date_is_null_then_lastmodifed_not_changed() { var originalLastModifiedOn = DateTime.Now.AddDays(-5); // Given var originalAnswer = new ChecklistAnswer() { Id = Guid.NewGuid(), Question = new Question() { Id = new Guid() } , LastModifiedOn = originalLastModifiedOn }; var newAnswer = new ChecklistAnswer() { Id = originalAnswer.Id, Question = originalAnswer.Question, }; var newAnswers = new List<ChecklistAnswer>() { newAnswer }; var checklist = new Checklist(); checklist.Answers.Add(originalAnswer); checklist.UpdateAnswers(newAnswers, new UserForAuditing()); Assert.That(checklist.Answers.First().LastModifiedOn, Is.EqualTo(originalLastModifiedOn)); }
public void Given_answer_QA_signed_off_date_has_been_removed_then_date_is_null() { var originalQaSignedOffDate = new DateTime(2013, 12, 01, 15, 15, 15, 123); // Given var originalAnswer = new ChecklistAnswer() { Id = Guid.NewGuid(), Question = new Question() { Id = new Guid() }, LastModifiedBy = new UserForAuditing() { Id = Guid.NewGuid() }, LastModifiedOn = DateTime.Now.AddDays(-5), QaSignedOffBy = "David Brieley", QaSignedOffDate = originalQaSignedOffDate, Response = new QuestionResponse() { Id = Guid.NewGuid() }, }; var newAnswer = new ChecklistAnswer() { Id = originalAnswer.Id, Question = originalAnswer.Question, QaSignedOffBy = "David Brieley", QaSignedOffDate = null, Response = originalAnswer.Response }; var newAnswers = new List<ChecklistAnswer>() { newAnswer }; var checklist = new Checklist(); checklist.Answers.Add(originalAnswer); checklist.UpdateAnswers(newAnswers, new UserForAuditing()); Assert.That(checklist.Answers.First().QaSignedOffDate, Is.Null); }
public void Given_answer_QA_signed_off_date_hasnt_change_then_qa_name_and_date_are_not_saved() { var originalQaSignedOffDate = new DateTime(2013, 12, 01, 15, 15, 15, 123); var originalLastModifiedOn = DateTime.Now.AddDays(-5); // Given var originalAnswer = new ChecklistAnswer() { Id = Guid.NewGuid(), Question = new Question() { Id = new Guid() }, LastModifiedBy = new UserForAuditing() { Id = Guid.NewGuid() }, LastModifiedOn = originalLastModifiedOn, QaSignedOffBy = "David Brieley" , QaSignedOffDate = originalQaSignedOffDate }; var newAnswer = new ChecklistAnswer() { Id = originalAnswer.Id, Question = originalAnswer.Question, QaSignedOffBy = "David Brieley" , QaSignedOffDate = new DateTime(2013, 12, 01, 15, 15, 15, 12) }; var newAnswers = new List<ChecklistAnswer>() { newAnswer }; var checklist = new Checklist(); checklist.Answers.Add(originalAnswer); checklist.UpdateAnswers(newAnswers, new UserForAuditing()); Assert.That(checklist.Answers.First().LastModifiedOn, Is.EqualTo(originalLastModifiedOn)); Assert.That(checklist.Answers.First().QaSignedOffDate.Value, Is.EqualTo(originalQaSignedOffDate)); }
public void Given_answer_is_signed_off_by_a_QA_then_qa_name_and_date_are_saved() { // Given var originalAnswer = new ChecklistAnswer() { Id = Guid.NewGuid(), Question = new Question() { Id = new Guid() }, Response = new QuestionResponse(){Id = Guid.NewGuid()} ,LastModifiedBy = new UserForAuditing() { Id = Guid.NewGuid() }, LastModifiedOn = DateTime.Now.AddDays(-5) }; var newAnswer = new ChecklistAnswer() { Id = originalAnswer.Id, Question = originalAnswer.Question, QaSignedOffBy = "David Brieley" ,QaSignedOffDate = DateTime.Now ,Response= originalAnswer.Response }; var newAnswers = new List<ChecklistAnswer>() { newAnswer }; var checklist = new Checklist(); checklist.Answers.Add(originalAnswer); checklist.UpdateAnswers(newAnswers, new UserForAuditing()); Assert.That(checklist.Answers.First().QaSignedOffBy, Is.EqualTo(newAnswer.QaSignedOffBy)); Assert.That(checklist.Answers.First().QaSignedOffDate.Value, Is.EqualTo(newAnswer.QaSignedOffDate.Value)); }
public void Given_timescale_changed_when_UpdateAnswers_then_lastmodifiedDate_updated() { var originalLastModifiedByDate = DateTime.Now.AddDays(-5); // Given var originalAnswer = new ChecklistAnswer() { Id = Guid.NewGuid(), ActionRequired = null, AssignedTo = new BusinessSafe.Domain.Entities.Employee() { Id = Guid.NewGuid() }, EmployeeNotListed = "employee not listed", GuidanceNotes = "the guidance notes", SupportingEvidence = "the supporting evidence", Question = new Question() { Id = new Guid() }, Response = new QuestionResponse() { Id = Guid.NewGuid() }, Timescale = new Timescale() { Id = 2L }, LastModifiedBy = new UserForAuditing() { Id = Guid.NewGuid() }, LastModifiedOn = originalLastModifiedByDate }; var newAnswer = new ChecklistAnswer() { Id = originalAnswer.Id, ActionRequired = originalAnswer.ActionRequired, AssignedTo = originalAnswer.AssignedTo, EmployeeNotListed = originalAnswer.EmployeeNotListed, GuidanceNotes = originalAnswer.GuidanceNotes, SupportingEvidence = originalAnswer.SupportingEvidence, Question = originalAnswer.Question, Response = originalAnswer.Response, Timescale = new Timescale() { Id = 12L } }; var newAnswers = new List<ChecklistAnswer>() { newAnswer }; var checklist = new Checklist(); checklist.Answers.Add(originalAnswer); checklist.UpdateAnswers(newAnswers, new UserForAuditing()); // When Assert.That(checklist.Answers.Count, Is.EqualTo(1)); Assert.That(checklist.Answers.First().Timescale, Is.EqualTo(newAnswer.Timescale)); Assert.That(checklist.Answers.First().LastModifiedOn.Value.Date, Is.EqualTo(DateTime.Now.Date)); }