public When_OpportunityService_Is_Called_To_Get_Opportunity_Basket_ReferralSingleOnly() { var config = new MapperConfiguration(c => c.AddMaps(typeof(OpportunityMapper).Assembly)); var mapper = new Mapper(config); _opportunityRepository = Substitute.For <IOpportunityRepository>(); var 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 viewModel = new OpportunityBasketViewModelBuilder() .AddReferralItem() .Build(); _opportunityRepository.GetOpportunityBasketAsync(1).Returns(viewModel); var opportunityService = new OpportunityService(mapper, _opportunityRepository, opportunityItemRepository, provisionGapRepository, referralRepository, googleMapApiClient, opportunityPipelineReportWriter, dateTimeProvider); _result = opportunityService.GetOpportunityBasketAsync(1) .GetAwaiter().GetResult(); }
public async Task Then_Reasons_Should_Have_Only_Related_To_No_Suitable_Students( MatchingDbContext dbContext, OpportunityItem opportunityItem, IMapper mapper, [Frozen] ILogger <OpportunityRepository> logger, [Frozen] IRepository <OpportunityItem> opportunityItemRepository, [Frozen] IRepository <ProvisionGap> provisionGapRepository, [Frozen] IRepository <Domain.Models.Referral> referralRepository, [Frozen] IGoogleMapApiClient googleMapApiClient, [Frozen] IFileWriter <OpportunityReportDto> opportunityPipelineReportWriter, [Frozen] IDateTimeProvider dateTimeProvider ) { await SetProvisionGapData(dbContext, opportunityItem, false, true, false); var opportunityRepository = new OpportunityRepository(logger, dbContext); var sut = new OpportunityService(mapper, opportunityRepository, opportunityItemRepository, provisionGapRepository, referralRepository, googleMapApiClient, opportunityPipelineReportWriter, dateTimeProvider); var result = await sut.GetOpportunityBasketAsync(opportunityItem.OpportunityId); result.ProvisionGapItems.Should().Contain(model => model.OpportunityType == "ProvisionGap").Which.Reason .Should().Contain("Providers do not have students doing the right course"); result.ProvisionGapItems.Should().Contain(model => model.OpportunityType == "ProvisionGap").Which.Reason .Should().NotContain("Employer had a bad experience with them"); }