public When_ProviderVenueQualificationService_Is_Called_To_Update_ProviderVenue()
        {
            var providerService = Substitute.For <IProviderService>();

            _providerVenueService             = Substitute.For <IProviderVenueService>();
            _providerQualificationService     = Substitute.For <IProviderQualificationService>();
            _qualificationRouteMappingService = Substitute.For <IQualificationRouteMappingService>();
            _qualificationService             = Substitute.For <IQualificationService>();
            _routePathService = Substitute.For <IRoutePathService>();

            providerService.SearchAsync(10000001)
            .Returns(new ProviderSearchResultDto
            {
                Id    = 1,
                UkPrn = 10000001,
                Name  = "ProviderName"
            });

            providerService.GetProviderDetailByIdAsync(1)
            .Returns(new ProviderDetailViewModel
            {
                Id    = 1,
                UkPrn = 10000001,
                Name  = "Old Name",
            });

            _providerVenueService
            .GetVenueWithTrimmedPostcodeAsync(1, "CV1 2WT")
            .Returns(new ProviderVenueDetailViewModel
            {
                Id                   = 1,
                ProviderId           = 1,
                Postcode             = "CV1 2WT",
                Name                 = null,
                IsEnabledForReferral = true,
                Source               = "Import",
                Qualifications       = new List <QualificationDetailViewModel>()
            });

            _qualificationService.GetQualificationAsync(Arg.Any <string>()).Returns((QualificationDetailViewModel)null);
            _providerQualificationService.GetProviderQualificationAsync(Arg.Any <int>(), Arg.Any <int>()).Returns((ProviderQualificationDto)null);
            _routePathService.GetRouteSummaryByNameAsync(Arg.Any <string>()).Returns((RouteSummaryViewModel)null);

            var providerVenueQualificationService = new ProviderVenueQualificationService
                                                    (
                providerService,
                _providerVenueService,
                _providerQualificationService,
                _qualificationService,
                _routePathService,
                _qualificationRouteMappingService
                                                    );

            var dtoList = new ValidProviderVenueQualificationDtoListBuilder()
                          .AddVenue()
                          .Build();

            _results = providerVenueQualificationService.UpdateAsync(dtoList).GetAwaiter().GetResult();
        }
Ejemplo n.º 2
0
        public When_ProviderVenue_Controller_ConfirmRemoveProviderVenue_Is_Loaded()
        {
            _providerVenueService = Substitute.For <IProviderVenueService>();
            _providerVenueService.GetRemoveProviderVenueViewModelAsync(Arg.Any <int>())
            .Returns(new ValidRemoveProviderVenueViewModelBuilder().Build());

            var providerVenueController = new ProviderVenueController(_providerVenueService);

            _result = providerVenueController.GetConfirmRemoveProviderVenueAsync(1).GetAwaiter().GetResult();
        }
 public QualificationController(IProviderVenueService providerVenueService,
                                IQualificationService qualificationService,
                                IProviderQualificationService providerQualificationService,
                                IRoutePathService routePathService)
 {
     _providerVenueService         = providerVenueService;
     _qualificationService         = qualificationService;
     _providerQualificationService = providerQualificationService;
     _routePathService             = routePathService;
 }
Ejemplo n.º 4
0
        public When_ProviderVenue_Add_Has_Invalid_Postcode()
        {
            _providerVenueService = Substitute.For <IProviderVenueService>();
            _providerVenueService.IsValidPostcodeAsync("CV1 2WT").Returns((false, "CV1 2WT"));
            var providerVenueController = new ProviderVenueController(_providerVenueService);

            var viewModel = new AddProviderVenueViewModel
            {
                Postcode = "CV1 2WT"
            };

            _result = providerVenueController.CreateVenueAsync(viewModel).GetAwaiter().GetResult();
        }
Ejemplo n.º 5
0
 public ProviderVenueQualificationService(IProviderService providerService,
                                          IProviderVenueService providerVenueService,
                                          IProviderQualificationService providerQualificationService,
                                          IQualificationService qualificationService,
                                          IRoutePathService routePathService,
                                          IQualificationRouteMappingService qualificationRouteMappingService)
 {
     _providerService                  = providerService;
     _providerVenueService             = providerVenueService;
     _providerQualificationService     = providerQualificationService;
     _qualificationService             = qualificationService;
     _routePathService                 = routePathService;
     _qualificationRouteMappingService = qualificationRouteMappingService;
 }
Ejemplo n.º 6
0
        public When_ProviderVenue_Controller_ConfirmRemoveProviderVenue_Post_Is_Called()
        {
            _providerVenueService = Substitute.For <IProviderVenueService>();

            var providerVenueController = new ProviderVenueController(_providerVenueService);

            var viewModel = new RemoveProviderVenueViewModel
            {
                ProviderId      = 1,
                ProviderVenueId = 1
            };

            _result = providerVenueController.ConfirmRemoveProviderVenueAsync(viewModel).GetAwaiter().GetResult();
        }
        public When_Qualification_Add_Is_Loaded()
        {
            var qualificationService = Substitute.For <IQualificationService>();

            _providerVenueService = Substitute.For <IProviderVenueService>();
            _providerVenueService.GetVenuePostcodeAsync(1)
            .Returns("CV1 2WT");

            var providerQualificationService = Substitute.For <IProviderQualificationService>();
            var routePathService             = Substitute.For <IRoutePathService>();

            var qualificationController = new QualificationController(_providerVenueService, qualificationService, providerQualificationService, routePathService);

            _result = qualificationController.AddQualificationAsync(1)
                      .GetAwaiter().GetResult();
        }
Ejemplo n.º 8
0
        public When_ProviderVenue_Detail_Save_Has_No_Qualifications()
        {
            _providerVenueService = Substitute.For <IProviderVenueService>();
            _providerVenueService.IsValidPostcodeAsync("CV1 2WT").Returns((true, "CV1 2WT"));
            var providerVenueController = new ProviderVenueController(_providerVenueService);
            var controllerWithClaims    = new ClaimsBuilder <ProviderVenueController>(providerVenueController)
                                          .AddUserName("username")
                                          .AddEmail("*****@*****.**")
                                          .Build();

            var viewModel = new ProviderVenueDetailViewModel
            {
                Id       = 1,
                Postcode = "CV1 2WT"
            };

            _result = controllerWithClaims.SaveProviderVenueDetailAsync(viewModel).GetAwaiter().GetResult();
        }
Ejemplo n.º 9
0
        public When_ProviderVenue_Detail_Is_Loaded()
        {
            _providerVenueService = Substitute.For <IProviderVenueService>();
            _providerVenueService.GetVenueWithQualificationsAsync(1)
            .Returns(new ProviderVenueDetailViewModel
            {
                Id           = 1,
                Postcode     = "CV1 2WT",
                ProviderId   = 1,
                ProviderName = "ProviderName",
                Source       = "Admin",
                Name         = "VenueName"
            });

            var providerVenueController = new ProviderVenueController(_providerVenueService);

            _result = providerVenueController.GetProviderVenueDetailAsync(1).GetAwaiter().GetResult();
        }
Ejemplo n.º 10
0
        public When_ProviderVenue_Add_Venue_Does_Not_Exist()
        {
            _providerVenueService = Substitute.For <IProviderVenueService>();
            _providerVenueService.IsValidPostcodeAsync("CV1 2WT").Returns((true, "CV1 2WT"));
            _providerVenueService.GetVenueAsync(1, "CV1 2WT").ReturnsNull();
            _providerVenueService.CreateVenueAsync(Arg.Any <AddProviderVenueViewModel>()).Returns(1);

            var providerVenueController = new ProviderVenueController(_providerVenueService);
            var controllerWithClaims    = new ClaimsBuilder <ProviderVenueController>(providerVenueController)
                                          .AddUserName("username")
                                          .AddEmail("*****@*****.**")
                                          .Build();

            var viewModel = new AddProviderVenueViewModel
            {
                ProviderId = 1,
                Postcode   = "CV1 2WT"
            };

            _result = controllerWithClaims.CreateVenueAsync(viewModel).GetAwaiter().GetResult();
        }
Ejemplo n.º 11
0
        public When_ProviderVenue_Detail_Save_Submitted_Successfully()
        {
            _providerVenueService = Substitute.For <IProviderVenueService>();

            var providerVenueController = new ProviderVenueController(_providerVenueService);

            var viewModel = new ProviderVenueDetailViewModel
            {
                Id             = 1,
                ProviderId     = 2,
                Postcode       = "CV1 2WT",
                Qualifications = new List <QualificationDetailViewModel>
                {
                    new QualificationDetailViewModel
                    {
                        LarId = "123"
                    }
                }
            };

            _result = providerVenueController.SaveProviderVenueDetailAsync(viewModel).GetAwaiter().GetResult();
        }
        public When_ProviderVenueQualificationService_Is_Called_With_New_Qualification()
        {
            _providerService                  = Substitute.For <IProviderService>();
            _providerVenueService             = Substitute.For <IProviderVenueService>();
            _providerQualificationService     = Substitute.For <IProviderQualificationService>();
            _qualificationRouteMappingService = Substitute.For <IQualificationRouteMappingService>();
            _qualificationService             = Substitute.For <IQualificationService>();
            _routePathService                 = Substitute.For <IRoutePathService>();

            var dtoList = new ValidProviderVenueQualificationDtoListBuilder()
                          .AddVenue()
                          .AddQualificationWithRoutes()
                          .Build();
            var dto = dtoList.First();

            _providerService.SearchAsync(10000001)
            .Returns(new ProviderSearchResultDto
            {
                Id    = 1,
                UkPrn = dto.UkPrn,
                Name  = dto.ProviderName
            });

            _providerService.GetProviderDetailByIdAsync(1)
            .Returns(new ProviderDetailViewModel
            {
                UkPrn                 = dto.UkPrn,
                Name                  = dto.ProviderName,
                DisplayName           = dto.DisplayName,
                IsCdfProvider         = dto.IsCdfProvider,
                IsEnabledForReferral  = dto.IsEnabledForReferral,
                PrimaryContact        = dto.PrimaryContact,
                PrimaryContactEmail   = dto.PrimaryContactEmail,
                PrimaryContactPhone   = dto.PrimaryContactPhone,
                SecondaryContact      = dto.SecondaryContact,
                SecondaryContactEmail = dto.SecondaryContactEmail,
                SecondaryContactPhone = dto.SecondaryContactPhone
            });

            _providerVenueService
            .GetVenueWithTrimmedPostcodeAsync(1, "CV1 2WT")
            .Returns(new ProviderVenueDetailViewModel
            {
                Id                   = 1,
                ProviderId           = 1,
                Postcode             = dto.VenuePostcode,
                Name                 = dto.VenueName,
                IsEnabledForReferral = dto.VenueIsEnabledForReferral,
                Qualifications       = new List <QualificationDetailViewModel>()
            });

            _qualificationService
            .GetQualificationAsync("1234567X")
            .Returns((QualificationDetailViewModel)null);

            _qualificationService
            .CreateQualificationEntityAsync(Arg.Is <MissingQualificationViewModel>(
                                                p => p.LarId == "1234567X"))
            .Returns(10);         //Qualification id

            _providerQualificationService
            .GetProviderQualificationAsync(Arg.Any <int>(), Arg.Any <int>())
            .Returns((ProviderQualificationDto)null);

            _routePathService
            .GetRouteSummaryByNameAsync("Agriculture, environmental and animal care")
            .Returns(new RouteSummaryViewModel
            {
                Id   = 1,
                Name = "Agriculture, environmental and animal care"
            });
            _routePathService
            .GetRouteSummaryByNameAsync("Digital")
            .Returns(new RouteSummaryViewModel
            {
                Id   = 3,
                Name = "Digital"
            });

            _qualificationRouteMappingService
            .GetQualificationRouteMappingAsync(Arg.Any <int>(), Arg.Any <int>())
            .Returns((QualificationRouteMappingViewModel)null);

            var providerVenueQualificationService = new ProviderVenueQualificationService
                                                    (
                _providerService,
                _providerVenueService,
                _providerQualificationService,
                _qualificationService,
                _routePathService,
                _qualificationRouteMappingService
                                                    );

            _results = providerVenueQualificationService.UpdateAsync(dtoList).GetAwaiter().GetResult();
        }
        public When_ProviderVenueQualificationService_Is_Called_To_Unremove_ProviderVenue()
        {
            var providerService = Substitute.For <IProviderService>();

            _providerVenueService             = Substitute.For <IProviderVenueService>();
            _providerQualificationService     = Substitute.For <IProviderQualificationService>();
            _qualificationRouteMappingService = Substitute.For <IQualificationRouteMappingService>();
            _qualificationService             = Substitute.For <IQualificationService>();
            _routePathService = Substitute.For <IRoutePathService>();

            var dtoList = new ValidProviderVenueQualificationDtoListBuilder()
                          .AddVenue(isRemoved: false)
                          .Build();
            var dto = dtoList.First();

            providerService.SearchAsync(10000001)
            .Returns(new ProviderSearchResultDto
            {
                Id    = 1,
                UkPrn = dto.UkPrn,
                Name  = dto.ProviderName
            });

            providerService.GetProviderDetailByIdAsync(1)
            .Returns(new ProviderDetailViewModel
            {
                UkPrn                 = dto.UkPrn,
                Name                  = dto.ProviderName,
                DisplayName           = dto.DisplayName,
                IsCdfProvider         = dto.IsCdfProvider,
                IsEnabledForReferral  = dto.IsEnabledForReferral,
                PrimaryContact        = dto.PrimaryContact,
                PrimaryContactEmail   = dto.PrimaryContactEmail,
                PrimaryContactPhone   = dto.PrimaryContactPhone,
                SecondaryContact      = dto.SecondaryContact,
                SecondaryContactEmail = dto.SecondaryContactEmail,
                SecondaryContactPhone = dto.SecondaryContactPhone
            });

            var providerVenueDetailViewModel = new ProviderVenueDetailViewModel
            {
                Id                   = 1,
                ProviderId           = 1,
                Postcode             = dto.VenuePostcode,
                Name                 = dto.VenueName,
                IsEnabledForReferral = dto.VenueIsEnabledForReferral,
                IsRemoved            = true,
                Qualifications       = new List <QualificationDetailViewModel>()
            };

            _providerVenueService
            .GetVenueWithTrimmedPostcodeAsync(1, "CV1 2WT")
            .Returns(providerVenueDetailViewModel);

            _qualificationService.GetQualificationAsync(Arg.Any <string>()).Returns((QualificationDetailViewModel)null);
            _providerQualificationService.GetProviderQualificationAsync(Arg.Any <int>(), Arg.Any <int>()).Returns((ProviderQualificationDto)null);
            _routePathService.GetRouteSummaryByNameAsync(Arg.Any <string>()).Returns((RouteSummaryViewModel)null);

            var providerVenueQualificationService = new ProviderVenueQualificationService
                                                    (
                providerService,
                _providerVenueService,
                _providerQualificationService,
                _qualificationService,
                _routePathService,
                _qualificationRouteMappingService
                                                    );

            _results = providerVenueQualificationService.UpdateAsync(dtoList).GetAwaiter().GetResult();
        }
        public When_ProviderVenueQualificationService_Is_Called_To_Remove_Provider_Qualification()
        {
            _providerService                  = Substitute.For <IProviderService>();
            _providerVenueService             = Substitute.For <IProviderVenueService>();
            _providerQualificationService     = Substitute.For <IProviderQualificationService>();
            _qualificationRouteMappingService = Substitute.For <IQualificationRouteMappingService>();
            _qualificationService             = Substitute.For <IQualificationService>();
            _routePathService                 = Substitute.For <IRoutePathService>();

            var dtoList = new ValidProviderVenueQualificationDtoListBuilder()
                          .AddVenue()
                          .AddQualificationWithRoutes(false) // Qualification not offerred
                          .Build();
            var dto = dtoList.First();

            _providerService.SearchAsync(10000001)
            .Returns(new ProviderSearchResultDto
            {
                Id    = 1,
                UkPrn = dto.UkPrn,
                Name  = dto.ProviderName
            });

            _providerService.GetProviderDetailByIdAsync(1)
            .Returns(new ProviderDetailViewModel
            {
                UkPrn                 = dto.UkPrn,
                Name                  = dto.ProviderName,
                DisplayName           = dto.DisplayName,
                IsCdfProvider         = dto.IsCdfProvider,
                IsEnabledForReferral  = dto.IsEnabledForReferral,
                PrimaryContact        = dto.PrimaryContact,
                PrimaryContactEmail   = dto.PrimaryContactEmail,
                PrimaryContactPhone   = dto.PrimaryContactPhone,
                SecondaryContact      = dto.SecondaryContact,
                SecondaryContactEmail = dto.SecondaryContactEmail,
                SecondaryContactPhone = dto.SecondaryContactPhone
            });

            _providerVenueService
            .GetVenueWithTrimmedPostcodeAsync(1, "CV1 2WT")
            .Returns(new ProviderVenueDetailViewModel
            {
                Id                   = 1,
                ProviderId           = 1,
                Postcode             = dto.VenuePostcode,
                Name                 = dto.VenueName,
                IsEnabledForReferral = dto.VenueIsEnabledForReferral,
                Qualifications       = new List <QualificationDetailViewModel>()
            });

            _qualificationService
            .GetQualificationAsync("1234567X")
            .Returns(new QualificationDetailViewModel
            {
                Id         = 10,
                LarId      = "1234567X",
                Title      = "Full qualification title",
                ShortTitle = "Short qualification title"
            });

            _providerQualificationService
            .GetProviderQualificationAsync(Arg.Any <int>(), Arg.Any <int>())
            .Returns(new ProviderQualificationDto
            {
                ProviderVenueId = 1,
                QualificationId = 10
            });

            _routePathService
            .GetRouteSummaryByNameAsync("Agriculture, environmental and animal care")
            .Returns(new RouteSummaryViewModel
            {
                Id   = 1,
                Name = "Agriculture, environmental and animal care"
            });
            _routePathService
            .GetRouteSummaryByNameAsync("Digital")
            .Returns(new RouteSummaryViewModel
            {
                Id   = 3,
                Name = "Digital"
            });

            _qualificationRouteMappingService
            .GetQualificationRouteMappingAsync(1, 10)
            .Returns(new QualificationRouteMappingViewModel
            {
                QualificationId = 10,
                RouteId         = 1,
                Source          = "Test"
            });
            _qualificationRouteMappingService
            .GetQualificationRouteMappingAsync(3, 10)
            .Returns(new QualificationRouteMappingViewModel
            {
                QualificationId = 10,
                RouteId         = 3,
                Source          = "Test"
            });

            var providerVenueQualificationService = new ProviderVenueQualificationService
                                                    (
                _providerService,
                _providerVenueService,
                _providerQualificationService,
                _qualificationService,
                _routePathService,
                _qualificationRouteMappingService
                                                    );

            _results = providerVenueQualificationService.UpdateAsync(dtoList).GetAwaiter().GetResult();
        }
 public ProviderVenueController(IProviderVenueService providerVenueService)
 {
     _providerVenueService = providerVenueService;
 }