Ejemplo n.º 1
0
        public When_QualificationService_Is_Called_To_Search_By_Ignored_Words()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(QualificationMapper).Assembly));
            var mapper = new Mapper(config);

            _repository = Substitute.For <IRepository <Domain.Models.Qualification> >();

            var learningAimReferenceRepository      = Substitute.For <IRepository <LearningAimReference> >();
            var qualificationRouteMappingRepository = Substitute.For <IRepository <QualificationRouteMapping> >();

            var service = new QualificationService(mapper, _repository, qualificationRouteMappingRepository, learningAimReferenceRepository);

            _searchResult = service.SearchQualificationAsync("the").GetAwaiter().GetResult();
        }
        private async Task PopulateRoutesForQualificationSearchItem(QualificationSearchViewModel searchResult)
        {
            var routes = await _routePathService.GetRouteSummaryAsync();

            foreach (var searchResultItem in searchResult.Results)
            {
                searchResultItem.Routes = routes.Select(route =>
                                                        new RouteSummaryViewModel
                {
                    Id         = route.Id,
                    IsSelected = searchResultItem.RouteIds.Contains(route.Id),
                    Name       = route.Name,
                    Summary    = route.Summary
                }).ToList();
            }
        }
        public async Task <IActionResult> SearchQualificationsAsync(QualificationSearchViewModel viewModel)
        {
            if (IsValidSearchTerm(viewModel))
            {
                ModelState.AddModelError("SearchTerms", "You must enter 2 or more letters for your search");
            }

            if (!ModelState.IsValid)
            {
                return(View("SearchQualifications", viewModel));
            }

            var searchResult = await _qualificationService.SearchQualificationAsync(viewModel.SearchTerms);

            await PopulateRoutesForQualificationSearchItem(searchResult);

            return(View("SearchQualifications", searchResult));
        }
Ejemplo n.º 4
0
        public When_QualificationService_Is_Called_To_Search_With_No_Results()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(QualificationMapper).Assembly));
            var mapper = new Mapper(config);

            var logger = Substitute.For <ILogger <GenericRepository <Domain.Models.Qualification> > >();

            using var dbContext = InMemoryDbContext.Create();
            dbContext.AddRange(new ValidQualificationListBuilder()
                               .Build());
            dbContext.SaveChanges();

            var repository = new GenericRepository <Domain.Models.Qualification>(logger, dbContext);

            var learningAimReferenceRepository      = Substitute.For <IRepository <LearningAimReference> >();
            var qualificationRouteMappingRepository = Substitute.For <IRepository <QualificationRouteMapping> >();

            var service = new QualificationService(mapper, repository, qualificationRouteMappingRepository,
                                                   learningAimReferenceRepository);

            _searchResult = service.SearchQualificationAsync("No Qualification Exists").GetAwaiter().GetResult();
        }
Ejemplo n.º 5
0
        public When_QualificationService_Is_Called_To_SearchQualifications()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(QualificationMapper).Assembly));
            var mapper = new Mapper(config);

            var qlogger   = Substitute.For <ILogger <GenericRepository <Domain.Models.Qualification> > >();
            var qrmlogger = Substitute.For <ILogger <GenericRepository <QualificationRouteMapping> > >();

            using var dbContext = InMemoryDbContext.Create();
            dbContext.AddRange(new ValidQualificationListBuilder().Build());
            dbContext.AddRange(
                new QualificationRouteMapping
            {
                RouteId         = 1,
                QualificationId = 1
            },
                new QualificationRouteMapping
            {
                RouteId         = 1,
                QualificationId = 2
            },
                new QualificationRouteMapping
            {
                RouteId         = 1,
                QualificationId = 3
            });

            dbContext.SaveChanges();

            var qualificationRepo = new GenericRepository <Domain.Models.Qualification>(qlogger, dbContext);
            var routeMappingRepo  = new GenericRepository <QualificationRouteMapping>(qrmlogger, dbContext);

            var learningAimReferenceRepository = Substitute.For <IRepository <LearningAimReference> >();

            var service = new QualificationService(mapper, qualificationRepo, routeMappingRepo, learningAimReferenceRepository);

            _searchResults = service.SearchQualificationAsync("Scientific Reasoning").GetAwaiter().GetResult();
        }
 private static bool IsValidSearchTerm(QualificationSearchViewModel viewModel)
 {
     return(viewModel.SearchTerms.IsAllSpecialCharactersOrNumbers() ||
            viewModel.SearchTerms.ToLetter().Length < 2);
 }