public void CanDeserializeFormattedCustomEntry()
        {
            var entry = new CustomLogEntry();

            entry.TimeStamp    = DateTime.MaxValue;
            entry.Title        = "My custom message title";
            entry.Message      = "My custom message body";
            entry.Categories   = new List <string>(new string[] { "CustomFormattedCategory", "OtherCategory" });
            entry.AcmeCoField1 = "apple";
            entry.AcmeCoField2 = "orange";
            entry.AcmeCoField3 = "lemon";

            string serializedLogEntryText = new JsonLogFormatter().Format(entry);
            var    deserializedEntry      = JsonLogFormatter.Deserialize <CustomLogEntry>(serializedLogEntryText);

            Assert.IsNotNull(deserializedEntry);
            Assert.IsFalse(ReferenceEquals(entry, deserializedEntry));
            Assert.AreEqual(entry.Categories.Count, deserializedEntry.Categories.Count);
            foreach (string category in entry.Categories)
            {
                Assert.IsTrue(deserializedEntry.Categories.Contains(category));
            }
            Assert.AreEqual(entry.Message, deserializedEntry.Message);
            Assert.AreEqual(entry.Title, deserializedEntry.Title);
            Assert.AreEqual(entry.AcmeCoField1, deserializedEntry.AcmeCoField1);
            Assert.AreEqual(entry.AcmeCoField2, deserializedEntry.AcmeCoField2);
            Assert.AreEqual(entry.AcmeCoField3, deserializedEntry.AcmeCoField3);
        }
        public static LogEntry GetLogEntryFromEmail()
        {
            string jsonText = GetEmailBody();

            LogEntry logEntry = JsonLogFormatter.Deserialize <LogEntry>(jsonText);

            return(logEntry);
        }
        public void MessageIsDeserializedWhenUsingJsonFormatterWithMsmqTraceListener()
        {
            MsmqTraceListener listener =
                new MsmqTraceListener("unnamed", MsmqUtil.MessageQueuePath, new JsonLogFormatter(), MessagePriority.Low, true,
                                      MsmqTraceListenerData.DefaultTimeToBeReceived, MsmqTraceListenerData.DefaultTimeToReachQueue,
                                      false, false, false, MessageQueueTransactionType.None);
            LogEntry entry = MsmqUtil.GetDefaultLogEntry();

            Message message = listener.CreateMessage(entry);

            Assert.IsNotNull(message);
            Assert.IsNotNull(message.Body);
            Assert.AreEqual(message.Body.GetType(), typeof(string));

            LogEntry deserializedEntry = JsonLogFormatter.Deserialize <LogEntry>(message.Body as string);

            Assert.IsNotNull(deserializedEntry);
            Assert.AreEqual(entry.Message, deserializedEntry.Message);
        }
        public void CanDeserializeFormattedEntry()
        {
            LogEntry entry = CommonUtil.GetDefaultLogEntry();

            entry.Message    = "message";
            entry.Title      = "title";
            entry.Categories = new List <string>(new string[] { "cat1", "cat2", "cat3" });

            string   serializedLogEntryText = new JsonLogFormatter(JsonFormatting.Indented).Format(entry);
            LogEntry deserializedEntry      = JsonLogFormatter.Deserialize <LogEntry>(serializedLogEntryText);

            Assert.IsNotNull(deserializedEntry);
            Assert.IsFalse(ReferenceEquals(entry, deserializedEntry));
            Assert.AreEqual(entry.Categories.Count, deserializedEntry.Categories.Count);
            foreach (string category in entry.Categories)
            {
                Assert.IsTrue(deserializedEntry.Categories.Contains(category));
            }
            Assert.AreEqual(entry.Message, deserializedEntry.Message);
            Assert.AreEqual(entry.Title, deserializedEntry.Title);
        }
        private void DeserializeLogEntry(JsonLogFormatter jsonFormatter)
        {
            LogEntry entry = this.GetDefaultLogEntry();

            entry.Message    = "message";
            entry.Title      = "title";
            entry.Categories = new List <string>(new string[] { "cat1", "cat2", "cat3" });

            string   serializedLogEntryText = jsonFormatter.Format(entry);
            LogEntry deserializedEntry      = JsonLogFormatter.Deserialize <LogEntry>(serializedLogEntryText);

            Assert.IsNotNull(deserializedEntry);
            Assert.IsFalse(Object.ReferenceEquals(entry, deserializedEntry));
            Assert.AreEqual(entry.Categories.Count, deserializedEntry.Categories.Count);
            foreach (string category in entry.Categories)
            {
                Assert.IsTrue(deserializedEntry.Categories.Contains(category));
            }
            Assert.AreEqual(entry.Message, deserializedEntry.Message);
            Assert.AreEqual(entry.Title, deserializedEntry.Title);
        }