Beispiel #1
0
        public void SetUp()
        {
            _strategyOne = NewRandomStrategy();
            _strategyTwo = NewRandomStrategy();

            _serviceLocator = new VariationStrategyServiceLocator(new [] { _strategyOne, _strategyTwo });
        }
Beispiel #2
0
        private void AssertThatStrategyCanBeLocatedByName(IVariationStrategy expectedStrategy)
        {
            IVariationStrategy actualStrategy = WhenTheStrategyIsLocated(expectedStrategy.Name);

            actualStrategy
            .Should()
            .Be(expectedStrategy);
        }
Beispiel #3
0
        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);
        }
Beispiel #5
0
        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);
        }