Exemplo n.º 1
0
        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"));            
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        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()));
        }
Exemplo n.º 8
0
        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()));
        }
Exemplo n.º 9
0
        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()));
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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));
        }
Exemplo n.º 13
0
        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));
        }
Exemplo n.º 14
0
        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));
        }
Exemplo n.º 15
0
        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
                };
            }
        }
Exemplo n.º 16
0
        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));
        }
Exemplo n.º 18
0
        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
                };
            }
        }