public async Task GetSurveyByTenantAndSlugNameReturnsNullWhenNotFound()
        {
            var mock  = new Mock <IAzureTable <SurveyRow> >();
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), new Mock <IInitializationStatusService>().Object);

            var survey = await store.GetSurveyByTenantAndSlugNameAsync("tenant", "slug-name", false);

            Assert.IsNull(survey);
        }
        public async Task GetSurveyByTenantAndSlugNameReturnsCreatedOn()
        {
            string expectedRowKey = string.Format(CultureInfo.InvariantCulture, "{0}_{1}", "tenant", "slug-name");
            var    expectedDate   = new DateTime(2000, 1, 1);
            var    surveyRow      = new SurveyRow {
                RowKey = expectedRowKey, CreatedOn = expectedDate
            };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.Setup(t => t.GetByRowKeyAsync(expectedRowKey)).ReturnsAsync(new[] { surveyRow });
            var store  = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), new Mock <IInitializationStatusService>().Object);
            var survey = await store.GetSurveyByTenantAndSlugNameAsync("tenant", "slug-name", false);

            Assert.AreEqual(expectedDate, survey.CreatedOn);
        }
Exemple #3
0
        public async Task GetSurveyByTenantAndSlugNameReturnsSlugName()
        {
            string expectedRowKey = string.Format(CultureInfo.InvariantCulture, "{0}_{1}", "tenant", "slug-name");
            var    surveyRow      = new SurveyRow {
                RowKey = expectedRowKey, SlugName = "slug-name"
            };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.Setup(t => t.GetByRowKeyAsync(expectedRowKey)).ReturnsAsync(new[] { surveyRow });
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), null);

            var survey = await store.GetSurveyByTenantAndSlugNameAsync("tenant", "slug-name", false);

            Assert.AreEqual("slug-name", survey.SlugName);
        }
        public async Task GetSurveyByTenantAndSlugNameReturnsTenantIdFromPartitionKey()
        {
            string expectedRowKey = string.Format(CultureInfo.InvariantCulture, "{0}_{1}", "tenant", "slug-name");
            var    surveyRow      = new SurveyRow {
                RowKey = expectedRowKey, PartitionKey = "tenant"
            };
            var surveyRows = new[] { surveyRow };
            var mock       = new Mock <IAzureTable <SurveyRow> >();

            mock.Setup(t => t.GetByRowKeyAsync(expectedRowKey)).ReturnsAsync(surveyRows);
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), new Mock <IInitializationStatusService>().Object);

            var survey = await store.GetSurveyByTenantAndSlugNameAsync("tenant", "slug-name", false);

            Assert.AreEqual("tenant", survey.TenantId);
        }
        public async Task GetSurveyByTenantAndSlugNameFiltersByTenantAndSlugNameInRowKey()
        {
            string expectedRowKey = string.Format(CultureInfo.InvariantCulture, "{0}_{1}", "tenant", "slug-name");
            var    surveyRow      = new SurveyRow {
                RowKey = expectedRowKey
            };
            var mockSurveyTable = new Mock <IAzureTable <SurveyRow> >();

            mockSurveyTable.Setup(t => t.GetByRowKeyAsync(expectedRowKey)).ReturnsAsync(new[] { surveyRow }).Verifiable();
            var store = new SurveyStore(mockSurveyTable.Object, default(IAzureTable <QuestionRow>), new Mock <IInitializationStatusService>().Object);

            var survey = await store.GetSurveyByTenantAndSlugNameAsync("tenant", "slug-name", false);

            Assert.IsNotNull(survey);
            mockSurveyTable.Verify();
        }
        public async Task GetSurveyByTenantAndSlugNameReturnsWithQuestionPossibleAnswers()
        {
            string expectedKey = string.Format(CultureInfo.InvariantCulture, "{0}_{1}", "tenant", "slug-name");
            var    surveyRow   = new SurveyRow {
                RowKey = expectedKey
            };
            var mockSurveyTable = new Mock <IAzureTable <SurveyRow> >();

            mockSurveyTable.Setup(t => t.GetByRowKeyAsync(expectedKey)).ReturnsAsync(new[] { surveyRow });
            var questionRow = new QuestionRow {
                PartitionKey = expectedKey, PossibleAnswers = "possible answers", Type = Enum.GetName(typeof(QuestionType), QuestionType.SimpleText)
            };
            var questions         = new[] { questionRow };
            var mockQuestionTable = new Mock <IAzureTable <QuestionRow> >();

            mockQuestionTable.Setup(t => t.GetByPartitionKeyAsync(expectedKey)).ReturnsAsync(questions);
            var store = new SurveyStore(mockSurveyTable.Object, mockQuestionTable.Object, new Mock <IInitializationStatusService>().Object);

            var survey = await store.GetSurveyByTenantAndSlugNameAsync("tenant", "slug-name", true);

            Assert.AreEqual("possible answers", survey.Questions.First().PossibleAnswers);
        }
Exemple #7
0
        public async Task GetSurveyByTenantAndSlugNameReturnsWithQuestionsFilteredByTenantAndSlugNameInPartitionKey()
        {
            string expectedKey = string.Format(CultureInfo.InvariantCulture, "{0}_{1}", "tenant", "slug-name");
            var    surveyRow   = new SurveyRow {
                RowKey = expectedKey
            };
            var mockSurveyTable = new Mock <IAzureTable <SurveyRow> >();

            mockSurveyTable.Setup(t => t.GetByRowKeyAsync(expectedKey)).ReturnsAsync(new[] { surveyRow });
            var questionRow = new QuestionRow {
                PartitionKey = expectedKey, Type = Enum.GetName(typeof(QuestionType), QuestionType.SimpleText)
            };
            var questions         = new[] { questionRow };
            var mockQuestionTable = new Mock <IAzureTable <QuestionRow> >();

            mockQuestionTable.Setup(t => t.GetByPartitionKeyAsync(expectedKey)).ReturnsAsync(questions);
            var store = new SurveyStore(mockSurveyTable.Object, mockQuestionTable.Object, null);

            var survey = await store.GetSurveyByTenantAndSlugNameAsync("tenant", "slug-name", true);

            Assert.AreEqual(1, survey.Questions.Count);
        }