public void CheckIfFilteredDataReturnsData()
        {
            //Arrange
            var repository       = A.Fake <IFindACourseRepository>();
            var courseProperties = new CourseSearchProperties
            {
                Page = 1,
            };

            courseProperties.Filters.SearchTerm = "Maths";
            courseProperties.Filters.CourseType = new List <CourseType> {
                CourseType.All
            };
            courseProperties.Filters.CourseHours = new List <CourseHours> {
                CourseHours.All
            };

            var courseSearchFilters = new CourseSearchFilters
            {
                SearchTerm = "Maths",
                CourseType = new List <CourseType> {
                    CourseType.All
                },
                CourseHours = new List <CourseHours> {
                    CourseHours.All
                },
            };

            var returnedCourseData = new CourseSearchResult
            {
                Courses = new List <Course>
                {
                    new Course {
                        Title = "Maths", CourseId = "1", AttendancePattern = "Online",
                    },
                },
            };

            var findACourseService = new FindACourseService(repository);

            A.CallTo(() => repository.RetrieveData(A <CourseSearchProperties> .Ignored)).Returns(returnedCourseData);

            //Act
            var result = findACourseService.GetFilteredData(courseSearchFilters, CourseSearchOrderBy.Relevance, 1).Result;

            //Assert
            A.CallTo(() => repository.RetrieveData(A <CourseSearchProperties> .Ignored)).MustHaveHappenedOnceExactly();
            Assert.Equal(returnedCourseData, result);
        }