public ScaleoutStream(ILogger logger, string loggerPrefix, QueuingBehavior queueBehavior, int size, IPerformanceCounterManager performanceCounters) { if (logger == null) { throw new ArgumentNullException("logger"); } _logger = logger; _loggerPrefix = loggerPrefix; _size = size; _perfCounters = performanceCounters; _queueBehavior = queueBehavior; InitializeCore(); }
public ScaleoutStream(TraceSource trace, string tracePrefix, QueuingBehavior queueBehavior, int size, IPerformanceCounterManager performanceCounters) { if (trace == null) { throw new ArgumentNullException("trace"); } _trace = trace; _tracePrefix = tracePrefix; _size = size; _perfCounters = performanceCounters; _queueBehavior = queueBehavior; InitializeCore(); }
public void SendAfterOpenDoesBehavesCorrectlyForConfiguredQueuingBehavior(QueuingBehavior queuingBehavior, int expectedCounter) { var perfCounters = new Mock<IPerformanceCounterManager>(); var queueLengthCounter = new Mock<IPerformanceCounter>(); var counterIncrementCount = 0; queueLengthCounter.Setup(c => c.Increment()).Callback(() => counterIncrementCount++); perfCounters.DefaultValue = DefaultValue.Mock; perfCounters.SetReturnsDefault(new NoOpPerformanceCounter()); perfCounters.SetupAllProperties(); perfCounters.Setup(pc => pc.ScaleoutSendQueueLength).Returns(queueLengthCounter.Object); var stream = new ScaleoutStream(new TraceSource("Queue"), "0", queuingBehavior, 1000, perfCounters.Object); stream.Send(_ => TaskAsyncHelper.Empty, null); stream.Open(); stream.Send(_ => TaskAsyncHelper.Empty, null).Wait(); Assert.Equal(expectedCounter, counterIncrementCount); }
public void SendAfterOpenDoesBehavesCorrectlyForConfiguredQueuingBehavior(QueuingBehavior queuingBehavior, int expectedCounter) { var perfCounters = new Mock <IPerformanceCounterManager>(); var queueLengthCounter = new Mock <IPerformanceCounter>(); var counterIncrementCount = 0; queueLengthCounter.Setup(c => c.Increment()).Callback(() => counterIncrementCount++); perfCounters.DefaultValue = DefaultValue.Mock; perfCounters.SetReturnsDefault(new NoOpPerformanceCounter()); perfCounters.SetupAllProperties(); perfCounters.Setup(pc => pc.ScaleoutSendQueueLength).Returns(queueLengthCounter.Object); var stream = new ScaleoutStream(new TraceSource("Queue"), "0", queuingBehavior, 1000, perfCounters.Object); stream.Send(_ => TaskAsyncHelper.Empty, null); stream.Open(); stream.Send(_ => TaskAsyncHelper.Empty, null).Wait(); Assert.Equal(expectedCounter, counterIncrementCount); }