public void Given_a_Valid_ActionPlan_Exists_Then_Create_Actions_For_ActionPlan() { _timescaleRepositories.Setup(x => x.GetById(It.IsAny<long>())) .Returns(new Timescale() {Id = 1, Name = "One Month"}); var category1 = new CategoryViewModel(); category1.Id = Guid.NewGuid(); category1.Title = "Category 1"; var category2 = new CategoryViewModel(); category2.Id = Guid.NewGuid(); category2.Title = "Category 2"; //Get view model var questions = GetListOfQuestions(); var checklistViewModel = GetChecklistViewModelFromQuestions(questions); 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.Site = new SiteViewModel { Id = checklistViewModel.SiteId.Value, Address1 = "1 Green Lane", Postcode = "M1 1AA" }; checklistViewModel.SiteVisit = new SiteVisitViewModel { VisitDate = "14/02/2000" }; checklistViewModel.Submit = true; var responseId = Guid.NewGuid(); var questionAnswer1 = new QuestionAnswerViewModel(); questionAnswer1.Question = new QuestionViewModel(); questionAnswer1.Question.Id = Guid.NewGuid(); questionAnswer1.Question.Text = "Question 1"; questionAnswer1.Question.PossibleResponses = new List<QuestionResponseViewModel>(); questionAnswer1.Question.PossibleResponses.Add(item: new QuestionResponseViewModel { Id = responseId, ResponseType = ResponseType.ImprovementRequired.ToString(), Title = "Improvement Required" }); questionAnswer1.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = Guid.NewGuid() }); questionAnswer1.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = Guid.NewGuid() }); questionAnswer1.Question.Category = category1; questionAnswer1.Question.CategoryId = category1.Id; questionAnswer1.Answer = new AnswerViewModel(); questionAnswer1.Answer.QuestionId = questionAnswer1.Question.Id; questionAnswer1.Answer.ActionRequired = "ActionRequired 1"; questionAnswer1.Answer.GuidanceNotes = "GuidanceNotes 1.1"; questionAnswer1.Answer.Timescale = new TimescaleViewModel() { Id = 1, Name = "One Month" }; questionAnswer1.Answer.AssignedTo = new AssignedToViewModel() { Id = Guid.NewGuid(), NonEmployeeName = "Name 1" }; questionAnswer1.Answer.SelectedResponseId = responseId; var questions1 = new List<QuestionAnswerViewModel>(); questions1.Add(questionAnswer1); var responseId2 = Guid.NewGuid(); var questionAnswer2 = new QuestionAnswerViewModel(); questionAnswer2.Question = new QuestionViewModel(); questionAnswer2.Question.Id = Guid.NewGuid(); questionAnswer2.Question.Text = "Question 2"; questionAnswer2.Question.PossibleResponses = new List<QuestionResponseViewModel>(); questionAnswer2.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = responseId2, ResponseType = ResponseType.ImprovementRequired.ToString(), Title = "Improvement Required" }); questionAnswer2.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = Guid.NewGuid() }); questionAnswer2.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = Guid.NewGuid() }); questionAnswer2.Question.Category = category2; questionAnswer2.Question.CategoryId = category2.Id; questionAnswer2.Answer = new AnswerViewModel(); questionAnswer2.Answer.QuestionId = questionAnswer2.Question.Id; questionAnswer2.Answer.ActionRequired = "ActionRequired 2"; questionAnswer2.Answer.GuidanceNotes = "GuidanceNotes 2.2"; questionAnswer2.Answer.Timescale = new TimescaleViewModel() { Id = 1, Name = "One Month" }; questionAnswer2.Answer.AssignedTo = new AssignedToViewModel() { Id = Guid.NewGuid(), NonEmployeeName = "Name 2" }; questionAnswer2.Answer.SelectedResponseId = responseId2; checklistViewModel.Questions.Add(questionAnswer1); checklistViewModel.Questions.Add(questionAnswer2); Checklist savedChecklist = null; _checklistRepository.Setup(x => x.SaveOrUpdate(It.IsAny<Checklist>())) .Callback( delegate(Checklist x) { savedChecklist = x; } ); _categoryRepository .Setup(x => x.GetById(It.IsAny<Guid>())) .Returns(new Category()); var controller = GetTarget(); var response = controller.PostChecklist(checklistViewModel.Id, checklistViewModel); Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); Assert.That(savedChecklist.ActionPlan.Actions, Is.Not.Null); Assert.That(savedChecklist.ActionPlan.Title, Is.EqualTo("Visit Report - 1 Green Lane - M1 1AA - 14/02/2000")); Assert.That(savedChecklist.ActionPlan.Actions.Count(), Is.EqualTo(2)); }
//TODO: finish public void Given_a_valid_view_model_is_supplied_When_PostChecklist_is_called_Then_the_checklist_is_created() { var category1 = new CategoryViewModel(); category1.Id = Guid.NewGuid(); category1.Title = "Category 1"; var category2 = new CategoryViewModel(); category2.Id = Guid.NewGuid(); category2.Title = "Category 2"; var checklistViewModel = new ChecklistViewModel() { Id = Guid.NewGuid(), ClientId = 21323, SiteId = 2313 }; var questionAnswer1 = new QuestionAnswerViewModel(); questionAnswer1.Question = new QuestionViewModel(); questionAnswer1.Question.Id = Guid.NewGuid(); questionAnswer1.Question.Text = "Question 1"; questionAnswer1.Question.PossibleResponses = new List<QuestionResponseViewModel>(); questionAnswer1.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = Guid.NewGuid() }); questionAnswer1.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = Guid.NewGuid() }); questionAnswer1.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = Guid.NewGuid() }); questionAnswer1.Question.Category = category1; questionAnswer1.Question.CategoryId = category1.Id; questionAnswer1.Answer = new AnswerViewModel(); questionAnswer1.Answer.QuestionId = questionAnswer1.Question.Id; var questionAnswer2 = new QuestionAnswerViewModel(); questionAnswer2.Question = new QuestionViewModel(); questionAnswer2.Question.Id = Guid.NewGuid(); questionAnswer2.Question.Text = "Question 2"; questionAnswer2.Question.PossibleResponses = new List<QuestionResponseViewModel>(); questionAnswer2.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = Guid.NewGuid() }); questionAnswer2.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = Guid.NewGuid() }); questionAnswer2.Question.PossibleResponses.Add(new QuestionResponseViewModel { Id = Guid.NewGuid() }); questionAnswer2.Question.Category = category2; questionAnswer2.Question.CategoryId = category2.Id; questionAnswer2.Answer = new AnswerViewModel(); questionAnswer2.Answer.QuestionId = questionAnswer2.Question.Id; var controller = GetTarget(); var response = controller.PostChecklist(checklistViewModel.Id, checklistViewModel); }