Exemple #1
0
        public async Task AppendSurveyAnswerIdToAnswersListGetTheAnswersListBlob()
        {
            var mockSurveyAnswerContainerFactory     = new Mock <AzureBlobContainerFactory <Tailspin.SurveyAnswerService.Models.SurveyAnswer> >();
            var mockSurveyAnswerListContainerFactory = new Mock <AzureBlobContainerFactory <List <string> > >();
            var mockSurveyAnswerContainer            = new Mock <IAzureBlobContainer <Tailspin.SurveyAnswerService.Models.SurveyAnswer> >();
            var mockSurveyAnswerListContainer        = new Mock <IAzureBlobContainer <List <string> > >();
            var service = new SurveyAnswerService(
                this.CreateServiceContext(),
                mockSurveyAnswerContainerFactory.Object,
                mockSurveyAnswerListContainerFactory.Object,
                new Mock <ISurveyAnalysisService>().Object);

            mockSurveyAnswerContainerFactory.Setup(f => f(It.IsAny <string>()))
            .Returns(mockSurveyAnswerContainer.Object);
            mockSurveyAnswerListContainerFactory.Setup(f => f(It.IsAny <string>()))
            .Returns(mockSurveyAnswerListContainer.Object);

            var surveyAnswer = new SurveyAnswer()
            {
                SlugName = "slug-name"
            };

            await service.SaveSurveyAnswerAsync(surveyAnswer);

            mockSurveyAnswerListContainer.Verify(f => f.SaveAsync(It.Is <string>(s => s == surveyAnswer.SlugName),
                                                                  It.IsAny <List <string> >()), Times.Once);
        }
Exemple #2
0
        public async Task SaveSurveyAnswerSavesAnswerInBlobContainerWithId()
        {
            var mockSurveyAnswerContainerFactory     = new Mock <AzureBlobContainerFactory <Tailspin.SurveyAnswerService.Models.SurveyAnswer> >();
            var mockSurveyAnswerListContainerFactory = new Mock <AzureBlobContainerFactory <List <string> > >();
            var mockSurveyAnswerContainer            = new Mock <IAzureBlobContainer <Tailspin.SurveyAnswerService.Models.SurveyAnswer> >();
            var service = new SurveyAnswerService(
                this.CreateServiceContext(),
                mockSurveyAnswerContainerFactory.Object,
                mockSurveyAnswerListContainerFactory.Object,
                new Mock <ISurveyAnalysisService>().Object);

            mockSurveyAnswerContainerFactory.Setup(f => f(It.IsAny <string>()))
            .Returns(mockSurveyAnswerContainer.Object);
            mockSurveyAnswerListContainerFactory.Setup(f => f(It.IsAny <string>()))
            .Returns(new Mock <IAzureBlobContainer <List <string> > >().Object);

            var surveyAnswer = new SurveyAnswer()
            {
                SlugName = "slug-name"
            };

            await service.SaveSurveyAnswerAsync(surveyAnswer);

            mockSurveyAnswerContainer.Verify(f => f.SaveAsync(It.Is <string>(s => s.Length == 19),
                                                              It.IsAny <Tailspin.SurveyAnswerService.Models.SurveyAnswer>()));
        }
Exemple #3
0
        public async Task SaveAndGet()
        {
            var objId            = Guid.NewGuid().ToString();
            var questionAnswers1 = new List <Client.Models.QuestionAnswer>();

            questionAnswers1.Add(new Client.Models.QuestionAnswer {
                QuestionText = "q1", QuestionType = Client.Models.QuestionType.SimpleText, Answer = "testanswer1"
            });
            questionAnswers1.Add(new Client.Models.QuestionAnswer {
                QuestionText = "q2", QuestionType = Client.Models.QuestionType.FiveStars, Answer = "3"
            });

            var questionAnswers2 = new List <Client.Models.QuestionAnswer>();

            questionAnswers2.Add(new Client.Models.QuestionAnswer {
                QuestionText = "q1", QuestionType = Client.Models.QuestionType.SimpleText, Answer = "testanswer2"
            });
            questionAnswers2.Add(new Client.Models.QuestionAnswer {
                QuestionText = "q2", QuestionType = Client.Models.QuestionType.FiveStars, Answer = "5"
            });

            await target.SaveSurveyAnswerAsync(new Client.Models.SurveyAnswer {
                SlugName = "test-title" + objId, QuestionAnswers = questionAnswers1
            });

            await target.SaveSurveyAnswerAsync(new Client.Models.SurveyAnswer {
                SlugName = "test-title" + objId, QuestionAnswers = questionAnswers2
            });

            var surveyAnswerBrowsingContext = await target.GetSurveyAnswerBrowsingContextAsync("test-title" + objId, null);

            Assert.AreEqual(2, surveyAnswerBrowsingContext.SurveyAnswer.QuestionAnswers.Count);
            Assert.AreEqual("testanswer1", surveyAnswerBrowsingContext.SurveyAnswer.QuestionAnswers.Single(a => a.QuestionText == "q1").Answer);

            Assert.IsNull(surveyAnswerBrowsingContext.PreviousAnswerId);

            var surveyAnswerBrowsingContextNext = await target.GetSurveyAnswerBrowsingContextAsync("test-title" + objId, surveyAnswerBrowsingContext.NextAnswerId);

            Assert.AreEqual(2, surveyAnswerBrowsingContextNext.SurveyAnswer.QuestionAnswers.Count);
            Assert.AreEqual("testanswer2", surveyAnswerBrowsingContextNext.SurveyAnswer.QuestionAnswers.Single(a => a.QuestionText == "q1").Answer);

            Assert.IsNull(surveyAnswerBrowsingContextNext.NextAnswerId);
        }
Exemple #4
0
        public async Task AppendSurveyAnswerIdToAnswersListSavesModifiedListToTheAnswersListBlob()
        {
            var mockSurveyAnswerContainerFactory     = new Mock <AzureBlobContainerFactory <Tailspin.SurveyAnswerService.Models.SurveyAnswer> >();
            var mockSurveyAnswerListContainerFactory = new Mock <AzureBlobContainerFactory <List <string> > >();
            var mockSurveyAnswerContainer            = new Mock <IAzureBlobContainer <Tailspin.SurveyAnswerService.Models.SurveyAnswer> >();
            var mockSurveyAnswerListContainer        = new Mock <IAzureBlobContainer <List <string> > >();
            var service = new SurveyAnswerService(
                this.CreateServiceContext(),
                mockSurveyAnswerContainerFactory.Object,
                mockSurveyAnswerListContainerFactory.Object,
                new Mock <ISurveyAnalysisService>().Object);

            mockSurveyAnswerContainerFactory.Setup(f => f(It.IsAny <string>()))
            .Returns(mockSurveyAnswerContainer.Object);
            mockSurveyAnswerListContainerFactory.Setup(f => f(It.IsAny <string>()))
            .Returns(mockSurveyAnswerListContainer.Object);

            var answerIdsList = new List <string> {
                "id 1", "id 2"
            };
            List <string> savedList = null;

            mockSurveyAnswerListContainer.Setup(c => c.GetAsync("slug-name"))
            .ReturnsAsync(answerIdsList);
            mockSurveyAnswerListContainer.Setup(c => c.SaveAsync(It.IsAny <string>(), It.IsAny <List <string> >()))
            .Callback <string, List <string> >((s, l) => savedList = l)
            .Returns(Task.FromResult(0));


            var surveyAnswer = new SurveyAnswer()
            {
                SlugName = "slug-name"
            };

            await service.SaveSurveyAnswerAsync(surveyAnswer);

            Assert.AreEqual(3, savedList.Count);
        }
Exemple #5
0
        public async Task SaveSurveyAnswerCreatesBlobContainerForGivenSurvey()
        {
            var mockSurveyAnswerContainerFactory     = new Mock <AzureBlobContainerFactory <Tailspin.SurveyAnswerService.Models.SurveyAnswer> >();
            var mockSurveyAnswerListContainerFactory = new Mock <AzureBlobContainerFactory <List <string> > >();
            var service = new SurveyAnswerService(
                this.CreateServiceContext(),
                mockSurveyAnswerContainerFactory.Object,
                mockSurveyAnswerListContainerFactory.Object,
                new Mock <ISurveyAnalysisService>().Object);

            mockSurveyAnswerContainerFactory.Setup(f => f(It.IsAny <string>()))
            .Returns(new Mock <IAzureBlobContainer <Tailspin.SurveyAnswerService.Models.SurveyAnswer> >().Object);
            mockSurveyAnswerListContainerFactory.Setup(f => f(It.IsAny <string>()))
            .Returns(new Mock <IAzureBlobContainer <List <string> > >().Object);

            var surveyAnswer = new SurveyAnswer()
            {
                SlugName = "slug-name"
            };
            await service.SaveSurveyAnswerAsync(surveyAnswer);

            mockSurveyAnswerContainerFactory.Verify(f => f("slug-name-answers"));
        }
Exemple #6
0
        public async Task SaveSurveyAnswerWithNullSurveyAnswer()
        {
            var mockSurveyAnswerContainerFactory     = new Mock <AzureBlobContainerFactory <Tailspin.SurveyAnswerService.Models.SurveyAnswer> >();
            var mockSurveyAnswerListContainerFactory = new Mock <AzureBlobContainerFactory <List <string> > >();
            var service = new SurveyAnswerService(
                this.CreateServiceContext(),
                mockSurveyAnswerContainerFactory.Object,
                mockSurveyAnswerListContainerFactory.Object,
                new Mock <ISurveyAnalysisService>().Object);

            mockSurveyAnswerContainerFactory.Setup(f => f(It.IsAny <string>()))
            .Returns(new Mock <IAzureBlobContainer <Tailspin.SurveyAnswerService.Models.SurveyAnswer> >().Object);
            mockSurveyAnswerListContainerFactory.Setup(f => f(It.IsAny <string>()))
            .Returns(new Mock <IAzureBlobContainer <List <string> > >().Object);

            await AssertEx.ThrowsExceptionAsync <ArgumentNullException>(async() => await service.SaveSurveyAnswerAsync(null),
                                                                        string.Empty, null);
        }