public async Task Delete_competition_succeeds()
        {
            var sanitizer = new Mock <Ganss.XSS.IHtmlSanitizer>();

            sanitizer.Setup(x => x.AllowedTags).Returns(new HashSet <string>());
            sanitizer.Setup(x => x.AllowedAttributes).Returns(new HashSet <string>());
            sanitizer.Setup(x => x.AllowedCssProperties).Returns(new HashSet <string>());
            sanitizer.Setup(x => x.AllowedAtRules).Returns(new HashSet <CssRuleType>());

            var memberKey  = Guid.NewGuid();
            var memberName = "Dee Leeter";

            var copier = new Mock <IStoolballEntityCopier>();

            copier.Setup(x => x.CreateAuditableCopy(_databaseFixture.TestData.CompetitionWithFullDetails)).Returns(new Competition
            {
                CompetitionId = _databaseFixture.TestData.CompetitionWithFullDetails.CompetitionId,
                Seasons       = _databaseFixture.TestData.CompetitionWithFullDetails.Seasons.Select(x => new Season {
                    SeasonId = x.SeasonId
                }).ToList()
            });
            foreach (var season in _databaseFixture.TestData.CompetitionWithFullDetails.Seasons)
            {
                copier.Setup(x => x.CreateAuditableCopy(season)).Returns(new Season {
                    SeasonId = season.SeasonId
                });
            }

            var seasonRepository = new SqlServerSeasonRepository(
                _databaseFixture.ConnectionFactory,
                Mock.Of <IAuditRepository>(),
                Mock.Of <ILogger>(),
                sanitizer.Object,
                Mock.Of <IRedirectsRepository>(),
                copier.Object
                );

            var competitionRepository = new SqlServerCompetitionRepository(
                _databaseFixture.ConnectionFactory,
                Mock.Of <IAuditRepository>(),
                Mock.Of <ILogger>(),
                seasonRepository,
                Mock.Of <IRouteGenerator>(),
                Mock.Of <IRedirectsRepository>(),
                Mock.Of <IHtmlSanitizer>(),
                copier.Object,
                Mock.Of <IUrlFormatter>(),
                Mock.Of <ISocialMediaAccountFormatter>());

            await competitionRepository.DeleteCompetition(_databaseFixture.TestData.CompetitionWithFullDetails, memberKey, memberName).ConfigureAwait(false);

            using (var connection = _databaseFixture.ConnectionFactory.CreateDatabaseConnection())
            {
                var result = await connection.QuerySingleOrDefaultAsync <Guid?>($"SELECT CompetitionId FROM {Tables.Competition} WHERE CompetitionId = @CompetitionId", new { _databaseFixture.TestData.CompetitionWithFullDetails.CompetitionId }).ConfigureAwait(false);

                Assert.Null(result);
            }
        }
        public async Task Delete_season_succeeds()
        {
            var sanitizer = new Mock <IHtmlSanitizer>();

            sanitizer.Setup(x => x.AllowedTags).Returns(new HashSet <string>());
            sanitizer.Setup(x => x.AllowedAttributes).Returns(new HashSet <string>());
            sanitizer.Setup(x => x.AllowedCssProperties).Returns(new HashSet <string>());
            sanitizer.Setup(x => x.AllowedAtRules).Returns(new HashSet <CssRuleType>());

            var memberKey  = Guid.NewGuid();
            var memberName = "Dee Leeter";

            var copier = new Mock <IStoolballEntityCopier>();

            copier.Setup(x => x.CreateAuditableCopy(_databaseFixture.TestData.SeasonWithFullDetails)).Returns(new Season {
                SeasonId = _databaseFixture.TestData.SeasonWithFullDetails.SeasonId
            });

            var seasonRepository = new SqlServerSeasonRepository(
                _databaseFixture.ConnectionFactory,
                Mock.Of <IAuditRepository>(),
                Mock.Of <ILogger>(),
                sanitizer.Object,
                Mock.Of <IRedirectsRepository>(),
                copier.Object
                );

            await seasonRepository.DeleteSeason(_databaseFixture.TestData.SeasonWithFullDetails, memberKey, memberName).ConfigureAwait(false);

            using (var connection = _databaseFixture.ConnectionFactory.CreateDatabaseConnection())
            {
                var result = await connection.QuerySingleOrDefaultAsync <Guid?>($"SELECT SeasonId FROM {Tables.Season} WHERE SeasonId = @SeasonId", new { _databaseFixture.TestData.SeasonWithFullDetails.SeasonId }).ConfigureAwait(false);

                Assert.Null(result);
            }
        }