public async Task Read_total_schools_supports_no_filter()
        {
            var schoolDataSource = new SqlServerSchoolDataSource(_databaseFixture.ConnectionFactory, Mock.Of <IRouteNormaliser>());

            var result = await schoolDataSource.ReadTotalSchools(null).ConfigureAwait(false);

            Assert.Equal(_databaseFixture.TestData.Schools.Count, result);
        }
        public async Task Read_total_schools_supports_case_insensitive_filter_by_partial_name()
        {
            var schoolDataSource = new SqlServerSchoolDataSource(_databaseFixture.ConnectionFactory, Mock.Of <IRouteNormaliser>());
            var schoolName       = PartialNameOfAnySchool();

            var query = new SchoolFilter {
                Query = schoolName.ToLower(CultureInfo.CurrentCulture)
            };

            var result = await schoolDataSource.ReadTotalSchools(query).ConfigureAwait(false);

            Assert.Equal(SchoolsMatchingQuery(query.Query).Count, result);
        }
        public async Task Read_total_schools_supports_case_insensitive_filter_by_town()
        {
            var schoolDataSource = new SqlServerSchoolDataSource(_databaseFixture.ConnectionFactory, Mock.Of <IRouteNormaliser>());

            var schoolWithTown = _databaseFixture.TestData.Schools.First(x => x.Teams.Any(t => t.MatchLocations.Any(ml => !string.IsNullOrEmpty(ml.Town))));
            var locality       = schoolWithTown.Teams.First(x => x.MatchLocations.Any(ml => !string.IsNullOrEmpty(ml.Town))).MatchLocations.First(ml => !string.IsNullOrEmpty(ml.Town)).Town;

            var query = new SchoolFilter {
                Query = locality.ToLower(CultureInfo.CurrentCulture)
            };

            var result = await schoolDataSource.ReadTotalSchools(query).ConfigureAwait(false);

            Assert.Equal(SchoolsMatchingQuery(query.Query).Count, result);
        }