public When_OpportunityService_Is_Called_To_Get_Placement_Information_With_Provision_Gap() { var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly)); var mapper = new Mapper(config); var opportunityRepository = Substitute.For <IOpportunityRepository>(); _opportunityItemRepository = Substitute.For <IRepository <OpportunityItem> >(); var provisionGapRepository = Substitute.For <IRepository <ProvisionGap> >(); var referralRepository = Substitute.For <IRepository <Domain.Models.Referral> >(); var googleMapApiClient = Substitute.For <IGoogleMapApiClient>(); var opportunityPipelineReportWriter = Substitute.For <IFileWriter <OpportunityReportDto> >(); var dateTimeProvider = Substitute.For <IDateTimeProvider>(); var dto = new OpportunityItemBuilder() .AddProvisionGap() .AddEmployer() .Build(); _opportunityItemRepository.GetSingleOrDefaultAsync(Arg.Any <Expression <Func <OpportunityItem, bool> > >(), Arg.Any <Expression <Func <OpportunityItem, object> > >(), Arg.Any <Expression <Func <OpportunityItem, object> > >(), Arg.Any <Expression <Func <OpportunityItem, object> > >()) .Returns(dto); var opportunityService = new OpportunityService(mapper, opportunityRepository, _opportunityItemRepository, provisionGapRepository, referralRepository, googleMapApiClient, opportunityPipelineReportWriter, dateTimeProvider); _result = opportunityService.GetPlacementInformationAsync(1) .GetAwaiter().GetResult(); }
public When_OpportunityService_Is_Called_To_Save_PlacementInformation_With_Empty_Job_Title() { var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly)); var mapper = new Mapper(config); _opportunityItemRepository = Substitute.For <IRepository <OpportunityItem> >(); var opportunityRepository = Substitute.For <IOpportunityRepository>(); var provisionGapRepository = Substitute.For <IRepository <ProvisionGap> >(); var referralRepository = Substitute.For <IRepository <Domain.Models.Referral> >(); var googleMapApiClient = Substitute.For <IGoogleMapApiClient>(); var opportunityPipelineReportWriter = Substitute.For <IFileWriter <OpportunityReportDto> >(); var dateTimeProvider = Substitute.For <IDateTimeProvider>(); var opportunityItem = new OpportunityItem { Id = OpportunityItemId, Postcode = Postcode, SearchRadius = Distance, RouteId = RouteId }; _opportunityItemRepository.GetSingleOrDefaultAsync(Arg.Any <Expression <Func <OpportunityItem, bool> > >()).Returns(opportunityItem); var opportunityService = new OpportunityService(mapper, opportunityRepository, _opportunityItemRepository, provisionGapRepository, referralRepository, googleMapApiClient, opportunityPipelineReportWriter, dateTimeProvider); var dto = new PlacementInformationSaveDto { OpportunityItemId = OpportunityItemId, JobRole = JobRole, PlacementsKnown = PlacementsKnown, Placements = Placements }; opportunityService.UpdateOpportunityItemAsync(dto).GetAwaiter().GetResult(); }
public When_Placement_Information_Loaded() { var dto = new PlacementInformationSaveDto { OpportunityId = OpportunityId, OpportunityItemId = OpportunityItemId, JobRole = JobRole, OpportunityType = OpportunityType.Referral, CompanyName = CompanyName, CompanyNameAka = CompanyNameAka, PlacementsKnown = PlacementsKnown, Placements = Placements, NoSuitableStudent = true, HadBadExperience = true, ProvidersTooFarAway = true }; var config = new MapperConfiguration(c => c.AddMaps(typeof(PlacementInformationSaveDtoMapper).Assembly)); var mapper = new Mapper(config); _opportunityService = Substitute.For <IOpportunityService>(); _opportunityService.GetPlacementInformationAsync(OpportunityItemId).Returns(dto); var opportunityController = new OpportunityController(_opportunityService, mapper); _result = opportunityController.GetPlacementInformationAsync(OpportunityItemId).GetAwaiter().GetResult(); }
public async Task UpdateProvisionGapAsync(PlacementInformationSaveDto dto) { var provisionGap = await _provisionGapRepository.GetSingleOrDefaultAsync(p => p.OpportunityItemId == dto.OpportunityItemId); if (provisionGap != null) { provisionGap = _mapper.Map(dto, provisionGap); await _provisionGapRepository.UpdateAsync(provisionGap); } }
public When_OpportunityService_Is_Called_To_Update_ProvisionGap() { var httpContextAccessor = Substitute.For <IHttpContextAccessor>(); httpContextAccessor.HttpContext.Returns(new DefaultHttpContext { User = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimTypes.GivenName, "adminUserName") })) }); var config = new MapperConfiguration(c => { c.AddMaps(typeof(OpportunityMapper).Assembly); c.ConstructServicesUsing(type => type.Name.Contains("LoggedInUserEmailResolver") ? new LoggedInUserEmailResolver <PlacementInformationSaveDto, ProvisionGap>(httpContextAccessor) : type.Name.Contains("LoggedInUserNameResolver") ? (object)new LoggedInUserNameResolver <PlacementInformationSaveDto, ProvisionGap>(httpContextAccessor) : type.Name.Contains("UtcNowResolver") ? new UtcNowResolver <PlacementInformationSaveDto, ProvisionGap>(new DateTimeProvider()) : null); }); var mapper = new Mapper(config); var opportunityRepository = Substitute.For <IOpportunityRepository>(); var opportunityItemRepository = Substitute.For <IRepository <OpportunityItem> >(); _provisionGapRepository = Substitute.For <IRepository <ProvisionGap> >(); var referralRepository = Substitute.For <IRepository <Domain.Models.Referral> >(); var googleMapApiClient = Substitute.For <IGoogleMapApiClient>(); var opportunityPipelineReportWriter = Substitute.For <IFileWriter <OpportunityReportDto> >(); var dateTimeProvider = Substitute.For <IDateTimeProvider>(); _provisionGapRepository .GetSingleOrDefaultAsync(Arg.Any <Expression <Func <ProvisionGap, bool> > >()) .Returns(new ValidProvisionGapBuilder().Build()); var opportunityService = new OpportunityService(mapper, opportunityRepository, opportunityItemRepository, _provisionGapRepository, referralRepository, googleMapApiClient, opportunityPipelineReportWriter, dateTimeProvider); var dto = new PlacementInformationSaveDto { OpportunityId = 1, OpportunityItemId = 1, OpportunityType = OpportunityType.ProvisionGap, SearchResultProviderCount = 0, JobRole = "Junior Tester", PlacementsKnown = false, NoSuitableStudent = true, HadBadExperience = true, ProvidersTooFarAway = true, ModifiedBy = "TestUser", ModifiedOn = new DateTime(2019, 1, 1) }; opportunityService.UpdateProvisionGapAsync(dto).GetAwaiter().GetResult(); }