public When_OpportunityService_Is_Called_To_Get_Opportunity_Spreadsheet_Data()
        {
            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>();

            _opportunityPipelineReportWriter = Substitute.For <IFileWriter <OpportunityReportDto> >();

            var dateTimeProvider = Substitute.For <IDateTimeProvider>();

            dateTimeProvider.UtcNow().Returns(new DateTime(2019, 03, 10));

            _opportunityRepository.GetPipelineOpportunitiesAsync(Arg.Any <int>())
            .Returns(new OpportunityReportDtoBuilder()
                     .AddReferralItem()
                     .AddProvisionGapItem()
                     .Build());

            var opportunityService = new OpportunityService(mapper, _opportunityRepository, opportunityItemRepository,
                                                            provisionGapRepository, referralRepository, googleMapApiClient,
                                                            _opportunityPipelineReportWriter, dateTimeProvider);

            _result = opportunityService.GetOpportunitySpreadsheetDataAsync(1)
                      .GetAwaiter().GetResult();
        }