public void WhenNameIsSet_ThenHasChanges() { var questionnaireTemplate = new QuestionnaireTemplate { Title = "questionnaire" }; var viewModel = new QuestionnaireViewModel( CreateStateMock(questionnaireTemplate).Object, new Mock <IQuestionnaireRepository>().Object, new Mock <ISingleViewUIService>().Object); viewModel.Questionnaire.Name = "name"; Assert.IsTrue(viewModel.HasChanges); }
public void WhenQuestionnaireIsCompleted_ThenCanSubmitReturnsTrue() { var viewModel = new QuestionnaireViewModel( CreateStateMock(CreateQuestionnaireTemplate()).Object, new Mock <IQuestionnaireRepository>().Object, new Mock <ISingleViewUIService>().Object); viewModel.Questionnaire.Name = "QuestionnaireName"; viewModel.Questionnaire.Age = 25; AnswerAllQuestions(viewModel); // Assertions Assert.IsTrue(viewModel.CanSubmit); }
public override void ViewDidLoad() { base.ViewDidLoad(); _viewModel = new QuestionnaireViewModel(); // Generate and set the correlation id for current authentication flow UpdateCorrelationId(LogUtils.GenerateCorrelationId()); SetTexts(); SetStyling(); UpdateUIWhenSelectionChanges(); SetAccessibilityAttributes(); AddObservers(); }
public void WhenGettingCalculatedPropertiesBeforeGettingAQuestionnaire_ThenReturnsDefaultValues() { Action <IOperationResult <Questionnaire> > callback = null; var repository = new Mock <IQuestionnaireRepository>(); repository.Setup(r => r.GetQuestionnaireAsync(It.IsAny <Action <IOperationResult <Questionnaire> > >())) .Callback <Action <IOperationResult <Questionnaire> > >(c => callback = c); var viewModel = new QuestionnaireViewModel(repository.Object); Assert.AreEqual(0, viewModel.TotalQuestions); Assert.AreEqual(0, viewModel.UnansweredQuestions); Assert.IsFalse(viewModel.CanSubmit); }
public async Task <IActionResult> Question(QuestionnaireViewModel questionnaireViewModel) { var result = await _question.AddQuestionnaire(questionnaireViewModel); if (result != 0) { var Response = new ResponseViewModel(true, HttpStatusCode.OK, "SUCCESS", result); return(Ok(Response)); } else { var Response = new ResponseViewModel(false, HttpStatusCode.NoContent, "failed", null); return(Ok(Response)); } }
public IActionResult Questionnaire(QuestionnaireViewModel viewModel) { ModelState.Remove("Order"); var scrollBtnValue = Request.Form["scrollBtn"]; int step; switch (scrollBtnValue) { case "prev": step = -1; break; case "next": step = 1; break; default: step = 0; break; } var questionList = _context.BinaryQuestions; var question = questionList.FirstOrDefault(q => q.GetOrder() == viewModel.Order + step); if (viewModel.SelectedAnswers != null && viewModel.SelectedAnswers.Any(a => a.Equals("True"))) { var result = _context.BinaryQuestions.Include(q => q.Result).FirstOrDefault(q => q.Order == viewModel.Order)?.Result; return(View("Result", result)); } if (question == null) { var result = _context.Results.LastOrDefault(); return(View("Result", result)); } viewModel.Order = question.Order; viewModel.Text = question.Text; viewModel.Answers = question.Answers; return(View(viewModel)); }
public void WhenCurrentStateIsModified_ThenViewModelNotifiesUpdate() { var questionnaireTemplate = CreateQuestionnaireTemplate(); var viewModel = new QuestionnaireViewModel( CreateStateMock(questionnaireTemplate).Object, new Mock <IQuestionnaireRepository>().Object, new Mock <ISingleViewUIService>().Object); var changeTracker = new PropertyChangeTracker(viewModel); viewModel.CurrentState = "newState"; // Assertions Assert.IsTrue(changeTracker.ChangedProperties.Contains("CurrentState")); }
public void WhenTheViewModelIsCreatedWithATemplate_ThenItCreatesAQuestionnaireAndTheViewModelsForItsQuestions() { var questionnaireTemplate = CreateQuestionnaireTemplate(); var viewModel = new QuestionnaireViewModel( CreateStateMock(questionnaireTemplate).Object, new Mock <IQuestionnaireRepository>().Object, new Mock <ISingleViewUIService>().Object); Assert.AreSame(questionnaireTemplate, viewModel.Questionnaire.Template); Assert.AreEqual(2, viewModel.Questions.Count); CollectionAssert.AreEqual( new[] { "Enter your name", "Enter your address" }, viewModel.Questions.Cast <OpenQuestionViewModel>().Select(q => q.Question.QuestionText).ToArray()); }
public ActionResult Edit(QuestionnaireViewModel model) { if (ModelState.IsValid) { try { Service.UpdateQuestionnaire(Mapper.Map <Questionnaire>(model)); return(RedirectToAction("Index")); } catch { return(View(model)); } } return(View(model)); }
public void WhenQuestionIsAnswered_ThenAllUnansweredQuestionsAreUpdated() { var viewModel = new QuestionnaireViewModel( CreateStateMock(CreateQuestionnaireTemplate()).Object, new Mock <IQuestionnaireRepository>().Object, new Mock <ISingleViewUIService>().Object); var question = viewModel.Questions.First() as OpenQuestionViewModel; question.Question.Response = "some text"; // Assertions Assert.AreEqual(2, viewModel.TotalQuestions); Assert.AreEqual(1, viewModel.UnansweredQuestions); }
public void WhenQuestionnaireHasNumericQuestion_ThenTheMatchingViewModelIsCreated() { Action <IOperationResult <Questionnaire> > callback = null; var repository = new Mock <IQuestionnaireRepository>(); repository.Setup(r => r.GetQuestionnaireAsync(It.IsAny <Action <IOperationResult <Questionnaire> > >())) .Callback <Action <IOperationResult <Questionnaire> > >(c => callback = c); var viewModel = new QuestionnaireViewModel(repository.Object); callback(CreateQuestionnaireResult(new Questionnaire(new NumericQuestion("Numeric")))); // Assertions Assert.IsInstanceOfType(viewModel.Questions[0], typeof(NumericQuestionViewModel)); }
public virtual ActionResult Edit(QuestionnaireViewModel model) { if (ModelState.IsValid) { var questionnaire = _questionnairesRepository.GetById(model.QuestionnaireId); questionnaire.OrderNumber = model.OrderNumber; questionnaire.Name = model.Name; questionnaire.IsActive = model.IsActive; questionnaire.KeyType = model.KeyType; _questionnairesRepository.Update(questionnaire); return(RedirectToAction(MVC.Admin.Questionnaires.List())); } return(View(model)); }
public void WhenQuestionnaireIsCreated_ThenAllQuestionsAreUnanswered() { Action <IOperationResult <Questionnaire> > callback = null; var repository = new Mock <IQuestionnaireRepository>(); repository.Setup(r => r.GetQuestionnaireAsync(It.IsAny <Action <IOperationResult <Questionnaire> > >())) .Callback <Action <IOperationResult <Questionnaire> > >(c => callback = c); var viewModel = new QuestionnaireViewModel(repository.Object); callback(CreateQuestionnaireResult()); // Assertions Assert.AreEqual(2, viewModel.TotalQuestions); Assert.AreEqual(2, viewModel.UnansweredQuestions); }
public void WhenQuestionIsAnswered_ThenQuestionnaireModelNotifiesUpdate() { var viewModel = new QuestionnaireViewModel( CreateStateMock(CreateQuestionnaireTemplate()).Object, new Mock <IQuestionnaireRepository>().Object, new Mock <ISingleViewUIService>().Object); var changeTracker = new PropertyChangeTracker(viewModel); var question = viewModel.Questions.First() as OpenQuestionViewModel; question.Question.Response = "some text"; // Assertions Assert.IsTrue(changeTracker.ChangedProperties.Contains("UnansweredQuestions")); }
public void WhenQuestionnaireHasNumericQuestion_ThenTheMatchingViewModelIsCreated() { var questionnaireTemplate = new QuestionnaireTemplate { Questions = { new NumericQuestionTemplate { QuestionText = "Numeric" } } }; var viewModel = new QuestionnaireViewModel( CreateStateMock(questionnaireTemplate).Object, new Mock <IQuestionnaireRepository>().Object, new Mock <ISingleViewUIService>().Object); Assert.IsInstanceOfType(viewModel.Questions[0], typeof(NumericQuestionViewModel)); }
public void Index_WhenCalled_ReturnsViewWithQuestionnaireViewModel() { //Arrange SetupQuestionnaireController(); var expectedQuestionnaire = new QuestionnaireViewModel() { QuestionnaireTitle = "My expected quesitons" }; _httpClientWrapperMock.Setup(m => m.GetAsync <QuestionnaireViewModel>("Questions/Get")).Returns(expectedQuestionnaire); //Act var result = (QuestionnaireViewModel)_questionnaireController.Index().Result.ViewData.Model; //Assert Assert.That(result.QuestionnaireTitle, Is.EqualTo(expectedQuestionnaire.QuestionnaireTitle)); }
public void ShouldReturnAllFalseAsOnlyOneAnswerEntered() { //Arrange List <string> answ = new List <string>(); answ.Add("Havana"); var questionnaireViewModel = new QuestionnaireViewModel(); questionnaireViewModel.Submit(answ); var res = questionnaireViewModel.Results; //Assert Assert.That(res[0], Is.EqualTo(false)); Assert.That(res[1], Is.EqualTo(false)); Assert.That(res[2], Is.EqualTo(false)); Assert.That(res[3], Is.EqualTo(false)); }
public void WhenQuestionnaireIsNotCompleted_ThenCanSubmitReturnsFalse() { Action <IOperationResult <Questionnaire> > callback = null; var repository = new Mock <IQuestionnaireRepository>(); repository.Setup(r => r.GetQuestionnaireAsync(It.IsAny <Action <IOperationResult <Questionnaire> > >())) .Callback <Action <IOperationResult <Questionnaire> > >(c => callback = c); var viewModel = new QuestionnaireViewModel(repository.Object); callback(CreateQuestionnaireResult()); AnswerAllQuestions(viewModel); // Assertions Assert.IsFalse(viewModel.CanSubmit); }
public virtual ActionResult Create(QuestionnaireViewModel model) { if (ModelState.IsValid) { var questionnaire = new Questionnaire() { OrderNumber = model.OrderNumber, Name = model.Name, IsActive = model.IsActive, KeyType = model.KeyType }; _questionnairesRepository.Create(questionnaire); return(RedirectToAction(MVC.Admin.Questionnaires.List())); } return(View(model)); }
public ActionResult Questionnaire(int filmID) { QuestionnaireViewModel vm = new QuestionnaireViewModel() { MemberID = CurrentMember.MemberID, FilmID = filmID, IsCollection = false }; var collection = db.FilmCollections.Where(fc => fc.FilmID == filmID).FirstOrDefault(); if (collection != null) { vm.IsCollection = true; vm.CollectionFilms = db.Films.Where(f => f.FilmCollectionID == collection.FilmCollectionID).ToList(); } return(View(vm)); }
public async Task AnswerTheLastQuestionPostTest() { var homeController = InitializeHomeController(out var repository, out var context); var respondentIdExpected = await repository.CalculateNewRespondentId(); var questionnaireVm = new QuestionnaireViewModel { QuestionId = 6, IsThisLastQuestion = true, RespondentId = respondentIdExpected, AnswerContent = "True" }; var result = await homeController.AnswerTheQuestion(questionnaireVm); Assert.True(questionnaireVm.AnswerContentAsBool); var view = Assert.IsType <RedirectToActionResult>(result); Assert.True(view.ActionName.Equals("FinishQuestionnaire", StringComparison.InvariantCultureIgnoreCase)); }
public async Task <Double> AddQuestionnaire(QuestionnaireViewModel questionnaireViewModel) { List <QA> qa = questionnaireViewModel.QA; //store sum of answers_weights Double sum = 0; for (int i = 0; i < qa.Count; i++) { int question = qa[i].QID; int answer = qa[i].AID; int weight = _yamamadbcontext.Answers.Where(x => x.Idanswers == answer).Select(x => x.AnswerWeight).SingleOrDefault(); sum += weight; } double avg = sum / (qa.Count); //if (questionnaireViewModel.Factory != 0) { client = questionnaireViewModel.Factory; } else { client = questionnaireViewModel.Project; } CustomerSatisfactionReports reports = new CustomerSatisfactionReports { ProjectId = (questionnaireViewModel.ProjectId != 0) ? questionnaireViewModel.ProjectId : (int?)null, FactoryId = (questionnaireViewModel.FactoryId != 0) ? questionnaireViewModel.FactoryId : (int?)null, Notes = questionnaireViewModel.Notes, SatisfactionEvaluation = avg }; await _yamamadbcontext.CustomerSatisfactionReports.AddAsync(reports); await _yamamadbcontext.SaveChangesAsync(); //get id for this report var RecentReport = _yamamadbcontext.CustomerSatisfactionReports.OrderByDescending(p => p.IdcustomerSatisfactionReports).FirstOrDefault(); int RecentReportID = RecentReport.IdcustomerSatisfactionReports; //assign every report with its questions and answers await AddToLink_R_Q_A(qa, RecentReportID); return(0); }
public ActionResult ConfirmResubmission(int?id, QuestionnaireViewModel model) { if (ModelState.IsValid) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Questionnaire questionnaire = db.Questionnaires.Find(id); if (questionnaire == null) { return(HttpNotFound()); } // Review the questionnaire. questionnaire.ConfirmResubmission = model.ConfirmResubmission; db.Entry(questionnaire).State = EntityState.Modified; db.SaveChanges(); // Change questionaire and request status. // If Brand Manager approves questionnaire. if (questionnaire.ConfirmResubmission == Review.Approved) { questionnaire.Status = QuestionnaireStatus.BMQuestionnaireApproval; } db.Entry(questionnaire).State = EntityState.Modified; db.SaveChanges(); var request = db.CPTRequests.Where(r => r.QuestionnaireId == questionnaire.QuestionnaireID).First(); if (questionnaire.Status == QuestionnaireStatus.BMQuestionnaireApproval) { request.RequestStatus = RequestStatus.BMQuestionnaireApproval; db.Entry(request).State = EntityState.Modified; db.SaveChanges(); } return(RedirectToAction("Details", "Questionnaire", new { id = questionnaire.QuestionnaireID })); } return(View()); }
public async Task <ActionResult> Index(QuestionnaireViewModel questionnaire) { ContentResult result = new ContentResult(); if (ModelState.IsValid) { int percentage = await _questionService.MarkAnswers(questionnaire.Questions.Select(q => q.Answer)); result.Content = string.Join("<br />", questionnaire.QuestionnaireTitle, string.Join(",", questionnaire.Questions.Select(q => q.Answer)), "Thank you. Your answers have been submitted."); result.Content += string.Format("<br /><br />You scored {0}%", percentage); return(result); } return(View(questionnaire)); }
public ViewResult Index() { var result = _questionResult.JsonResult(); QuestionnaireViewModel questions = null; if (result != null) { questions = JsonConvert.DeserializeObject <QuestionnaireViewModel>(result); } else { questions = new QuestionnaireViewModel(); ModelState.AddModelError(string.Empty, "Server error."); } return(View(questions)); }
public void WhenCurrentStateIsModified_ThenViewModelNotifiesUpdate() { Action <IOperationResult <Questionnaire> > callback = null; var repository = new Mock <IQuestionnaireRepository>(); repository.Setup(r => r.GetQuestionnaireAsync(It.IsAny <Action <IOperationResult <Questionnaire> > >())) .Callback <Action <IOperationResult <Questionnaire> > >(c => callback = c); var viewModel = new QuestionnaireViewModel(repository.Object); callback(CreateQuestionnaireResult()); var changeTracker = new PropertyChangeTracker(viewModel); viewModel.CurrentState = "newState"; // Assertions Assert.IsTrue(changeTracker.ChangedProperties.Contains("CurrentState")); }
public void WhenAgeIsSetOnTheModel_ThenTheHasErrorPropertyInTheViewModelIsClearedAndSinglePropertyChangeNotificationIsFired() { var questionnaireTemplate = new QuestionnaireTemplate { Title = "questionnaire" }; var viewModel = new QuestionnaireViewModel( CreateStateMock(questionnaireTemplate).Object, new Mock <IQuestionnaireRepository>().Object, new Mock <ISingleViewUIService>().Object); viewModel.Questionnaire.Age = 25; viewModel.Questionnaire.Name = "name"; Assert.IsTrue(viewModel.CanSubmit); viewModel.HasAgeBindingError = true; Assert.IsFalse(viewModel.CanSubmit); }
// GET: Questionnaire/ExecutionDetails/5 public ActionResult ExecutionDetails(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Questionnaire questionnaire = db.Questionnaires.Find(id); if (questionnaire == null) { return(HttpNotFound()); } var model = new QuestionnaireViewModel { Id = questionnaire.QuestionnaireID, QuestionnaireTitle = questionnaire.QuestionnaireTitle, StartDate = questionnaire.StartDate, EndDate = questionnaire.EndDate, ResponseQuantityRequired = questionnaire.ResponseQuantityRequired, Status = questionnaire.Status, QuestionnaireTypeId = questionnaire.QuestionnaireTypeId, QuestionnaireTypeName = db.QuestionnaireTypes.Where(q => q.QuestionnaireTypeID == questionnaire.QuestionnaireTypeId).Select(q => q.QuestionnaireTypeName).First(), CRUSEmployeeID = questionnaire.CRUSEmployeeID, CRUSEmployeeName = db.CRUSupervisors.Find(questionnaire.CRUSEmployeeID).FullName, }; if (questionnaire.CRUMEmployeeID != null) { model.CRUMEmployeeID = questionnaire.CRUMEmployeeID; model.CRUMEmployeeName = db.CRUMembers.Find(questionnaire.CRUMEmployeeID).FullName; } var list = db.Employees.ToList().Select(e => new { e.Id, e.FullName }); ViewBag.EmployeeId = new SelectList(list, "Id", "FullName"); ViewBag.QuestionnaireTypeId = new SelectList(db.QuestionnaireTypes, "QuestionnaireTypeId", "QuestionnaireTypeName"); return(View(model)); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); QuestionnaireViewModel vm = new QuestionnaireViewModel(); this.viewModel = vm; this.questiontextView = FindViewById <TextView> (Resource.Id.textView1); this.button1 = FindViewById <Button> (Resource.Id.button1); this.button2 = FindViewById <Button> (Resource.Id.button2); this.button3 = FindViewById <Button> (Resource.Id.button3); this.button4 = FindViewById <Button> (Resource.Id.button4); this.answerButtons = new List <Button> { button1, button2, button3, button4 }; foreach (Button b in answerButtons) { b.Click += (object sender, EventArgs e) => { int answerIdx = answerButtons.IndexOf(b) + 1; this.viewModel.SubmitAnswer(answerIdx); }; } vm.questionChangeHandler += (object sender, EventArgs e) => { RefreshView(); }; vm.gameEndedHandler += (object sender, EventArgs e) => { var alertMaker = new AlertMaker(this); alertMaker.DisplayAlert("Game over", string.Format("Vos avez un score de {0} %", this.viewModel.score)); }; RefreshView(); }
public void ShouldGetAnswersWrong() { //Arrange List <string> answ = new List <string>(); answ.Add("AAAAAAAAA"); answ.Add("6534"); answ.Add(" "); answ.Add(""); var questionnaireViewModel = new QuestionnaireViewModel(); questionnaireViewModel.Submit(answ); var res = questionnaireViewModel.Results; //Assert Assert.That(res[0], Is.EqualTo(false)); Assert.That(res[1], Is.EqualTo(false)); Assert.That(res[2], Is.EqualTo(false)); Assert.That(res[3], Is.EqualTo(false)); }