public void IntegrationTest() { // Arrange var receiveEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), Port); var manualResetEvent = new ManualResetEvent(false); var gelfMessageToSend = new GelfMessage { Host = Environment.MachineName, FullMessage = "Full message", ShortMessage = "Short message", }; gelfMessageToSend["correlationId"] = Guid.NewGuid().ToString(); string receivedMessage = null; bool wasMessageReceived; using (var udp = new UdpClient(Port, AddressFamily.InterNetworkV6)) { var localUdpClient = udp; // Avoid Resharper access to Disposed closure warning localUdpClient.BeginReceive(ar => { var receiveBytes = localUdpClient.EndReceive(ar, ref receiveEndPoint); receivedMessage = TestUtils.DecompressGzipMessage(receiveBytes, Constants.Encoding); manualResetEvent.Set(); }, null); // Act gelfPublisher.Publish(gelfMessageToSend); wasMessageReceived = manualResetEvent.WaitOne(TimeSpan.FromSeconds(2)); } // Assert Assert.That(wasMessageReceived, Is.True, "Message not received in time"); dynamic receivedObject = JObject.Parse(receivedMessage); Assert.That(receivedObject.correlationId.ToString(), Is.EqualTo(gelfMessageToSend["correlationId"])); Assert.That(receivedObject.host.ToString(), Is.EqualTo(gelfMessageToSend.Host)); Assert.That(receivedObject.full_message.ToString(), Is.EqualTo(gelfMessageToSend.FullMessage)); Assert.That(receivedObject.short_message.ToString(), Is.EqualTo(gelfMessageToSend.ShortMessage)); }
private void SendMessage(string gelfServer, int serverPort, GelfMessage message) { var publisher = new GelfPublisher(gelfServer, serverPort); publisher.Publish(message); }