public async Task SavesAndIndexesPublishedProviderVersionWhenCorrectInputGiven()
        {
            // Arrange
            TemplateMetadataContents            templateMetadataContents           = Substitute.For <TemplateMetadataContents>();
            TemplateMapping                     templateMapping                    = Substitute.For <TemplateMapping>();
            IPublishedProviderContentsGenerator publishedProviderContentsGenerator = Substitute.For <IPublishedProviderContentsGenerator>();

            List <PublishedProvider> publishedProvidersToUpdate = new List <PublishedProvider>();

            PublishedProviderVersion publishedProviderVersion = NewPublishedProviderVersion(providerVersion => providerVersion
                                                                                            .WithProviderId(ProviderVersionProviderId)
                                                                                            .WithFundingPeriodId(ProviderVersionFundingPeriodId)
                                                                                            .WithFundingStreamId(ProviderVersionFundingStreamId)
                                                                                            .WithVersion(ProviderVersionVersion)
                                                                                            .WithSpecificationId(ProviderVersionSpecificationId));

            PublishedProvider publishedProvider = NewPublishedProvider(provider => provider.WithCurrent(publishedProviderVersion));

            publishedProvidersToUpdate.Add(publishedProvider);

            publishedProviderContentsGenerator
            .GenerateContents(publishedProviderVersion, templateMetadataContents, templateMapping)
            .Returns("contents");

            // Act
            await _publishedProviderContentPersistanceService.SavePublishedProviderContents(
                templateMetadataContents, templateMapping, publishedProvidersToUpdate, publishedProviderContentsGenerator);

            // Assert
            await _publishedProviderVersionService
            .Received()
            .SavePublishedProviderVersionBody(publishedProviderVersion.FundingId, Arg.Any <string>(), publishedProviderVersion.SpecificationId);

            await _publishedProviderIndexerService
            .Received()
            .IndexPublishedProvider(publishedProviderVersion);
        }