public void SendCustomLogEntryViaMsmq() { CustomLogEntry log = new CustomLogEntry(); log.TimeStamp = DateTime.MaxValue; log.Title = "My custom message title"; log.Message = "My custom message body"; log.Categories = new string[] { "CustomFormattedCategory" }; log.AcmeCoField1 = "apple"; log.AcmeCoField2 = "orange"; log.AcmeCoField3 = "lemon"; clientSource.TraceData(TraceEventType.Information, 1, log); msmqDistributor.CheckForMessages(); //string expected = "Timestamp: 12/31/9999 11:59:59 PM\r\nTitle: My custom message title\r\n\r\nAcme Field1: apple\r\nAcme Field2: orange\r\nAcme Field3: lemon\r\n\r\nMessage: My custom message body"; Assert.IsFalse(MockTraceListener.LastEntry == log); Assert.AreEqual(MockTraceListener.LastEntry.Message, log.Message); Assert.AreEqual(((CustomLogEntry)MockTraceListener.LastEntry).AcmeCoField1, log.AcmeCoField1); Assert.AreEqual(((CustomLogEntry)MockTraceListener.LastEntry).AcmeCoField2, log.AcmeCoField2); Assert.AreEqual(((CustomLogEntry)MockTraceListener.LastEntry).AcmeCoField3, log.AcmeCoField3); }
public void TimeStampTokenUtcTime() { CustomLogEntry entry = new CustomLogEntry(); entry.TimeStamp = DateTime.MaxValue; ILogFormatter formatter = new TextFormatter("TimeStamp: {timestamp}"); string actual = formatter.Format(entry); string expected = string.Concat("TimeStamp: " + DateTime.MaxValue.ToString()); Assert.AreEqual(expected, actual); }
public void TimeStampTokenLocalTimeWithFormat() { CustomLogEntry entry = new CustomLogEntry(); entry.TimeStamp = DateTime.MaxValue; ILogFormatter formatter = new TextFormatter("TimeStamp: {timestamp(local:F)}"); string actual = formatter.Format(entry); string expected = string.Concat("TimeStamp: " + DateTime.MaxValue.ToLocalTime().ToString("F", CultureInfo.CurrentCulture)); Assert.AreEqual(expected, actual); }
public void FormatReflectedPropertyTokenFunctionPropertyFoundAndNullValue() { CustomLogEntry entry = new CustomLogEntry(); ILogFormatter formatter = new TextFormatter("Reflected Property Value: {property(MyPropertyThatReturnsNull)}"); string actual = formatter.Format(entry); string expected = "Reflected Property Value: "; Assert.AreEqual(expected, actual); }
public void FormatCustomTokenFunction() { CustomLogEntry entry = new CustomLogEntry(); ILogFormatter formatter = new CustomTextFormatter("Acme custom token template: [[AcmeDBLookup{value1}]]"); string actual = formatter.Format(entry); string expected = "Acme custom token template: 1234"; Assert.AreEqual(expected, actual); }
public void DictionaryTokenCanHandleInternalParenthesisAsLongAsTheyAreNotFollowedByACurlyBracket() { TextFormatter formatter = new TextFormatter("{dictionary(({key})-{value} - )}"); CustomLogEntry entry = new CustomLogEntry(); Dictionary<string, object> hash = new Dictionary<string, object>(); hash["key1"] = "value1"; hash["key2"] = "value2"; entry.ExtendedProperties = hash; string actual = formatter.Format(entry); Assert.AreEqual("(key1)-value1 - (key2)-value2 - ", actual); }
public void FormatsPropertyToken() { TextFormatter formatter = new TextFormatter("Reflected Property Value: {property(MyProperty)}"); CustomLogEntry entry = new CustomLogEntry(); string actual = formatter.Format(entry); Assert.AreEqual("Reflected Property Value: myPropertyValue", actual); }
public void CanDeserializeFormattedCustomEntry() { CustomLogEntry 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 BinaryLogFormatter().Format(entry); CustomLogEntry deserializedEntry = (CustomLogEntry)BinaryLogFormatter.Deserialize(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); }