public void Given_a_checklist_exists_when_a_questions_possible_response_is_update_Then_the_checklist_is_updated() { Question question = new Question(); question.Id = Guid.NewGuid(); question.Title = "Question 1"; question.PossibleResponses = new List<QuestionResponse>(); question.PossibleResponses.Add( new QuestionResponse { Id = Guid.NewGuid(), ReportLetterStatement = null }); question.PossibleResponses.Add( new QuestionResponse { Id = Guid.NewGuid(), ReportLetterStatement = null }); question.PossibleResponses.Add( new QuestionResponse { Id = Guid.NewGuid(), ReportLetterStatement = null }); question.Category = _categories[0]; var checklist = new Checklist(); checklist.Id = Guid.NewGuid(); checklist.Questions.Add(new ChecklistQuestion { Checklist = checklist, Question = question }); _checklistRepository .Setup(x => x.GetById(checklist.Id)) .Returns(checklist); _questionRepository .Setup(x => x.GetById(question.Id)) .Returns(question); Checklist savedChecklist = null; _checklistRepository.Setup(x => x.SaveOrUpdate(It.IsAny<Checklist>())) .Callback( delegate(Checklist x) { savedChecklist = x; } ); foreach (var questionResponse in question.PossibleResponses) { _questionResponseRepository .Setup(x => x.GetById(questionResponse.Id)) .Returns(questionResponse); } var controller = GetTarget(); ChecklistViewModel checklistViewModel = new ChecklistViewModel(); checklistViewModel.SiteId = 1; checklistViewModel.Site = new SiteViewModel(); checklistViewModel.SiteId = (int)_peninsulaSiteId; checklistViewModel.SiteVisit = new SiteVisitViewModel { VisitDate = "14/02/2000" }; checklistViewModel.Questions.Add(new QuestionAnswerViewModel() { Question = new QuestionViewModel() { Id = question.Id, PossibleResponses = question.PossibleResponses.Select(x => new QuestionResponseViewModel() { Id = x.Id, ReportLetterStatement = "updated Report Letter statement" }).ToList() } }); var response = controller.PostChecklist(checklist.Id, checklistViewModel); Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); Assert.That(savedChecklist.Questions.Count, Is.EqualTo(1)); Assert.That(savedChecklist.Questions[0].Question.PossibleResponses[0].ReportLetterStatement, Is.EqualTo("updated Report Letter statement")); }
private Question GetQuestion() { var question = new Question(); var category = new Category() { Id = Guid.NewGuid(), Title = "New Category", ReportTitle = "NewCat" }; question.Id = Guid.NewGuid(); question.Title = "Question 1"; question.PossibleResponses = new List<QuestionResponse>(); question.Category = category; question.PossibleResponses.Add( new QuestionResponse { Id = Guid.NewGuid(), Title = "Response 1", GuidanceNotes = "Guidance Notes 1", ActionRequired = "Action Required 1", Date = new DateTime(2010, 10, 1), ResponseType = "Negative", SupportingEvidence = "Supporting Evidence 1" }); question.PossibleResponses.Add( new QuestionResponse { Id = Guid.NewGuid(), Title = "Response 2", GuidanceNotes = "Guidance Notes 2", ActionRequired = "Action Required 2", Date = new DateTime(2010, 10, 2), ResponseType = "Negative", SupportingEvidence = "Supporting Evidence 2" }); question.PossibleResponses.Add( new QuestionResponse { Id = Guid.NewGuid(), Title = "Response 3", GuidanceNotes = "Guidance Notes 3", ActionRequired = "Action Required 3", Date = new DateTime(2010, 10, 3), ResponseType = "Positive", SupportingEvidence = "Supporting Evidence 3" }); //question.Category = return question; }
public void Given_a_checklist_exists_with_questions_and_categoryNumber_and_QuestionNumber_are_null_questions_not_removed() { var checklist = new Checklist(); checklist.Id = Guid.NewGuid(); var checklistQuestionId = Guid.NewGuid(); var question = new Question() {Id = Guid.NewGuid()}; checklist.Questions.Add(new ChecklistQuestion { Id= checklistQuestionId, Checklist = checklist, Question = question }); var checklistViewModel = new ChecklistViewModel(); checklistViewModel.SiteId = 1; checklistViewModel.Site = new SiteViewModel(); checklistViewModel.SiteId = (int)_peninsulaSiteId; checklistViewModel.SiteVisit = new SiteVisitViewModel { VisitDate = "14/02/2000" }; _checklistRepository .Setup(x => x.GetById(checklist.Id)) .Returns(checklist); _questionRepository .Setup(x => x.GetById(question.Id)) .Returns(question); Checklist savedChecklist = null; _checklistRepository.Setup(x => x.SaveOrUpdate(It.IsAny<Checklist>())) .Callback( delegate(Checklist x) { savedChecklist = x; } ); checklistViewModel.Questions.Add(new QuestionAnswerViewModel() { Question = new QuestionViewModel() { Id = question.Id } }); var controller = GetTarget(); var response = controller.PostChecklist(checklist.Id, checklistViewModel); Assert.IsTrue(checklist.Questions.All(x => x.Id == checklistQuestionId && x.Deleted == false)); }
public void Given_question_details_and_existing_industry_When_post_question_is_called_then_question_is_added_to_industry() { var industry1 = new ChecklistTemplate() { Id = Guid.NewGuid(), Name = "ChecklistTemplate 1" }; var industry2 = new ChecklistTemplate() { Id = Guid.NewGuid(), Name = "ChecklistTemplate 2" }; var industry3 = new ChecklistTemplate() { Id = Guid.NewGuid(), Name = "ChecklistTemplate 3" }; _industryRepository .Setup(x => x.GetById(industry1.Id)) .Returns(() => industry1); _industryRepository .Setup(x => x.GetById(industry2.Id)) .Returns(() => industry2); _industryRepository .Setup(x => x.GetById(industry3.Id)) .Returns(() => industry3); var returnedIndustries = new List<ChecklistTemplateQuestion>(); Question q = new Question() { Title = "Q1" }; ChecklistTemplateQuestion iq1 = new ChecklistTemplateQuestion() {Id = Guid.NewGuid(), Question = q, ChecklistTemplate = industry1}; ChecklistTemplateQuestion iq2 = new ChecklistTemplateQuestion() {Id = Guid.NewGuid(), Question = q, ChecklistTemplate = industry3}; returnedIndustries.Add( iq1 ); returnedIndustries.Add( iq2 ); _ChecklistTemplateQuestionRepository .Setup(x => x.GetByQuestion(It.IsAny<Guid>())) .Returns(returnedIndustries); ChecklistTemplateQuestion indQuest1 = null; ChecklistTemplateQuestion indQuest2 = null; _ChecklistTemplateQuestionRepository .Setup(x => x.SaveOrUpdate( iq1)) .Callback( delegate(ChecklistTemplateQuestion x) { indQuest1 = x; } ); _ChecklistTemplateQuestionRepository .Setup(x => x.SaveOrUpdate(iq2)) .Callback( delegate(ChecklistTemplateQuestion x) { indQuest2 = x; } ); _questionRepository .Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(q); var industryModel = new IndustryQuestionModel(); industryModel.QuestionId = q.Id; industryModel.IndustryIds = new List<Guid>(); industryModel.IndustryIds.Add( industry2.Id); var controller = GetTarget(); controller.UpdateIndustryQuestions(industryModel); Assert.IsTrue(indQuest1.Deleted); Assert.IsTrue(indQuest2.Deleted); _ChecklistTemplateQuestionRepository.Verify(x => x.SaveOrUpdate(iq1), Times.Once); _ChecklistTemplateQuestionRepository.Verify(x => x.SaveOrUpdate(iq2), Times.Once); }
public void Given_question_When_get_question_industries_is_called_Then_List_industries_containing_the_question_is_returned() { var questionList = new List<Question>(); var industry1 = new ChecklistTemplate() { Id = Guid.NewGuid(), Name = "ChecklistTemplate 1"}; var industry2 = new ChecklistTemplate() { Id = Guid.NewGuid(), Name = "ChecklistTemplate 2" }; var industry3 = new ChecklistTemplate() { Id = Guid.NewGuid(), Name = "ChecklistTemplate 3" }; var returnedIndustries = new List<ChecklistTemplateQuestion>(); Question q = new Question() {Title = "Q1"}; returnedIndustries.Add( new ChecklistTemplateQuestion() { Id = Guid.NewGuid(), Question = q, ChecklistTemplate = industry1 } ); returnedIndustries.Add( new ChecklistTemplateQuestion() { Id = Guid.NewGuid(), Question = q, ChecklistTemplate = industry3 }); _ChecklistTemplateQuestionRepository .Setup(x => x.GetByQuestion(It.IsAny<Guid>())) .Returns(returnedIndustries); //_ChecklistTemplateQuestionRepository // .Setup(x => x.MarkForDelete(It.IsAny<Guid>())) // .Returns(returnedIndustries); var controller = GetTarget(); controller.GetIndustriesByQuestionId(Guid.NewGuid()); Assert.That(returnedIndustries.Count, Is.EqualTo(2)); Assert.That(returnedIndustries[0].Question.Title, Is.EqualTo("Q1")); Assert.That(returnedIndustries[1].Question.Title, Is.EqualTo("Q1")); Assert.That(returnedIndustries[0].ChecklistTemplate.Id, Is.EqualTo(industry1.Id)); Assert.That(returnedIndustries[1].ChecklistTemplate.Id, Is.EqualTo(industry3.Id)); }
public void Given_a_checklist_question_was_created_with_invalid_response_then_checklist_is_saved() { var existingQuestionId = Guid.NewGuid(); var existingResponseId = Guid.NewGuid(); var checklistViewModel = new ChecklistViewModel(); checklistViewModel.SiteId = 234234; checklistViewModel.ClientId = 11; checklistViewModel.CoveringLetterContent = "Letter content"; checklistViewModel.Categories = new List<CategoryQuestionAnswerViewModel>(); checklistViewModel.Questions = new List<QuestionAnswerViewModel>(); checklistViewModel.CreatedOn = DateTime.Now; checklistViewModel.CreatedBy = "user"; checklistViewModel.SiteId = 1; checklistViewModel.Id = Guid.NewGuid(); checklistViewModel.Questions = new List<QuestionAnswerViewModel>() { new QuestionAnswerViewModel { Question = new QuestionViewModel() { Id = existingQuestionId ,CategoryId = Guid.NewGuid() , PossibleResponses = new List<QuestionResponseViewModel>() { new QuestionResponseViewModel(){Id = Guid.NewGuid(), Title = "Response1"} } } } }; _categoryRepository .Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(new Category()); var existingQuestion = new Question() { Id = existingQuestionId, PossibleResponses = new List<QuestionResponse> {new QuestionResponse {Id = existingResponseId, Title = "Response1"}} }; _questionRepository.Setup(x => x.GetById(existingQuestionId)) .Returns(existingQuestion); Checklist savedChecklist = null; _checklistRepository.Setup(x => x.SaveOrUpdate(It.IsAny<Checklist>())) .Callback( delegate(Checklist x) { savedChecklist = x; } ); var controller = GetTarget(); controller.Request = new HttpRequestMessage(); controller.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration()); var response = controller.PostChecklist(checklistViewModel.Id, checklistViewModel); // Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); Assert.That(savedChecklist.Questions[0].Question.PossibleResponses.Count, Is.EqualTo(1)); Assert.That(savedChecklist.Questions[0].Question.PossibleResponses[0].Id, Is.EqualTo(existingResponseId)); }
public void Given_a_checklist_then_the_answers_are_correctly_mapped_to_the_view_model() { //GIVEN var id = Guid.NewGuid(); var checklist = new Checklist(); var category = Category.Create(Guid.NewGuid(), "Category A"); var questions = new Question[] { Question.Create(Guid.NewGuid(), "Question One", category, false, new UserForAuditing()) }; var answer = ChecklistAnswer.Create(questions.First()); answer.SupportingEvidence = "this is the answer comment"; answer.ActionRequired = "this is the answer comment"; answer.Timescale = new Timescale() { Id = 123, Name = "Fred Flintstone" }; answer.Response = new QuestionResponse() {Id = Guid.NewGuid()}; answer.QaSignedOffBy = "abc"; answer.AreaOfNonCompliance = "You have 3 seconds to comply"; answer.SupportingDocumentationDate = DateTime.Now.AddDays(15); answer.SupportingDocumentationStatus = "Verified"; //checklist.UpdateQuestions(questions, new UserForAuditing()); checklist.Questions.Add(new ChecklistQuestion{ Checklist = checklist, Question = questions[0]}); checklist.Answers.Add(answer); checklistRepo.Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(checklist); //when var target = new ChecklistController(dependencyFactory.Object); var result = target.GetChecklist(id); //THEN Assert.That(result.Questions.First().Answer.QuestionId, Is.EqualTo(answer.Question.Id)); Assert.That(result.Questions.First().Answer.SupportingEvidence, Is.EqualTo(answer.SupportingEvidence)); Assert.That(result.Questions.First().Answer.ActionRequired, Is.EqualTo(answer.ActionRequired)); Assert.That(result.Questions.First().Answer.SelectedResponseId, Is.EqualTo(answer.Response.Id)); Assert.That(result.Questions.First().Answer.GuidanceNotes, Is.EqualTo(answer.Response.GuidanceNotes)); Assert.That(result.Questions.First().Answer.Timescale.Id, Is.EqualTo(answer.Timescale.Id)); Assert.That(result.Questions.First().Answer.Timescale.Name, Is.EqualTo(answer.Timescale.Name)); Assert.That(result.Questions.First().Answer.QaSignedOffBy, Is.EqualTo(answer.QaSignedOffBy)); Assert.That(result.Questions.First().Answer.AreaOfNonCompliance, Is.EqualTo(answer.AreaOfNonCompliance)); Assert.That(result.Questions.First().Answer.SupportingDocumentationStatus, Is.EqualTo(answer.SupportingDocumentationStatus)); Assert.That(result.Questions.First().Answer.SupportingDocumentationDate, Is.EqualTo(answer.SupportingDocumentationDate.ToUniversalTime())); }
public void Given_dates_are_BST_datetimes_then_Dates_are_return_as_UTC() { //given var id = Guid.NewGuid(); var BSTDate = new DateTime(2014, 4, 20, 0, 0, 0); var checklist = new Checklist() { VisitDate = BSTDate, CreatedOn = BSTDate, ChecklistCreatedOn = BSTDate, LastModifiedOn = BSTDate, ChecklistCompletedOn = BSTDate, ChecklistSubmittedOn = BSTDate, QaAdvisorAssignedOn = BSTDate, ExecutiveSummaryQACommentsSignedOffDate = BSTDate, DeletedOn = BSTDate, }; var category = Category.Create(Guid.NewGuid(), "Category A"); var questions = new Question[] { Question.Create(Guid.NewGuid(), "Question One", category, false, new UserForAuditing()) }; foreach (var question in questions) { checklist.Questions.Add(new ChecklistQuestion { Checklist = checklist, Question = question }); } checklistRepo .Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(()=>checklist); var target = new ChecklistController(dependencyFactory.Object); //WHEN var result = target.GetChecklist(id); //THEN Assert.That(result.SiteVisit.VisitDate.Value, Is.EqualTo(BSTDate.ToUniversalTime())); Assert.That(result.LastModifiedOn.Value, Is.EqualTo(BSTDate.ToUniversalTime())); Assert.That(result.CreatedOn.Value, Is.EqualTo(BSTDate.ToUniversalTime())); Assert.That(result.CompletedOn.Value, Is.EqualTo(BSTDate.ToUniversalTime())); Assert.That(result.SubmittedOn.Value, Is.EqualTo(BSTDate.ToUniversalTime())); Assert.That(result.ExecutiveSummaryQASignedOffDate.Value, Is.EqualTo(BSTDate.ToUniversalTime())); }
public void Given_dates_are_GMT_datetimes_then_Dates_are_return_as_UTC() { //given var id = Guid.NewGuid(); var visitDate = new DateTime(2014, 3, 20, 0, 0, 0); var checklist = new Checklist() { VisitDate = visitDate }; var category = Category.Create(Guid.NewGuid(), "Category A"); var questions = new Question[] {Question.Create(Guid.NewGuid(), "Question One", category, false, new UserForAuditing())}; foreach (var question in questions) { checklist.Questions.Add(new ChecklistQuestion {Checklist = checklist, Question = question}); } checklistRepo .Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(checklist); var target = new ChecklistController(dependencyFactory.Object); //WHEN var result = target.GetChecklist(id); //THEN Assert.That(result.SiteVisit.VisitDate.Value, Is.EqualTo(visitDate.ToUniversalTime())); }
public void Given_a_checklist_Where_assigned_to_id_is_null_and_employee_notlisted_is_not_null_then_assigned_to_should_return_non_employee_name() { //GIVEN var id = Guid.NewGuid(); var checklist = new Checklist(); var category = Category.Create(Guid.NewGuid(), "Category A"); var questions = new Question[] { Question.Create(Guid.NewGuid(), "Question One", category, false, new UserForAuditing()) }; var answer = ChecklistAnswer.Create(questions.First()); answer.AssignedTo = null; answer.EmployeeNotListed = "Benny Hill"; //checklist.UpdateQuestions(questions, new UserForAuditing()); checklist.Questions.Add(new ChecklistQuestion { Checklist = checklist, Question = questions[0] }); checklist.Answers.Add(answer); checklistRepo.Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(checklist); //_favouriteChecklistRepository.Setup(x => x.Get(It.IsAny<Guid>(), It.IsAny<string>())) // .Returns(FavouriteChecklist.Create(checklist, "User")); //when var target = new ChecklistController(dependencyFactory.Object); var result = target.GetChecklist(id); //THEN Assert.AreNotEqual(null, result.Questions.First().Answer.AssignedTo); Assert.AreEqual(Guid.Empty, result.Questions.First().Answer.AssignedTo.Id); Assert.AreEqual(answer.EmployeeNotListed, result.Questions.First().Answer.AssignedTo.NonEmployeeName); }
public void Given_a_checklist_Where_assigned_to_is_a_valid_guid_and_not_empty_guid_then_assigned_to_should_return_employee_details() { //GIVEN var id = Guid.NewGuid(); var checklist = new Checklist(); var category = Category.Create(Guid.NewGuid(), "Category A"); var questions = new Question[] { Question.Create(Guid.NewGuid(), "Question One", category, false, new UserForAuditing()) }; var answer = ChecklistAnswer.Create(questions.First()); answer.AssignedTo = new Employee() { Id = Guid.NewGuid() }; answer.EmployeeNotListed = null; //checklist.UpdateQuestions(questions, new UserForAuditing()); checklist.Questions.Add(new ChecklistQuestion { Checklist = checklist, Question = questions[0] }); checklist.Answers.Add(answer); checklistRepo.Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(checklist); //when var target = new ChecklistController(dependencyFactory.Object); var result = target.GetChecklist(id); //THEN Assert.AreNotEqual(null, result.Questions.First().Answer.AssignedTo); Assert.AreEqual(answer.AssignedTo.Id, result.Questions.First().Answer.AssignedTo.Id); }
public void Given_a_checklist_then_the_values_are_correctly_mapped_to_the_view_model() { //given var clientId = 12312312; var siteId = 142123124; var coveringLetterContent= "Read this letter"; var id = Guid.NewGuid(); var visitDate = DateTime.Now; var visitBy = "H&S"; var visitType = "Principal"; var personSeenName = "John"; var areaVisited = "First Floor"; var areaNotVisited = "Ground Floor"; var emailAddress = "*****@*****.**"; var impressionTypeId = Guid.NewGuid(); var otherEmail = ChecklistOtherEmail.Create("*****@*****.**", "Name1"); var checklist = new Checklist() { ClientId = clientId, SiteId = siteId, CoveringLetterContent = coveringLetterContent, Id = id, VisitDate = visitDate, VisitBy = visitBy, VisitType = visitType, EmailAddress = emailAddress, MainPersonSeenName = personSeenName, AreasVisited = areaVisited, AreasNotVisited = areaNotVisited, ImpressionType = new ImpressionType() { Id = impressionTypeId }, OtherEmails = new List<ChecklistOtherEmail>() { otherEmail } }; var category = Category.Create(Guid.NewGuid(), "Category A"); var questions = new Question[] {Question.Create(Guid.NewGuid(), "Question One", category, false, new UserForAuditing())}; //checklist.UpdateQuestions(questions, new UserForAuditing()); foreach (var question in questions) { checklist.Questions.Add(new ChecklistQuestion { Checklist = checklist, Question = question }); } checklistRepo.Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(checklist); //when var target = new ChecklistController(dependencyFactory.Object); var result = target.GetChecklist(id); //THEN Assert.That(result.ClientId, Is.EqualTo(clientId)); Assert.That(result.SiteId, Is.EqualTo(siteId)); Assert.That(result.Site.Id, Is.EqualTo(siteId)); Assert.That(result.CoveringLetterContent, Is.EqualTo(coveringLetterContent)); Assert.That(result.SiteVisit.VisitBy, Is.EqualTo(visitBy)); Assert.That(result.SiteVisit.VisitDate.Value.Date, Is.EqualTo(visitDate.Date)); Assert.That(result.SiteVisit.VisitType, Is.EqualTo(visitType)); Assert.That(result.SiteVisit.EmailAddress, Is.EqualTo(emailAddress)); Assert.That(result.SiteVisit.AreasNotVisited, Is.EqualTo(areaNotVisited)); Assert.That(result.SiteVisit.AreasVisited, Is.EqualTo(areaVisited)); Assert.That(result.SiteVisit.PersonSeen.Name, Is.EqualTo(personSeenName)); Assert.That(result.SiteVisit.SelectedImpressionType.Id, Is.EqualTo(impressionTypeId)); Assert.That(result.OtherEmails[0].Name, Is.EqualTo(otherEmail.Name)); Assert.That(result.OtherEmails[0].Id, Is.EqualTo(otherEmail.Id)); Assert.That(result.OtherEmails[0].EmailAddress, Is.EqualTo(otherEmail.EmailAddress)); }
public void Given_a_checklist_then_the_questions_are_correctly_mapped_to_the_view_model() { //GIVEN var id = Guid.NewGuid(); var checklist = new Checklist(); var category = Category.Create(Guid.NewGuid(), "Category A"); var questions = new Question[] { Question.Create(Guid.NewGuid(), "Question One", category, false, new UserForAuditing()) }; //checklist.UpdateQuestions(questions, new UserForAuditing()); checklist.Questions.Add(new ChecklistQuestion { Checklist = checklist, Question = questions[0] }); checklistRepo.Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(checklist); //when var target = new ChecklistController(dependencyFactory.Object); var result = target.GetChecklist(id); //THEN Assert.That(result.Questions.First().Question.Id, Is.EqualTo(questions.First().Id)); Assert.That(result.Questions.First().Question.Text, Is.EqualTo(questions.First().Title)); Assert.That(result.Questions.First().Question.CategoryId, Is.EqualTo(questions.First().Category.Id)); Assert.That(result.Questions.First().Question.Category.Id, Is.EqualTo(questions.First().Category.Id)); }
public void Given_a_checklist_exists_when_a_custom_questions_possible_response_is_update_Then_the_checklist_is_updated() { var responseIdOfQuestionToBeUpdated = Guid.NewGuid(); Question question = new Question(); question.Id = Guid.NewGuid(); question.Title = "Question 1"; question.PossibleResponses = new List<QuestionResponse>(); question.CustomQuestion = true; question.PossibleResponses.Add( new QuestionResponse { Id = Guid.NewGuid(), ReportLetterStatement = null }); question.PossibleResponses.Add( new QuestionResponse { Id = Guid.NewGuid(), ReportLetterStatement = null }); question.PossibleResponses.Add( new QuestionResponse { Id = responseIdOfQuestionToBeUpdated, ReportLetterStatement = "to be updated" }); question.Category = _categories[0]; var checklist = new Checklist(); checklist.Id = Guid.NewGuid(); checklist.Questions.Add(new ChecklistQuestion { Checklist = checklist, Question = question }); _checklistRepository .Setup(x => x.GetById(checklist.Id)) .Returns(checklist); _questionRepository .Setup(x => x.GetById(question.Id)) .Returns(question); Checklist savedChecklist = null; _checklistRepository.Setup(x => x.SaveOrUpdate(It.IsAny<Checklist>())) .Callback( delegate(Checklist x) { savedChecklist = x; } ); foreach (var questionResponse in question.PossibleResponses) { _questionResponseRepository .Setup(x => x.GetById(questionResponse.Id)) .Returns(questionResponse); } var controller = GetTarget(); controller.Request = new HttpRequestMessage(); controller.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration()); ChecklistViewModel checklistViewModel = new ChecklistViewModel(); checklistViewModel.SiteId = 1; checklistViewModel.Site = new SiteViewModel(); checklistViewModel.SiteId = (int)_peninsulaSiteId; checklistViewModel.SiteVisit = new SiteVisitViewModel { VisitDate = new DateTime(2000,2,14) }; checklistViewModel.Questions.Add(new QuestionAnswerViewModel() { Question = new QuestionViewModel() { Id = question.Id, PossibleResponses = question.PossibleResponses.Select(x => new QuestionResponseViewModel() { Id = x.Id, ReportLetterStatement = x.ReportLetterStatement}).ToList() } }); checklistViewModel.Questions[0].Question.PossibleResponses.First(x => x.Id == responseIdOfQuestionToBeUpdated).ReportLetterStatement = "updated Report Letter statement"; var response = controller.PostChecklist(checklist.Id, checklistViewModel); savedChecklist.Questions[0].Question.PossibleResponses.ToList() .ForEach(x => Debug.WriteLine(x.ReportLetterStatement)); Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); Assert.That(savedChecklist.Questions.Count, Is.EqualTo(1)); Assert.That(savedChecklist.Questions[0].Question.PossibleResponses.First(x => x.Id == responseIdOfQuestionToBeUpdated).ReportLetterStatement, Is.EqualTo("updated Report Letter statement")); Assert.That(savedChecklist.Questions[0].Question.PossibleResponses.First(x => x.Id != responseIdOfQuestionToBeUpdated).ReportLetterStatement, Is.EqualTo(null)); }
private static AnswerViewModel Map(ChecklistAnswer answer, Question question) { if (answer != null) { AnswerViewModel model = new AnswerViewModel() { SupportingEvidence = answer.SupportingEvidence, ActionRequired = answer.ActionRequired, SelectedResponseId = answer.Response != null ? (Guid?) answer.Response.Id : null, QuestionId = answer.Question.Id, GuidanceNotes = answer.GuidanceNotes, Timescale = answer.Timescale == null ? null : new TimescaleViewModel() {Id = answer.Timescale.Id, Name = answer.Timescale.Name}, AssignedTo = null, QaComments = answer.QaComments, QaSignedOffBy = answer.QaSignedOffBy, ReportLetterStatement = answer.Response != null ? answer.Response.ReportLetterStatement : "" }; if (answer.AssignedTo != null) { model.AssignedTo = new AssignedToViewModel() { Id = (Guid?) answer.AssignedTo.Id, NonEmployeeName = answer.AssignedTo.FullName }; } else if (!string.IsNullOrEmpty(answer.EmployeeNotListed)) { model.AssignedTo = new AssignedToViewModel() { Id = (Guid?) Guid.Empty, NonEmployeeName = answer.EmployeeNotListed }; } return model; } else { return new AnswerViewModel() { QuestionId = question.Id }; } }
public void When_GetChecklist_is_called_With_Duplicate_Possible_Responses_For_Question_Database_Then_Only_Return_One_Instance_Of_Each() { //GIVEN var id = Guid.NewGuid(); var questionId = Guid.NewGuid(); var checklist = new Checklist(); var possibleResponseId = Guid.NewGuid(); var category = Category.Create(Guid.NewGuid(), "Category A"); var questions = new Question[] { Question.Create(questionId, "Question One", category, false, new UserForAuditing()), Question.Create(questionId, "Question one", category, false, new UserForAuditing()) }; var questionResponse1 = new QuestionResponse() {Id = possibleResponseId, Title = "Acceptable"}; var questionResponse2 = new QuestionResponse() {Id = possibleResponseId, Title = "Acceptable"}; questions.First().PossibleResponses.Add(questionResponse1); questions.First().PossibleResponses.Add(questionResponse2); var checklistQuestions = new ChecklistQuestion() { Id = questionId, Checklist = checklist, Question = questions.First() }; foreach (var question in questions) { checklist.Questions.Add(new ChecklistQuestion { Checklist = checklist, Question = question }); } checklist.Questions.Add(checklistQuestions); checklistRepo.Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(checklist); //when var target = new ChecklistController(dependencyFactory.Object); var result = target.GetChecklist(id); //THEN Assert.That(result.Questions.First().Question.PossibleResponses.Count, Is.EqualTo(1)); }
public void Given_existing_template_when_include_new_question_then_template_contains_new_question() { // given var checklistTemplateId = Guid.NewGuid(); var existingTemplate = new ChecklistTemplate() { Id = checklistTemplateId, Name = "ChecklistTemplate 1" }; existingTemplate.AddQuestion(new ChecklistTemplateQuestion { ChecklistTemplate = new ChecklistTemplate() { Id = checklistTemplateId }, Question = new Question { Id = Guid.NewGuid(), Deleted = false } },null); var newQuestion = new Question {Id = Guid.NewGuid()}; _questionRepository .Setup(x => x.GetById(newQuestion.Id)) .Returns(() => newQuestion); _checklistTemplateRepository .Setup(x => x.GetById(existingTemplate.Id)) .Returns(() => existingTemplate); ChecklistTemplate template1 = null; _checklistTemplateRepository .Setup(x => x.SaveOrUpdate(It.IsAny<ChecklistTemplate>())) .Callback( delegate(ChecklistTemplate x) { template1 = x; } ); // when var controller = GetTarget(); controller.UpdateTemplateQuestion(new UpdateTemplateQuestionRequest() { TemplateId = existingTemplate.Id, QuestionId = newQuestion.Id, Exclude = false }); //then Assert.That(template1.Questions.Count, Is.EqualTo(existingTemplate.Questions.Count)); Assert.That(template1.Questions[1].Question.Id, Is.EqualTo(newQuestion.Id)); }
private static AnswerViewModel Map(ChecklistAnswer answer, Question question) { if (answer != null) { AnswerViewModel model = new AnswerViewModel() { SupportingEvidence = answer.SupportingEvidence, ActionRequired = answer.ActionRequired, SelectedResponseId = answer.Response != null ? (Guid?) answer.Response.Id : null, QuestionId = answer.Question.Id, GuidanceNotes = answer.GuidanceNotes, Timescale = answer.Timescale == null ? null : new TimescaleViewModel() {Id = answer.Timescale.Id, Name = answer.Timescale.Name}, AssignedTo = null, QaComments = answer.QaComments, QaSignedOffBy = answer.QaSignedOffBy, QaSignedOffDate = answer.QaSignedOffDate, ReportLetterStatement = answer.Response != null ? answer.Response.ReportLetterStatement : "", QaCommentsResolved = answer.QaCommentsResolved, AreaOfNonCompliance = answer.AreaOfNonCompliance, SupportingDocumentationStatus = answer.SupportingDocumentationStatus, SupportingDocumentationDate = answer.SupportingDocumentationDate.ToUniversalTime() }; if (answer.AssignedTo != null) { model.AssignedTo = new AssignedToViewModel() { Id = (Guid?) answer.AssignedTo.Id, ForeName = answer.AssignedTo.Forename, Surname = answer.AssignedTo.Surname, FullName = answer.AssignedTo.FullName, EmailAddress = answer.AssignedTo.HasEmail ? answer.AssignedTo.GetEmail() : string.Empty }; } else if (!string.IsNullOrEmpty(answer.EmployeeNotListed)) { model.AssignedTo = new AssignedToViewModel() { Id = (Guid?) Guid.Empty, NonEmployeeName = answer.EmployeeNotListed }; } return model; } else { return new AnswerViewModel() { QuestionId = question.Id }; } }