private static void CheckPageExercises(ExercisePage page, ICollection<Exercise> expectedExercises)
        {
            foreach (var expectedExercise in expectedExercises)
            {
                Assert.That(page.IsShowing(expectedExercise), string.Format("exercise {0} was not on page", expectedExercise.Name));
            }

            Assert.That(page.ExerciseCount, Is.EqualTo(expectedExercises.Count()));
        }
        private static void AssertCanFilterExerciseList(ExercisePage page)
        {
            const string nameToFilterOn = "up";
            const Level levelToFilterOn = Level.Expert;

            page.FilterExercises(nameToFilterOn, levelToFilterOn);

            var expectedExercises = Configuration.AutomatedDatabaseSampleExercises
                                                 .Where(ex => ex.Level == levelToFilterOn &&
                                                              ex.Name.ToLower().Contains(nameToFilterOn))
                                                 .ToList();

            CheckPageExercises(page, expectedExercises);
        }
        private static void AssertUnfilteredPageShowsAllExercises(ExercisePage page)
        {
            var expectedExercises = Configuration.AutomatedDatabaseSampleExercises;

            CheckPageExercises(page, expectedExercises);
        }