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); }
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); }