public void SetUp() { _strategyOne = NewRandomStrategy(); _strategyTwo = NewRandomStrategy(); _serviceLocator = new VariationStrategyServiceLocator(new [] { _strategyOne, _strategyTwo }); }
private void AssertThatStrategyCanBeLocatedByName(IVariationStrategy expectedStrategy) { IVariationStrategy actualStrategy = WhenTheStrategyIsLocated(expectedStrategy.Name); actualStrategy .Should() .Be(expectedStrategy); }
private IVariationStrategy NewRandomStrategy() { IVariationStrategy strategy = Substitute.For <IVariationStrategy>(); strategy.Name .Returns(NewRandomString()); return(strategy); }
public void SetUp() { _variationStrategyServiceLocator = Substitute.For <IVariationStrategyServiceLocator>(); _variationStrategy = Substitute.For <IVariationStrategy>(); _factory = new ProviderVariationsDetection(_variationStrategyServiceLocator); _variationStrategyServiceLocator .GetService(Arg.Any <string>()) .Returns(_variationStrategy); }
public async Task <ProviderVariationContext> CreateRequiredVariationChanges(PublishedProvider existingPublishedProvider, decimal?updatedTotalFunding, Provider provider, IEnumerable <FundingVariation> variations, IDictionary <string, PublishedProviderSnapShots> allPublishedProviderSnapShots, IDictionary <string, PublishedProvider> allPublishedProviderRefreshStates, IEnumerable <ProfileVariationPointer> variationPointers, string providerVersionId) { Guard.ArgumentNotNull(existingPublishedProvider, nameof(existingPublishedProvider)); Guard.ArgumentNotNull(updatedTotalFunding, nameof(updatedTotalFunding)); Guard.ArgumentNotNull(provider, nameof(provider)); Guard.ArgumentNotNull(variations, nameof(variations)); Guard.ArgumentNotNull(allPublishedProviderRefreshStates, nameof(allPublishedProviderRefreshStates)); Guard.ArgumentNotNull(allPublishedProviderSnapShots, nameof(allPublishedProviderSnapShots)); ProviderVariationContext providerVariationContext = new ProviderVariationContext { PublishedProvider = existingPublishedProvider, UpdatedProvider = provider, UpdatedTotalFunding = updatedTotalFunding, AllPublishedProviderSnapShots = allPublishedProviderSnapShots, AllPublishedProvidersRefreshStates = allPublishedProviderRefreshStates, ProviderVersionId = providerVersionId, VariationPointers = variationPointers }; foreach (FundingVariation configuredVariation in variations.OrderBy(_ => _.Order)) { IVariationStrategy variationStrategy = _variationStrategyServiceLocator.GetService(configuredVariation.Name); await variationStrategy.DetermineVariations(providerVariationContext, configuredVariation.FundingLineCodes); } return(providerVariationContext); }