private static void CheckReconnection( Func <StatsdConfig, AbstractServer> serverFactory, StatsdConfig config) { AbstractServer server = null; try { server = serverFactory(config); using (var service = new DogStatsdService()) { service.Configure(config); service.Increment("test1"); Assert.AreEqual("test1:1|c", server.Stop().Single()); server.Dispose(); // Send a metric when the server is not running. service.Increment("test2"); Task.Delay(TimeSpan.FromMilliseconds(500)).Wait(); // Restart the server server = serverFactory(config); service.Increment("test3"); service.Dispose(); Assert.AreEqual("test3:1|c", server.Stop().Last()); } } finally { server?.Dispose(); } }
private static void SendAndCheckMetricsAreReceived(AbstractServer server, StatsdConfig config, int metricToSendCount) { using (server) { using (var service = new DogStatsdService()) { service.Configure(config); for (int i = 0; i < metricToSendCount; ++i) { service.Increment($"test{i}", tags: new[] { "KEY:VALUE" }); } service.Dispose(); var metricsReceived = server.Stop(); Assert.AreEqual(metricToSendCount, metricsReceived.Count); for (int i = 0; i < metricToSendCount; ++i) { Assert.AreEqual($"test{i}:1|c|#KEY:VALUE", metricsReceived[i]); } } } }