Esempio n. 1
0
        public void SaveSurveyThrowsExceptionIfTitleAndSlugNameAreNullOrEmpty()
        {
            var store  = new SurveyStore(new Mock <IAzureTable <SurveyRow> >().Object, new Mock <IAzureTable <QuestionRow> >().Object, null);
            var survey = new Survey();

            store.SaveSurvey(survey);
        }
        public async Task SaveSurveyThrowsExceptionIfTitleAndSlugNameAreNullOrEmpty()
        {
            var store  = new SurveyStore(new Mock <IAzureTable <SurveyRow> >().Object, new Mock <IAzureTable <QuestionRow> >().Object, new Mock <IInitializationStatusService>().Object);
            var survey = new Survey();

            await store.SaveSurveyAsync(survey);
        }
Esempio n. 3
0
        public void GetSurveyByTenantAndSlugNameReturnsWithQuestionPossibleAnswers()
        {
            string expectedKey = string.Format(CultureInfo.InvariantCulture, "{0}_{1}", "tenant", "slug-name");
            var    surveyRow   = new SurveyRow {
                RowKey = expectedKey
            };
            var surveyRowsForTheQuery = new[] { surveyRow };
            var mockSurveyTable       = new Mock <IAzureTable <SurveyRow> >();

            mockSurveyTable.SetupGet(t => t.Query).Returns(surveyRowsForTheQuery.AsQueryable());
            mockSurveyTable.Setup(t => t.GetRetryPolicyFactoryInstance()).Returns(new DefaultRetryPolicyFactory());
            var questionRow = new QuestionRow {
                PartitionKey = expectedKey, PossibleAnswers = "possible answers", Type = Enum.GetName(typeof(QuestionType), QuestionType.SimpleText)
            };
            var questionsForTheQuery = new[] { questionRow };
            var mockQuestionTable    = new Mock <IAzureTable <QuestionRow> >();

            mockQuestionTable.SetupGet(t => t.Query).Returns(questionsForTheQuery.AsQueryable());
            mockQuestionTable.Setup(t => t.GetRetryPolicyFactoryInstance()).Returns(new DefaultRetryPolicyFactory());
            var store = new SurveyStore(mockSurveyTable.Object, mockQuestionTable.Object, null);

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

            Assert.AreEqual("possible answers", survey.Questions.First().PossibleAnswers);
        }
Esempio n. 4
0
        public void DeleteSurveyByTenantAndSlugNameDeleteQuestionsByTenantAndSlugNameInPartitionKeyFromQuestionTable()
        {
            string expectedKey = string.Format(CultureInfo.InvariantCulture, "{0}_{1}", "tenant", "slug-name");
            var    surveyRow   = new SurveyRow {
                RowKey = expectedKey
            };
            var otherSurveyRow = new SurveyRow {
                RowKey = "other_row_key"
            };
            var surveyRowsForTheQuery = new[] { surveyRow, otherSurveyRow };
            var mockSurveyTable       = new Mock <IAzureTable <SurveyRow> >();

            mockSurveyTable.SetupGet(t => t.Query).Returns(surveyRowsForTheQuery.AsQueryable());
            mockSurveyTable.Setup(t => t.GetRetryPolicyFactoryInstance()).Returns(new DefaultRetryPolicyFactory());
            var questionRow = new QuestionRow {
                PartitionKey = expectedKey, PossibleAnswers = "possible answers", Type = Enum.GetName(typeof(QuestionType), QuestionType.SimpleText)
            };
            var questionsForTheQuery = new[] { questionRow };
            var mockQuestionTable    = new Mock <IAzureTable <QuestionRow> >();

            mockQuestionTable.SetupGet(t => t.Query).Returns(questionsForTheQuery.AsQueryable());
            mockQuestionTable.Setup(t => t.GetRetryPolicyFactoryInstance()).Returns(new DefaultRetryPolicyFactory());
            IEnumerable <QuestionRow> actualQuestionsToDelete = null;

            mockQuestionTable.Setup(t => t.Delete(It.IsAny <IEnumerable <QuestionRow> >()))
            .Callback <IEnumerable <QuestionRow> >(q => actualQuestionsToDelete = q);

            var store = new SurveyStore(mockSurveyTable.Object, mockQuestionTable.Object, null);

            store.DeleteSurveyByTenantAndSlugName("tenant", "slug-name");

            Assert.AreEqual(1, actualQuestionsToDelete.Count());
            Assert.AreSame(questionRow, actualQuestionsToDelete.First());
        }
        public async Task DeleteSurveyByTenantAndSlugNameDeleteQuestionsByTenantAndSlugNameInPartitionKeyFromQuestionTable()
        {
            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);
            IEnumerable <QuestionRow> actualQuestionsToDelete = null;

            mockQuestionTable.Setup(t => t.DeleteAsync(It.IsAny <IEnumerable <QuestionRow> >()))
            .Returns(Task.Delay(0))
            .Callback <IEnumerable <QuestionRow> >(q => actualQuestionsToDelete = q);

            var store = new SurveyStore(mockSurveyTable.Object, mockQuestionTable.Object, new Mock <IInitializationStatusService>().Object);

            await store.DeleteSurveyByTenantAndSlugNameAsync("tenant", "slug-name");

            Assert.AreEqual(1, actualQuestionsToDelete.Count());
            Assert.AreSame(questionRow, actualQuestionsToDelete.First());
        }
        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);
        }
Esempio n. 7
0
        public async Task GetSurveyExtensionByTenantAndSlugName()
        {
            var mock         = new Mock <IUDFAzureTable>();
            var customEntity = new CustomEntity {
                Id = 1
            };

            mock.Setup(t => t.GetExtensionByPartitionRowKeyAsync(typeof(CustomEntity), "tenant", "slugname")).ReturnsAsync(customEntity);
            var store = new SurveyStore(default(IAzureTable <SurveyRow>), default(IAzureTable <QuestionRow>), mock.Object);

            var retrievedExtension = await store.GetSurveyExtensionByTenantAndSlugNameAsync("tenant", "slugname", typeof(CustomEntity));

            Assert.AreEqual(customEntity.ToString(), retrievedExtension.ToString());
        }
        public void SaveSurveyCallsAddFromSurveyTableSettingTheTenantAndSlugNameAsTheRowKey()
        {
            var mockSurveyTable = new Mock <IAzureTable <SurveyRow> >();
            var store           = new SurveyStore(mockSurveyTable.Object, new Mock <IAzureTable <QuestionRow> >().Object, null);
            var survey          = new Survey {
                Title = "title to slug", Tenant = "tenant"
            };

            store.SaveSurvey(survey);

            mockSurveyTable.Verify(
                c => c.Add(
                    It.Is <SurveyRow>(s => s.RowKey == "tenant_title-to-slug")),
                Times.Once());
        }
        public async Task SaveSurveyCallsAddFromSurveyTableSettingTheTenantAndSlugNameAsTheRowKey()
        {
            var mockSurveyTable = new Mock <IAzureTable <SurveyRow> >();
            var store           = new SurveyStore(mockSurveyTable.Object, new Mock <IAzureTable <QuestionRow> >().Object, new Mock <IInitializationStatusService>().Object);
            var survey          = new Survey {
                Title = "title to slug", TenantId = "tenant"
            };

            await store.SaveSurveyAsync(survey);

            mockSurveyTable.Verify(
                c => c.AddAsync(
                    It.Is <SurveyRow>(s => s.RowKey == "tenant_title-to-slug")),
                Times.Once());
        }
        public async Task GetSurveysByTenantFiltersByTenantInPartitionKey()
        {
            var surveyRow = new SurveyRow {
                PartitionKey = "tenant"
            };
            var surveyRows = new[] { surveyRow };
            var mock       = new Mock <IAzureTable <SurveyRow> >();

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

            var surveysForTenant = await store.GetSurveysByTenantAsync("tenant");

            Assert.AreEqual(1, surveysForTenant.Count());
        }
        public async Task GetSurveysByTenantReturnsSlugName()
        {
            var surveyRow = new SurveyRow {
                PartitionKey = "tenant", SlugName = "slug"
            };
            var surveyRowsToReturn = new[] { surveyRow };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.Setup(t => t.GetByPartitionKeyAsync("tenant")).ReturnsAsync(surveyRowsToReturn);
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), new Mock <IInitializationStatusService>().Object);

            var actualSurveys = await store.GetSurveysByTenantAsync("tenant");

            Assert.AreEqual("slug", actualSurveys.First().SlugName);
        }
Esempio n. 12
0
        public async Task GetRecentSurveysReturnsSlugName()
        {
            var surveyRow = new SurveyRow {
                PartitionKey = "tenant", SlugName = "slug"
            };
            var surveyRowsToReturn = new[] { surveyRow };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.Setup(t => t.GetLatestAsync(10)).ReturnsAsync(surveyRowsToReturn);
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), null);

            var actualSurveys = await store.GetRecentSurveysAsync();

            Assert.AreEqual("slug", actualSurveys.First().SlugName);
        }
Esempio n. 13
0
        public async Task GetSurveysByTenantReturnsTitle()
        {
            var surveyRow = new SurveyRow {
                PartitionKey = "tenant", Title = "title"
            };
            var surveyRowsToReturn = new[] { surveyRow };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.Setup(t => t.GetByPartitionKeyAsync("tenant")).ReturnsAsync(surveyRowsToReturn);
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), null);

            var actualSurveys = await store.GetSurveysByTenantAsync("tenant");

            Assert.AreEqual("title", actualSurveys.First().Title);
        }
Esempio n. 14
0
        public async Task SaveSurveyCallsAddFromSurveyTableSettingTheTenantAsThePartitionKey()
        {
            var mockSurveyTable = new Mock <IAzureTable <SurveyRow> >();
            var store           = new SurveyStore(mockSurveyTable.Object, new Mock <IAzureTable <QuestionRow> >().Object, null);
            var survey          = new Survey {
                Title = "title", TenantId = "tenant"
            };

            await store.SaveSurveyAsync(survey);

            mockSurveyTable.Verify(
                c => c.AddAsync(
                    It.Is <SurveyRow>(s => s.PartitionKey == "tenant")),
                Times.Once());
        }
Esempio n. 15
0
        public async Task SaveSurveyCallsAddFromSurveyTableGeneratingTheSlugName()
        {
            var mockSurveyTable = new Mock <IAzureTable <SurveyRow> >();
            var store           = new SurveyStore(mockSurveyTable.Object, new Mock <IAzureTable <QuestionRow> >().Object, null);
            var survey          = new Survey {
                Title = "title to slug"
            };

            await store.SaveSurveyAsync(survey);

            mockSurveyTable.Verify(
                c => c.AddAsync(
                    It.Is <SurveyRow>(s => s.SlugName == "title-to-slug")),
                Times.Once());
        }
Esempio n. 16
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 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);
        }
        public async Task GetRecentSurveysReturnsTitle()
        {
            var surveyRow = new SurveyRow {
                PartitionKey = "tenant", Title = "title"
            };
            var surveyRowsToReturn = new[] { surveyRow };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.Setup(t => t.GetLatestAsync(10)).ReturnsAsync(surveyRowsToReturn);
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), new Mock <IInitializationStatusService>().Object);

            var actualSurveys = await store.GetRecentSurveysAsync();

            Assert.AreEqual("title", actualSurveys.First().Title);
        }
        public async Task SaveSurveyCallsAddFromSurveyTableWithTenant()
        {
            var mockSurveyTable = new Mock <IAzureTable <SurveyRow> >();
            var store           = new SurveyStore(mockSurveyTable.Object, new Mock <IAzureTable <QuestionRow> >().Object, new Mock <IInitializationStatusService>().Object);
            var survey          = new Survey {
                Title = "title", TenantId = "tenant"
            };

            await store.SaveSurveyAsync(survey);

            mockSurveyTable.Verify(
                c => c.AddAsync(
                    It.Is <SurveyRow>(s => s.PartitionKey == "tenant")),
                Times.Once());
        }
        public void SaveSurveyCallsAddFromSurveyTableWithTenant()
        {
            var mockSurveyTable = new Mock <IAzureTable <SurveyRow> >();
            var store           = new SurveyStore(mockSurveyTable.Object, new Mock <IAzureTable <QuestionRow> >().Object, null);
            var survey          = new Survey {
                Title = "title", Tenant = "tenant"
            };

            store.SaveSurvey(survey);

            mockSurveyTable.Verify(
                c => c.Add(
                    It.Is <SurveyRow>(s => s.PartitionKey == "tenant")),
                Times.Once());
        }
        public async Task DeleteSurveyByTenantAndSlugNameDoesNotDeleteSurveyAndQuestionWhenSurveyDoesNotExist()
        {
            var mockSurveyTable = new Mock <IAzureTable <SurveyRow> >();

            mockSurveyTable.Setup(t => t.GetByRowKeyAsync(It.IsAny <string>())).ReturnsAsync(null);
            var mockQuestionTable = new Mock <IAzureTable <QuestionRow> >();

            mockQuestionTable.Setup(t => t.GetByPartitionKeyAsync(It.IsAny <string>())).ReturnsAsync(new QuestionRow[] { });
            var store = new SurveyStore(mockSurveyTable.Object, mockQuestionTable.Object, new Mock <IInitializationStatusService>().Object);

            await store.DeleteSurveyByTenantAndSlugNameAsync("tenant", "slug-name");

            mockSurveyTable.Verify(t => t.DeleteAsync(It.IsAny <SurveyRow>()), Times.Never());
            mockQuestionTable.Verify(t => t.DeleteAsync(It.IsAny <IEnumerable <QuestionRow> >()), Times.Never());
        }
Esempio n. 22
0
        public void GetSurveysByTenantReturnsSlugName()
        {
            var surveyRow = new SurveyRow {
                PartitionKey = "tenant", SlugName = "slug"
            };
            var surveyRowsToReturn = new[] { surveyRow };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.SetupGet(t => t.Query).Returns(surveyRowsToReturn.AsQueryable());
            mock.Setup(t => t.GetRetryPolicyFactoryInstance()).Returns(new DefaultRetryPolicyFactory());
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), null);

            var actualSurveys = store.GetSurveysByTenant("tenant");

            Assert.AreEqual("slug", actualSurveys.First().SlugName);
        }
Esempio n. 23
0
        public void GetSurveyByTenantAndSlugNameReturnsNullWhenNotFound()
        {
            var otherSurveyRow = new SurveyRow {
                RowKey = "other_row_key"
            };
            var surveyRowsForTheQuery = new[] { otherSurveyRow };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.SetupGet(t => t.Query).Returns(surveyRowsForTheQuery.AsQueryable());
            mock.Setup(t => t.GetRetryPolicyFactoryInstance()).Returns(new DefaultRetryPolicyFactory());
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), null);

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

            Assert.IsNull(survey);
        }
        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 GetSurveysByTenantReturnsCreatedOn()
        {
            var expectedDate = new DateTime(2000, 1, 1);
            var surveyRow    = new SurveyRow {
                PartitionKey = "tenant", CreatedOn = expectedDate
            };
            var surveyRowsToReturn = new[] { surveyRow };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.Setup(t => t.GetByPartitionKeyAsync("tenant")).ReturnsAsync(surveyRowsToReturn);
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), new Mock <IInitializationStatusService>().Object);

            var actualSurveys = await store.GetSurveysByTenantAsync("tenant");

            Assert.AreEqual(expectedDate, actualSurveys.First().CreatedOn);
        }
        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();
        }
Esempio n. 27
0
        public void GetSurveysByTenantReturnsCreatedOn()
        {
            var expectedDate = new DateTime(2000, 1, 1);
            var surveyRow    = new SurveyRow {
                PartitionKey = "tenant", CreatedOn = expectedDate
            };
            var surveyRowsToReturn = new[] { surveyRow };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.SetupGet(t => t.Query).Returns(surveyRowsToReturn.AsQueryable());
            mock.Setup(t => t.GetRetryPolicyFactoryInstance()).Returns(new DefaultRetryPolicyFactory());
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), null);

            var actualSurveys = store.GetSurveysByTenant("tenant");

            Assert.AreEqual(expectedDate, actualSurveys.First().CreatedOn);
        }
Esempio n. 28
0
        public void 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 surveyRowsForTheQuery = new[] { surveyRow };
            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.SetupGet(t => t.Query).Returns(surveyRowsForTheQuery.AsQueryable());
            mock.Setup(t => t.GetRetryPolicyFactoryInstance()).Returns(new DefaultRetryPolicyFactory());
            var store  = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), null);
            var survey = store.GetSurveyByTenantAndSlugName("tenant", "slug-name", false);

            Assert.AreEqual(expectedDate, survey.CreatedOn);
        }
        public async Task GetRecentSurveysReturnsUpto10Surveys()
        {
            var surveyRowsToReturn = new List <SurveyRow>();

            for (int i = 0; i < 10; i++)
            {
                surveyRowsToReturn.Add(new SurveyRow());
            }

            var mock = new Mock <IAzureTable <SurveyRow> >();

            mock.Setup(t => t.GetLatestAsync(10)).ReturnsAsync(surveyRowsToReturn);
            var store = new SurveyStore(mock.Object, default(IAzureTable <QuestionRow>), new Mock <IInitializationStatusService>().Object);

            var actualSurveys = await store.GetRecentSurveysAsync();

            Assert.AreEqual(10, actualSurveys.Count());
        }
        public async Task DeleteSurveyByTenantAndSlugNameDeletesSurveyWithTenantAndSlugNameInRowKeyFromSurveyTable()
        {
            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 });
            var mockQuestionTable = new Mock <IAzureTable <QuestionRow> >();

            mockQuestionTable.Setup(t => t.GetByPartitionKeyAsync(expectedRowKey)).ReturnsAsync(new QuestionRow[] { });
            var store = new SurveyStore(mockSurveyTable.Object, mockQuestionTable.Object, new Mock <IInitializationStatusService>().Object);

            await store.DeleteSurveyByTenantAndSlugNameAsync("tenant", "slug-name");

            mockSurveyTable.Verify(t => t.DeleteAsync(It.Is <SurveyRow>(s => s.RowKey == expectedRowKey)));
        }