Example #1
0
        /// <summary>
        /// Создает новый экземпляр класса <see cref="AcknowledgementBehaviorTests"/>.
        /// </summary>
        public AcknowledgementBehaviorTests()
        {
            var namingConvention = new DefaultNamingConvention(
                new ServiceInfoAccessor(
                    new ServiceInfo("Test", "MyApp", "Test", "Test"))
                );
            var topologyProvider = new DefaultTopologyProvider(namingConvention);

            var retryComputerResolver = new Mock <INamedResolver <string, IRetryDelayComputer> >();

            retryComputerResolver.Setup(x => x.GetRequired(It.IsAny <string>()))
            .Returns((string retryPolicyType) =>
            {
                if (retryPolicyType == RetryPolicyType.Constant)
                {
                    return(new ConstantRetryDelayComputer());
                }

                if (retryPolicyType == RetryPolicyType.Exponential)
                {
                    return(new ExponentialRetryDelayComputer());
                }

                if (retryPolicyType == RetryPolicyType.Linear)
                {
                    return(new LinearRetryDelayComputer());
                }

                throw new ArgumentOutOfRangeException(
                    nameof(retryPolicyType),
                    retryPolicyType,
                    "Неопределена политика подсчета времени ретрая."
                    );
            });

            _acknowledgementBehaviour = new DefaultAcknowledgementBehaviour(
                retryComputerResolver.Object,
                namingConvention,
                topologyProvider,
                NullLogger <DefaultAcknowledgementBehaviour> .Instance
                );

            _configurationManager = new DefaultConfigurationManager(ConfigurationHelper.GetConfiguration());
        }
 private ITopologyProvider Create(string providerName)
 {
     return(serviceProvider.GetServiceByName <ITopologyProvider>(providerName) ??
            DefaultTopologyProvider.Create(serviceProvider, providerName));
 }