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); }
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>())); }
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); }
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); }
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")); }
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); }