public RemoteControlledSamplerTests()
        {
            _serivceName         = "testService";
            _mockSamplingManager = Substitute.For <ISamplingManager>();
            _mockLoggerFactory   = Substitute.For <ILoggerFactory>();
            _mockSampler         = Substitute.For <ISampler>();
            _mockMetrics         = Substitute.For <IMetrics>();
            _pollingIntervalMs   = 5000;
            _mockSamplerFactory  = Substitute.For <ISamplerFactory>();
            _mockLogger          = Substitute.For <ILogger <RemoteControlledSampler> >();
            _mockPollTimer       = Substitute.For <Func <Action, int, CancellationToken, Task> >();

            _mockLoggerFactory.CreateLogger <RemoteControlledSampler>().Returns(_mockLogger);

            _testingSampler = new RemoteControlledSampler(
                _serivceName,
                _mockSamplingManager,
                _mockLoggerFactory,
                _mockMetrics,
                _mockSampler,
                _mockSamplerFactory,
                _pollingIntervalMs,
                _mockPollTimer
                );
        }
 internal PerOperationSampler(int maxOperations, double samplingRate, double lowerBound, ILoggerFactory loggerFactory, ISamplerFactory samplerFactory)
 {
     _maxOperations  = maxOperations;
     _samplingRate   = samplingRate;
     _lowerBound     = lowerBound;
     _logger         = loggerFactory?.CreateLogger <PerOperationSampler>() ?? throw new ArgumentNullException(nameof(loggerFactory));
     _factory        = samplerFactory ?? throw new ArgumentNullException(nameof(samplerFactory));
     _defaultSampler = _factory.NewProbabilisticSampler(_samplingRate);
 }
Exemple #3
0
        private void CreateInstance(ISamplerFactory factory)
        {
            var action1 = new Action <EventHandler <ValueChangedEventArgs> >(this.Do);
            var action2 = new Action <EventHandler <ValueChangedEventArgs> >(this.Do);
            var action3 = new Func <decimal?>(this.Query);

            this.action1WeakReference = new WeakReference(action1);
            this.action2WeakReference = new WeakReference(action2);
            this.action3WeakReference = new WeakReference(action3);
            var x = factory.Create(action1, action2, action3);

            if (x == null || !this.action1WeakReference.IsAlive || !this.action2WeakReference.IsAlive || !this.action3WeakReference.IsAlive)
            {
                throw new Exception();
            }
        }
 internal RemoteControlledSampler(
     string serviceName,
     ISamplingManager samplingManager,
     ILoggerFactory loggerFactory,
     IMetrics metrics,
     ISampler sampler,
     ISamplerFactory samplerFactory,
     int pollingIntervalMs,
     Func <Action, int, CancellationToken, Task> pollTimer)
 {
     _serviceName             = serviceName;
     _samplingManager         = samplingManager;
     _loggerFactory           = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
     _logger                  = loggerFactory.CreateLogger <RemoteControlledSampler>();
     _metrics                 = metrics;
     _sampler                 = sampler;
     _samplerFactory          = samplerFactory;
     _cancellationTokenSource = new CancellationTokenSource();
     _pollTimer               = pollTimer(UpdateSampler, pollingIntervalMs, _cancellationTokenSource.Token);
 }
        public PerOperationSamplerTests()
        {
            _samplingRate  = 1.0;
            _lowerBound    = 0.5;
            _maxOperations = 3;

            _mockGtpSampler     = Substitute.For <IGuaranteedThroughputProbabilisticSampler>();
            _mockLoggerFactory  = Substitute.For <ILoggerFactory>();
            _mockLogger         = Substitute.For <ILogger <PerOperationSampler> >();
            _mockDefaultSampler = Substitute.For <IProbabilisticSampler>();
            _mockSamplerFactory = Substitute.For <ISamplerFactory>();

            _mockSamplerFactory.NewGuaranteedThroughputProbabilisticSampler(
                Arg.Is <double>(x => x == _samplingRate),
                Arg.Is <double>(x => x == _lowerBound)
                ).Returns(_mockGtpSampler);
            _mockSamplerFactory.NewProbabilisticSampler(
                Arg.Is <double>(x => x == _samplingRate)
                ).Returns(_mockDefaultSampler);
            _mockLoggerFactory.CreateLogger <PerOperationSampler>().Returns(_mockLogger);

            _testingSampler = new PerOperationSampler(_maxOperations, _samplingRate, _lowerBound, _mockLoggerFactory, _mockSamplerFactory);
        }