public async Task DisplayWhenPostReturnsSurveyTitleAsTitleInTheModelWhenModelIsNotValid() { var mockSurveyManagementService = new Mock <ISurveyManagementService>(); var survey = new Tailspin.SurveyManagementService.Client.Models.Survey() { Title = "title", Questions = new List <Tailspin.SurveyManagementService.Client.Models.Question>() { new Tailspin.SurveyManagementService.Client.Models.Question() } }; mockSurveyManagementService.Setup(r => r.GetSurveyAsync(It.IsAny <string>())) .ReturnsAsync(survey); var surveyAnswer = new SurveyAnswer() { QuestionAnswers = new List <QuestionAnswer>() { new QuestionAnswer() } }; using (var controller = new SurveysController(mockSurveyManagementService.Object, new Mock <ISurveyAnswerService>().Object)) { controller.ModelState.AddModelError("error for test", "invalid model state"); var result = await controller.Display(string.Empty, surveyAnswer) as ViewResult; var model = result.ViewData.Model as MasterPageViewData; Assert.AreSame("title", model.Title); } }
public async Task DisplayWhenPostCallsSaveSurveyAnswerFromSurveyAnswerStoreWithAnswerReadFromTheParameterWhenModelIsValid() { var survey = new Tailspin.SurveyManagementService.Client.Models.Survey() { Questions = new List <Tailspin.SurveyManagementService.Client.Models.Question>() { new Tailspin.SurveyManagementService.Client.Models.Question() } }; var mockSurveyManagementService = new Mock <ISurveyManagementService>(); mockSurveyManagementService.Setup(r => r.GetSurveyAsync(It.IsAny <string>())) .ReturnsAsync(survey); var mockSurveyAnswerService = new Mock <ISurveyAnswerService>(); var surveyAnswer = new SurveyAnswer() { QuestionAnswers = new List <QuestionAnswer>() { new QuestionAnswer() { Answer = "answer" } } }; using (var controller = new SurveysController(mockSurveyManagementService.Object, mockSurveyAnswerService.Object)) { await controller.Display(string.Empty, surveyAnswer); } mockSurveyAnswerService.Verify(r => r.SaveSurveyAnswerAsync( It.Is <Tailspin.SurveyAnswerService.Client.Models.SurveyAnswer>(sa => "answer" == sa.QuestionAnswers[0].Answer)), Times.Once); }
public async Task DisplayWhenPostReturnsModelWithTheAnswersReadFromTheParameterWhenModelIsNotValid() { var mockSurveyManagementService = new Mock <ISurveyManagementService>(); var survey = new Tailspin.SurveyManagementService.Client.Models.Survey() { Questions = new List <Tailspin.SurveyManagementService.Client.Models.Question>() { new Tailspin.SurveyManagementService.Client.Models.Question() } }; mockSurveyManagementService.Setup(r => r.GetSurveyAsync(It.IsAny <string>())) .ReturnsAsync(survey); var surveyAnswer = new SurveyAnswer { QuestionAnswers = new List <QuestionAnswer>() { new QuestionAnswer { Answer = "answer" } } }; using (var controller = new SurveysController(mockSurveyManagementService.Object, new Mock <ISurveyAnswerService>().Object)) { controller.ModelState.AddModelError("error for test", "invalid model state"); var result = await controller.Display(string.Empty, surveyAnswer) as ViewResult; var model = result.ViewData.Model as PageViewData <SurveyAnswer>; Assert.AreEqual("answer", model.ContentModel.QuestionAnswers.First().Answer); } }
internal static Tailspin.Web.Shared.Models.SurveyAnswer ToSurveyAnswer(this Tailspin.SurveyManagementService.Client.Models.Survey survey) { if (survey == null) { throw new ArgumentNullException(nameof(survey)); } return(new Shared.Models.SurveyAnswer() { QuestionAnswers = survey.Questions.Select(q => q.ToQuestionAnswer()).ToList(), SlugName = survey.SlugName, Title = survey.Title }); }
internal static Tailspin.Web.Shared.Models.Survey ToSurvey(this Tailspin.SurveyManagementService.Client.Models.Survey survey) { if (survey == null) { throw new ArgumentNullException(nameof(survey)); } return(new Shared.Models.Survey() { CreatedOn = survey.CreatedOn, Questions = survey.Questions.Select(q => q.ToQuestion()).ToList(), TenantId = "", Title = survey.Title }); }
public async Task DisplayReturnsSurveyTitleAsTitleInTheModel() { var survey = new Tailspin.SurveyManagementService.Client.Models.Survey { Title = "title" }; var mockSurveyManagementService = new Mock <ISurveyManagementService>(); mockSurveyManagementService.Setup(r => r.GetSurveyAsync(It.IsAny <string>())) .ReturnsAsync(survey); using (var controller = new SurveysController(mockSurveyManagementService.Object, new Mock <ISurveyAnswerService>().Object)) { var result = await controller.Display(string.Empty) as ViewResult; var model = result.ViewData.Model as MasterPageViewData; Assert.AreSame("title", model.Title); } }
public async Task DisplayWhenPostThrowsIfSaveSurveyAnswersReadFromSurveyStoreHaveDifferentCountToTheSurveyAnswerParameter() { var surveyWith1Question = new Tailspin.SurveyManagementService.Client.Models.Survey() { Questions = new List <Tailspin.SurveyManagementService.Client.Models.Question>() { new Tailspin.SurveyManagementService.Client.Models.Question() } }; var mockSurveyManagementService = new Mock <ISurveyManagementService>(); mockSurveyManagementService.Setup(r => r.GetSurveyAsync(It.IsAny <string>())) .ReturnsAsync(surveyWith1Question); var surveyAnswerWithoutQuestions = new SurveyAnswer(); using (var controller = new SurveysController(mockSurveyManagementService.Object, new Mock <ISurveyAnswerService>().Object)) { await AssertEx.ThrowsExceptionAsync <ArgumentException>( async() => await controller.Display(string.Empty, surveyAnswerWithoutQuestions), string.Empty, null); } }
public async Task DisplayWhenPostCallsSaveSurveyAnswerFromSurveyAnswerStoreWithTheSlugParameterWhenModelIsValid() { var survey = new Tailspin.SurveyManagementService.Client.Models.Survey() { SlugName = "slug" }; var mockSurveyManagementService = new Mock <ISurveyManagementService>(); mockSurveyManagementService.Setup(r => r.GetSurveyAsync(It.IsAny <string>())) .ReturnsAsync(survey); var mockSurveyAnswerService = new Mock <ISurveyAnswerService>(); using (var controller = new SurveysController(mockSurveyManagementService.Object, mockSurveyAnswerService.Object)) { await controller.Display("slug", new SurveyAnswer()); } mockSurveyAnswerService.Verify(r => r.SaveSurveyAnswerAsync( It.Is <Tailspin.SurveyAnswerService.Client.Models.SurveyAnswer>( sa => "slug" == sa.SlugName)), Times.Once); }