public When_Single_Item_Opportunity_Basket_Confirm_Delete_Opportunity_Item_Is_Loaded() { var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly)); var mapper = new Mapper(config); _opportunityService = Substitute.For <IOpportunityService>(); _opportunityService.GetConfirmDeleteOpportunityItemAsync(1).Returns(new ConfirmDeleteOpportunityItemViewModel { OpportunityItemId = 1, OpportunityId = 2, CompanyName = "Company Name", CompanyNameAka = "Also Known As", Postcode = "PostCode", JobRole = "JobRole", BasketItemCount = 1, Placements = 1, }); var opportunityController = new OpportunityController(_opportunityService, mapper); var controllerWithClaims = new ClaimsBuilder <OpportunityController>(opportunityController) .AddUserName("CreatedBy") .Build(); _result = controllerWithClaims.GetConfirmDeleteOpportunityItemAsync(1).GetAwaiter().GetResult(); }
public When_Qualification_SaveQualification_Has_No_Selected_Routes() { var qualificationService = Substitute.For <IQualificationService>(); var providerVenueService = Substitute.For <IProviderVenueService>(); var providerQualificationService = Substitute.For <IProviderQualificationService>(); var routePathService = Substitute.For <IRoutePathService>(); var qualificationController = new QualificationController(providerVenueService, qualificationService, providerQualificationService, routePathService); var controllerWithClaims = new ClaimsBuilder <QualificationController>(qualificationController) .AddUserName("username") .AddEmail("*****@*****.**") .Build(); var viewModel = new SaveQualificationViewModel { QualificationId = 1, Title = "Qualification title", ShortTitle = new string("Short Title"), Source = "Test", Routes = new List <RouteSummaryViewModel> { new RouteSummaryViewModel { Id = 1, Name = "Route 1", IsSelected = false } } }; _result = controllerWithClaims.SaveQualificationAsync(viewModel).GetAwaiter().GetResult(); }
public When_Opportunity_Controller_Save_ProvisionGap_Update_Opportunity() { const int opportunityId = 1; _opportunityService = Substitute.For <IOpportunityService>(); _opportunityService.IsNewProvisionGapAsync(opportunityId).Returns(false); var httpContextAccessor = Substitute.For <IHttpContextAccessor>(); var config = new MapperConfiguration(c => { c.AddMaps(typeof(EmployerDtoMapper).Assembly); c.ConstructServicesUsing(type => type.Name.Contains("LoggedInUserEmailResolver") ? new LoggedInUserEmailResolver <SaveProvisionGapViewModel, OpportunityDto>(httpContextAccessor) : type.Name.Contains("LoggedInUserNameResolver") ? (object)new LoggedInUserNameResolver <SaveProvisionGapViewModel, OpportunityDto>(httpContextAccessor) : type.Name.Contains("UtcNowResolver") ? new UtcNowResolver <SaveProvisionGapViewModel, OpportunityDto>(new DateTimeProvider()) : null); }); var mapper = new Mapper(config); var opportunityController = new OpportunityController(_opportunityService, mapper); var controllerWithClaims = new ClaimsBuilder <OpportunityController>(opportunityController) .AddUserName(UserName) .AddEmail(Email) .Build(); httpContextAccessor.HttpContext.Returns(controllerWithClaims.HttpContext); _result = controllerWithClaims.SaveProvisionGapAsync(new SaveProvisionGapViewModel { SearchResultProviderCount = 0, SelectedRouteId = 1, Postcode = "cv12wt", SearchRadius = 10 }).GetAwaiter().GetResult(); }
public When_ProviderQuarterlyUpdateEmail_Controller_ConfirmSendProviderEmail_Post_Is_Called_With_SendEmail_False() { var providerService = Substitute.For <IProviderService>(); _providerQuarterlyUpdateEmailService = Substitute.For <IProviderQuarterlyUpdateEmailService>(); const string adminEmail = "*****@*****.**"; var configuration = new MatchingConfiguration { AuthorisedAdminUserEmail = adminEmail }; var providerQuarterlyUpdateEmailController = new ProviderQuarterlyUpdateEmailController(_providerQuarterlyUpdateEmailService, providerService, configuration); var controllerWithClaims = new ClaimsBuilder <ProviderQuarterlyUpdateEmailController>(providerQuarterlyUpdateEmailController) .Add(ClaimTypes.Role, RolesExtensions.AdminUser) .AddEmail(adminEmail) .Build(); var viewModel = new ConfirmSendProviderEmailViewModel { ProviderCount = 100, SendEmail = false }; _result = controllerWithClaims.ConfirmSendProviderEmailAsync(viewModel).GetAwaiter().GetResult(); }
public When_Recording_Referrals_And_Employer_Details_Is_Submitted_Successfully() { _opportunityService = Substitute.For <IOpportunityService>(); _opportunityService.IsReferralOpportunityItemAsync(OpportunityItemId).Returns(true); var httpContextAccessor = Substitute.For <IHttpContextAccessor>(); var referralService = Substitute.For <IReferralService>(); var config = new MapperConfiguration(c => { c.AddMaps(typeof(EmployerDtoMapper).Assembly); c.ConstructServicesUsing(type => type.Name.Contains("LoggedInUserEmailResolver") ? new LoggedInUserEmailResolver <EmployerDetailsViewModel, EmployerDetailDto>(httpContextAccessor) : type.Name.Contains("LoggedInUserNameResolver") ? (object)new LoggedInUserNameResolver <EmployerDetailsViewModel, EmployerDetailDto>(httpContextAccessor) : type.Name.Contains("UtcNowResolver") ? new UtcNowResolver <EmployerDetailsViewModel, EmployerDetailDto>(new DateTimeProvider()) : null); }); var mapper = new Mapper(config); var employerController = new EmployerController(null, _opportunityService, referralService, mapper); var controllerWithClaims = new ClaimsBuilder <EmployerController>(employerController) .AddStandardUser() .AddUserName(ModifiedBy) .Build(); httpContextAccessor.HttpContext.Returns(controllerWithClaims.HttpContext); _result = controllerWithClaims.SaveOpportunityEmployerDetailsAsync(_viewModel).GetAwaiter().GetResult(); }
public When_Opportunity_Controller_SaveSelectedOpportunities_Is_Called_With_No_Selected_Referrals() { _opportunityService = Substitute.For <IOpportunityService>(); _opportunityService.GetOpportunityBasketAsync(1) .Returns(new OpportunityBasketViewModel()); var config = new MapperConfiguration(c => c.AddMaps(typeof(EmployerDtoMapper).Assembly)); var mapper = new Mapper(config); _opportunityController = new OpportunityController(_opportunityService, mapper); var controllerWithClaims = new ClaimsBuilder <OpportunityController>(_opportunityController).Build(); _result = controllerWithClaims.SaveSelectedOpportunitiesAsync(new ContinueOpportunityViewModel { OpportunityId = 1, SubmitAction = "SaveSelectedOpportunities", SelectedOpportunity = new List <SelectedOpportunityItemViewModel> { new SelectedOpportunityItemViewModel { IsSelected = false, OpportunityType = OpportunityType.Referral.ToString() } } }).GetAwaiter().GetResult(); }
public When_Recording_Referrals_And_Check_Answers_Is_Submitted_Successfully() { var httpContextAccessor = Substitute.For <IHttpContextAccessor>(); var config = new MapperConfiguration(c => { c.AddMaps(typeof(CheckAnswersDtoMapper).Assembly); c.ConstructServicesUsing(type => type.Name.Contains("LoggedInUserEmailResolver") ? new LoggedInUserEmailResolver <CheckAnswersViewModel, CheckAnswersDto>(httpContextAccessor) : type.Name.Contains("LoggedInUserNameResolver") ? (object)new LoggedInUserNameResolver <CheckAnswersViewModel, CheckAnswersDto>(httpContextAccessor) : type.Name.Contains("UtcNowResolver") ? new UtcNowResolver <CheckAnswersViewModel, CheckAnswersDto>(new DateTimeProvider()) : null); }); var mapper = new Mapper(config); _opportunityService = Substitute.For <IOpportunityService>(); var opportunityController = new OpportunityController(_opportunityService, mapper); var controllerWithClaims = new ClaimsBuilder <OpportunityController>(opportunityController) .AddUserName(ModifiedBy) .Build(); httpContextAccessor.HttpContext.Returns(controllerWithClaims.HttpContext); _result = controllerWithClaims.SaveCheckAnswers(OpportunityId, OpportunityItemId).GetAwaiter().GetResult(); }
public When_Opportunity_Basket_Is_Loaded_With_Referrals() { var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly)); var mapper = new Mapper(config); _opportunityService = Substitute.For <IOpportunityService>(); _opportunityService.GetOpportunityBasketAsync(1).Returns(new OpportunityBasketViewModel { OpportunityId = 1, CompanyName = "Company Name", CompanyNameAka = "Also Known As", ProvisionGapItems = null, ReferralItems = new List <BasketReferralItemViewModel> { new BasketReferralItemViewModel { OpportunityType = "Referral", OpportunityItemId = 5 } } }); var opportunityController = new OpportunityController(_opportunityService, mapper); var controllerWithClaims = new ClaimsBuilder <OpportunityController>(opportunityController) .AddUserName("CreatedBy") .Build(); _result = controllerWithClaims.GetOpportunityBasketAsync(1, 0).GetAwaiter().GetResult(); }
public When_Qualification_Add_Qualification_Does_Not_Exist() { var providerVenueService = Substitute.For <IProviderVenueService>(); _qualificationService = Substitute.For <IQualificationService>(); _qualificationService.IsValidLarIdAsync("12345678").Returns(true); _qualificationService.GetQualificationAsync("12345678").ReturnsNull(); _qualificationService.IsValidOfqualLarIdAsync("12345678").Returns(true); _providerQualificationService = Substitute.For <IProviderQualificationService>(); var routePathService = Substitute.For <IRoutePathService>(); var qualificationController = new QualificationController(providerVenueService, _qualificationService, _providerQualificationService, routePathService); var controllerWithClaims = new ClaimsBuilder <QualificationController>(qualificationController) .AddUserName("username") .AddEmail("*****@*****.**") .Build(); var viewModel = new AddQualificationViewModel { ProviderVenueId = 1, LarId = "12345678", Postcode = "CV1 2WT" }; _result = controllerWithClaims.CreateQualificationAsync(viewModel).GetAwaiter().GetResult(); }
public When_Qualification_Save_MissingQualification_Short_Title_Is_Too_Long() { var qualificationService = Substitute.For <IQualificationService>(); var providerVenueService = Substitute.For <IProviderVenueService>(); var providerQualificationService = Substitute.For <IProviderQualificationService>(); var routePathService = Substitute.For <IRoutePathService>(); var qualificationController = new QualificationController(providerVenueService, qualificationService, providerQualificationService, routePathService); var controllerWithClaims = new ClaimsBuilder <QualificationController>(qualificationController) .AddUserName("username") .AddEmail("*****@*****.**") .Build(); var viewModel = new MissingQualificationViewModel { ProviderVenueId = 1, LarId = "12345678", QualificationId = 1, Title = "Qualification title", ShortTitle = new string('X', 101), Routes = new List <RouteSummaryViewModel> { new RouteSummaryViewModel { Id = 1, Name = "Route 1", IsSelected = true } } }; _result = controllerWithClaims.SaveMissingQualificationAsync(viewModel).GetAwaiter().GetResult(); }
private static void SetUserCustomPropertyClaims(IUser user, ClaimsBuilder builder) { foreach (ICustomProperty customProperty in user.CustomProperties.Where(customProperty => customProperty.Value != null)) { builder.AddCustomProperty(customProperty.Name, customProperty.Value); } }
public When_HomeController_SaveServiceStatusHistory_Is_Called_By_Standard_User() { _serviceStatusHistoryService = Substitute.For <IServiceStatusHistoryService>(); _serviceStatusHistoryService.GetLatestServiceStatusHistoryAsync() .Returns(new ServiceStatusHistoryViewModel { IsOnline = true }); var homeController = new HomeController(_serviceStatusHistoryService); var controllerWithClaims = new ClaimsBuilder <HomeController>(homeController) .AddStandardUser() .Build(); var httpContextAccessor = Substitute.For <IHttpContextAccessor>(); httpContextAccessor.HttpContext.Returns(controllerWithClaims.HttpContext); var viewModel = new ServiceStatusHistoryViewModel { IsOnline = true }; _result = homeController.SaveServiceStatusHistoryAsync(viewModel).GetAwaiter().GetResult(); }
/// <inheritdoc /> public virtual async Task <IToken> BuildAsync(ICredentials creds, IUser user, List <RelatedEntityCollection> relatedEntityCollections) { if (user == null) { var userClient = ClientsCache.Generic.GetValueOrNew <EntityClientAdminAsync <User, long> >(typeof(User).Name); var odataUser = await userClient.GetAsync(creds.User) ?? throw new Exception("User not found."); user = odataUser.Object; relatedEntityCollections = relatedEntityCollections ?? new List <RelatedEntityCollection>(); relatedEntityCollections.AddRange(odataUser.RelatedEntityCollection); } var tokenClient = ClientsCache.Generic.GetValueOrNew <EntityClientAdminAsync <Token, long>, bool>(typeof(Token).Name, true); var token = new Token { Text = CryptoRandomString.GetCryptoRandomAlphaNumericString(TokenSize), UserId = user.Id }; var odataToken = await tokenClient.PostAsync(new List <Token> { token }); var claimConfigClient = ClientsCache.Generic.GetValueOrNew <EntityClientAdminAsync <ClaimConfiguration, int> >(typeof(ClaimConfiguration).Name); var claimConfigs = await claimConfigClient.GetAllAsync(); var claims = await ClaimsBuilder.BuildAsync(user, claimConfigs?.Select(c => c.Object)); if (claims != null && claims.Count > 0) { token.ClaimDomains.AddRange(claims); } Task.WaitAll(); return(token); }
public When_Provider_Controller_SearchProvider_Post_Is_Called_With_Provider_In_UkRlp() { _providerService = Substitute.For <IProviderService>(); _providerService .SearchAsync(Arg.Any <long>()) .ReturnsNull(); _providerService .SearchReferenceDataAsync(Arg.Any <long>()) .Returns(new ProviderSearchResultDto { Id = 1, UkPrn = 10000546, Name = "Test Provider" }); var providerController = new ProviderController(_providerService, new MatchingConfiguration()); var controllerWithClaims = new ClaimsBuilder <ProviderController>(providerController).Build(); var viewModel = new ProviderSearchParametersViewModel { UkPrn = 10000546 }; _result = controllerWithClaims.SearchProviderByUkPrnAsync(viewModel).GetAwaiter().GetResult(); }
public When_Employer_SaveOpportunityCompanyName_Is_Submitted_And_Employer_Is_Already_In_Opportunity() { var employerService = Substitute.For <IEmployerService>(); employerService.ValidateCompanyNameAndCrmIdAsync(Arg.Any <Guid>(), Arg.Any <string>()) .Returns(true); employerService.GetEmployerOpportunityOwnerAsync(Arg.Any <Guid>()) .Returns("Another User"); var opportunityService = Substitute.For <IOpportunityService>(); var referralService = Substitute.For <IReferralService>(); var viewModel = new FindEmployerViewModel { OpportunityId = 1, CompanyName = "Company Name" }; var config = new MapperConfiguration(c => c.AddMaps(typeof(EmployerMapper).Assembly)); var mapper = new Mapper(config); _employerController = new EmployerController(employerService, opportunityService, referralService, mapper); var controllerWithClaims = new ClaimsBuilder <EmployerController>(_employerController) .Add(ClaimTypes.Role, RolesExtensions.StandardUser) .AddUserName("Current User") .Build(); _result = controllerWithClaims.SaveOpportunityCompanyNameAsync(viewModel).GetAwaiter().GetResult(); }
public When_Provider_Controller_SaveProviderDetail_Is_Called_With_SubmitAction_SaveSection_Existing_And_CdfProvider_Is_No() { _providerService = Substitute.For <IProviderService>(); var providerController = new ProviderController(_providerService, new MatchingConfiguration()); var controllerWithClaims = new ClaimsBuilder <ProviderController>(providerController).Build(); _result = controllerWithClaims.SaveProviderDetailAsync(_viewModel).GetAwaiter().GetResult(); }
public When_Provider_Controller_SearchProvider_Is_Loaded() { var providerService = Substitute.For <IProviderService>(); var providerController = new ProviderController(providerService, new MatchingConfiguration()); var controllerWithClaims = new ClaimsBuilder <ProviderController>(providerController).Build(); _result = controllerWithClaims.SearchProviderAsync().GetAwaiter().GetResult(); }
private static void SetUserOrganizationClaims(IUser user, ClaimsBuilder builder) { foreach (string organizationName in user.Organizations.Select(o => o.Name).Distinct()) { if (organizationName != null) { builder.AddOrganization(organizationName); } } }
private static void SetUserGroupClaims(IUser user, ClaimsBuilder builder) { foreach (Guid groupId in user.Groups.Select(g => g.Id).Distinct()) { if (groupId != Guid.Empty) { builder.AddGroup(groupId); } } }
public When_Provider_Controller_CreateProviderDetail_Is_Loaded() { var providerService = Substitute.For <IProviderService>(); var providerController = new ProviderController(providerService, new MatchingConfiguration()); var controllerWithClaims = new ClaimsBuilder <ProviderController>(providerController).Build(); _result = controllerWithClaims.AddProviderDetail(new AddProviderViewModel { UkPrn = 123, Name = "Provider name" }); }
public When_Opportunity_Controller_Delete_Referral() { var config = new MapperConfiguration(c => c.AddMaps(typeof(CheckAnswersDtoMapper).Assembly)); var mapper = new Mapper(config); _opportunityService = Substitute.For <IOpportunityService>(); var opportunityController = new OpportunityController(_opportunityService, mapper); var controllerWithClaims = new ClaimsBuilder <OpportunityController>(opportunityController) .AddUserName("CreatedBy") .Build(); _result = controllerWithClaims.DeleteReferralAsync(ReferralIdToDelete, OpportunityItemId).GetAwaiter().GetResult(); }
public When_Provider_Controller_SearchProvider_Post_Is_Called_With_Empty_UkPrn() { _providerService = Substitute.For <IProviderService>(); _providerService .SearchAsync(Arg.Any <long>()) .ReturnsNull(); var providerController = new ProviderController(_providerService, new MatchingConfiguration()); var controllerWithClaims = new ClaimsBuilder <ProviderController>(providerController).Build(); var viewModel = new ProviderSearchParametersViewModel(); _result = controllerWithClaims.SearchProviderByUkPrnAsync(viewModel).GetAwaiter().GetResult(); }
public When_Opportunity_Controller_SaveSelectedOpportunities_Is_Called_With_SubmitAction_CompleteProvisionGaps() { _opportunityService = Substitute.For <IOpportunityService>(); var config = new MapperConfiguration(c => c.AddMaps(typeof(EmployerDtoMapper).Assembly)); var mapper = new Mapper(config); _opportunityController = new OpportunityController(_opportunityService, mapper); var controllerWithClaims = new ClaimsBuilder <OpportunityController>(_opportunityController).Build(); _result = controllerWithClaims.SaveSelectedOpportunitiesAsync(new ContinueOpportunityViewModel { SubmitAction = "CompleteProvisionGaps" }).GetAwaiter().GetResult(); }
public When_Provider_Controller_CreateProviderDetail_Is_Called_With_SubmitAction_SaveAndAddVenue() { _providerService = Substitute.For <IProviderService>(); var providerController = new ProviderController(_providerService, new MatchingConfiguration()); var controllerWithClaims = new ClaimsBuilder <ProviderController>(providerController).Build(); _providerService.CreateProviderAsync(Arg.Any <CreateProviderDetailViewModel>()) .Returns(1); _result = controllerWithClaims.CreateProviderDetailAsync(new CreateProviderDetailViewModel { SubmitAction = "SaveAndAddVenue" }).GetAwaiter().GetResult(); }
public When_Provider_Controller_AddProvider_Post_Is_Called() { var providerService = Substitute.For <IProviderService>(); var providerController = new ProviderController(providerService, new MatchingConfiguration()); var controllerWithClaims = new ClaimsBuilder <ProviderController>(providerController).Build(); var viewModel = new AddProviderViewModel { UkPrn = 123, Name = "ProviderName" }; _result = controllerWithClaims.AddProvider(viewModel); }
public void And_I_Do_Not_Have_Correct_Role_Then_Redirect_To_FailedLogin_Page() { var controllerWithClaims = new ClaimsBuilder <AccountController>(_accountController) .AddUserName("username") .Build(); var result = controllerWithClaims.PostSignIn(); result.Should().BeOfType <RedirectToActionResult>(); var redirectResult = result as RedirectToActionResult; redirectResult.Should().NotBeNull(); redirectResult?.ControllerName.Should().Be("Home"); redirectResult?.ActionName.Should().Be("FailedLogin"); }
public void And_I_Do_Not_Have_Correct_Role_Then_Redirect_To_Search_Start_Page() { var controllerWithClaims = new ClaimsBuilder <AccountController>(_accountController) .AddStandardUser() .Build(); var result = controllerWithClaims.PostSignIn(); result.Should().BeOfType <RedirectToActionResult>(); var redirectResult = result as RedirectToActionResult; redirectResult.Should().NotBeNull(); redirectResult?.ControllerName.Should().Be("Dashboard"); redirectResult?.ActionName.Should().Be("Start"); }
public When_Recording_Referrals_And_Check_Answers_Is_Loaded() { var config = new MapperConfiguration(c => c.AddMaps(typeof(CheckAnswersDtoMapper).Assembly)); var mapper = new Mapper(config); var dto = new ValidCheckAnswersDtoBuilder().Build(); _opportunityService = Substitute.For <IOpportunityService>(); _opportunityService.GetCheckAnswersAsync(OpportunityItemId).Returns(dto); var opportunityController = new OpportunityController(_opportunityService, mapper); var controllerWithClaims = new ClaimsBuilder <OpportunityController>(opportunityController) .AddUserName(CreatedBy) .Build(); _result = controllerWithClaims.GetCheckAnswersAsync(OpportunityItemId).GetAwaiter().GetResult(); }
public When_Qualification_RemoveQualification_Is_Called() { var qualificationService = Substitute.For <IQualificationService>(); var providerVenueService = Substitute.For <IProviderVenueService>(); _providerQualificationService = Substitute.For <IProviderQualificationService>(); var routePathService = Substitute.For <IRoutePathService>(); var qualificationController = new QualificationController(providerVenueService, qualificationService, _providerQualificationService, routePathService); var controllerWithClaims = new ClaimsBuilder <QualificationController>(qualificationController) .AddUserName("username") .AddEmail("*****@*****.**") .Build(); _result = controllerWithClaims.RemoveQualificationAsync(1, 2).GetAwaiter().GetResult(); }
public When_MultiItem_Opportunity_Basket_Delete_Opportunity_Item_Is_Posted() { var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly)); var mapper = new Mapper(config); _opportunityService = Substitute.For <IOpportunityService>(); var opportunityController = new OpportunityController(_opportunityService, mapper); var controllerWithClaims = new ClaimsBuilder <OpportunityController>(opportunityController) .AddUserName("CreatedBy") .Build(); _result = controllerWithClaims.DeleteOpportunityItemAsync(new DeleteOpportunityItemViewModel { OpportunityId = 1, OpportunityItemId = 2, BasketItemCount = 2 }).GetAwaiter().GetResult(); }