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);
            }
        }
示例#4
0
        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
            });
        }
示例#5
0
        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);
        }