public async Task Test_logging_output() { var random = new Random(); var reporter = new OrphanedResponseLogger { Interval = 100 }; foreach (var i in Enumerable.Range(1, 100)) { var context = OperationContext.CreateKvContext((uint)i); context.ConnectionId = "connection-id"; context.BucketName = "default"; context.LocalEndpoint = "192.168.1.1:16212"; context.RemoteEndpoint = "cb-1.domain.com"; context.ServerDuration = random.Next(10, 100); reporter.Add(context); await Task.Delay(10); } await Task.Delay(10000); reporter.Dispose(); }
public void OrphanedResponseLogger_has_correct_default_values() { var reporter = new OrphanedResponseLogger(); Assert.AreEqual(10000, reporter.Interval); Assert.AreEqual(10, reporter.SampleSize); }
public void OrphanedResponseLogger_can_override_defaults() { const int interval = 5000; const int sampleSize = 20; var reporter = new OrphanedResponseLogger { Interval = interval, SampleSize = sampleSize }; Assert.AreEqual(interval, reporter.Interval); Assert.AreEqual(sampleSize, reporter.SampleSize); }
public async Task Can_add_lots_of_operation_contexts_concurrently() { var tracer = new OrphanedResponseLogger(); var tasks = Enumerable.Range(1, 1000).Select(x => { tracer.Add(new OperationContext(CouchbaseTags.ServiceKv)); return(Task.FromResult(true)); }); // schedule all the tasks using threadpool await Task.WhenAll(tasks); // wait for queue to flush await Task.Delay(1000); // check all items made it into sample Assert.AreEqual(1000, tracer.TotalCount); }