public void MsmqLogWriter_Write_WritesEnumerableBatchToQueue() { if (System.Messaging.MessageQueue.Exists(_TestQueuePath)) { System.Messaging.MessageQueue.Delete(_TestQueuePath); } if (!System.Messaging.MessageQueue.Exists(_TestQueuePath)) { System.Messaging.MessageQueue.Create(_TestQueuePath, false); } using (var writeQueue = new System.Messaging.MessageQueue(_TestQueuePath, false, true, System.Messaging.QueueAccessMode.Send)) { writeQueue.Formatter = new MsmqJsonLogEventMessageFormatter(); var writer = new MsmqLogWriter(writeQueue); using (var readQueue = new System.Messaging.MessageQueue(_TestQueuePath, false, true, System.Messaging.QueueAccessMode.SendAndReceive)) { readQueue.Formatter = new MsmqJsonLogEventMessageFormatter(); var logEvents = new List <LogEvent>(2); logEvents.Add(new LogEvent() { EventName = "Test Event", Source = "Test Source" }); logEvents.Add(new LogEvent() { EventName = "Test Event 2", Source = "Test Source" }); writer.WriteBatch(logEvents); var result = readQueue.Receive(TimeSpan.FromSeconds(5)); Assert.IsNotNull(result); var results = Newtonsoft.Json.JsonConvert.DeserializeObject <LogEvent[]>(result.Body.ToString()); Assert.AreEqual(2, results.Length); Assert.AreEqual("Test Event", results[0].EventName); Assert.AreEqual("Test Event 2", results[1].EventName); } } }