public SendToMsmqTraceListenerBuilder(ILoggingConfigurationSendTo context, string listenerName) :base(context) { msmqTraceListener = new MsmqTraceListenerData { Name = listenerName }; base.AddTraceListenerToSettingsAndCategory(msmqTraceListener); }
public void CanCreateInstanceFromGivenConfiguration() { TraceListenerData listenerData = new MsmqTraceListenerData("listener", CommonUtil.MessageQueuePath, formatterName); MockLogObjectsHelper helper = new MockLogObjectsHelper(); helper.loggingSettings.Formatters.Add(new BinaryLogFormatterData(formatterName)); TraceListener listener = TraceListenerCustomFactory.Instance.Create(context, listenerData, helper.configurationSource,reflectionCache); Assert.IsNotNull(listener); Assert.AreEqual(listener.GetType(), typeof(MsmqTraceListener)); MsmqTraceListener msmqTraceListener = listener as MsmqTraceListener; Assert.AreEqual("listener", listener.Name); Assert.IsNotNull(msmqTraceListener.Formatter); Assert.AreEqual(msmqTraceListener.Formatter.GetType(), typeof(BinaryLogFormatter)); Assert.AreEqual(CommonUtil.MessageQueuePath, msmqTraceListener.QueuePath); }
public void ListenerDataIsCreatedCorrectlyWithDefaults() { MsmqTraceListenerData listenerData = new MsmqTraceListenerData("listener", CommonUtil.MessageQueuePath, formatterName); Assert.AreSame(typeof(MsmqTraceListener), listenerData.Type); Assert.AreSame(typeof(MsmqTraceListenerData), listenerData.ListenerDataType); Assert.AreEqual("listener", listenerData.Name); Assert.AreEqual(formatterName, listenerData.Formatter); Assert.AreEqual(CommonUtil.MessageQueuePath, listenerData.QueuePath); Assert.AreEqual(MsmqTraceListenerData.DefaultRecoverable, listenerData.Recoverable); Assert.AreEqual(MsmqTraceListenerData.DefaultUseAuthentication, listenerData.UseAuthentication); Assert.AreEqual(MsmqTraceListenerData.DefaultUseDeadLetter, listenerData.UseDeadLetterQueue); Assert.AreEqual(MsmqTraceListenerData.DefaultUseEncryption, listenerData.UseEncryption); Assert.AreEqual(MsmqTraceListenerData.DefaultPriority, listenerData.MessagePriority); Assert.AreEqual(MsmqTraceListenerData.DefaultTimeToBeReceived, listenerData.TimeToBeReceived); Assert.AreEqual(MsmqTraceListenerData.DefaultTimeToBeReceived, listenerData.TimeToBeReceived); Assert.AreEqual(MsmqTraceListenerData.DefaultTransactionType, listenerData.TransactionType); Assert.AreEqual(TraceOptions.None, listenerData.TraceOutputOptions); }
/// <summary> /// This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code. /// Builds a <see cref="MsmqTraceListener"/> based on an instance of <see cref="MsmqTraceListenerData"/>. /// </summary> /// <seealso cref="TraceListenerCustomFactory"/> /// <param name="context">The <see cref="IBuilderContext"/> that represents the current building process.</param> /// <param name="objectConfiguration">The configuration object that describes the object to build. Must be an instance of <see cref="MsmqTraceListenerData"/>.</param> /// <param name="configurationSource">The source for configuration objects.</param> /// <param name="reflectionCache">The cache to use retrieving reflection information.</param> /// <returns>A fully initialized instance of <see cref="MsmqTraceListener"/>.</returns> public override TraceListener Assemble(IBuilderContext context, TraceListenerData objectConfiguration, IConfigurationSource configurationSource, ConfigurationReflectionCache reflectionCache) { MsmqTraceListenerData castedObjectConfiguration = (MsmqTraceListenerData)objectConfiguration; ILogFormatter formatter = GetFormatter(context, castedObjectConfiguration.Formatter, configurationSource, reflectionCache); TraceListener createdObject = new MsmqTraceListener( castedObjectConfiguration.Name, castedObjectConfiguration.QueuePath, formatter, castedObjectConfiguration.MessagePriority, castedObjectConfiguration.Recoverable, castedObjectConfiguration.TimeToReachQueue, castedObjectConfiguration.TimeToBeReceived, castedObjectConfiguration.UseAuthentication, castedObjectConfiguration.UseDeadLetterQueue, castedObjectConfiguration.UseEncryption, castedObjectConfiguration.TransactionType); return(createdObject); }
public void CanDeserializeSerializedConfiguration() { string name = "name"; bool recoverable = true; bool authentication = false; bool deadLetter = true; bool encryption = false; MessageQueueTransactionType transactionType = MessageQueueTransactionType.Automatic; TraceListenerData data = new MsmqTraceListenerData(name, CommonUtil.MessageQueuePath, formatterName, priority, recoverable, timeSpan, timeSpan, authentication, deadLetter, encryption, transactionType, TraceOptions.Callstack, SourceLevels.Critical); LoggingSettings settings = new LoggingSettings(); settings.TraceListeners.Add(data); IDictionary<string, ConfigurationSection> sections = new Dictionary<string, ConfigurationSection>(); sections[LoggingSettings.SectionName] = settings; IConfigurationSource configurationSource = ConfigurationTestHelper.SaveSectionsInFileAndReturnConfigurationSource(sections); LoggingSettings roSettigs = (LoggingSettings)configurationSource.GetSection(LoggingSettings.SectionName); Assert.AreEqual(1, roSettigs.TraceListeners.Count); Assert.IsNotNull(roSettigs.TraceListeners.Get(name)); Assert.AreEqual(TraceOptions.Callstack, roSettigs.TraceListeners.Get(name).TraceOutputOptions); Assert.AreEqual(SourceLevels.Critical, roSettigs.TraceListeners.Get(name).Filter); Assert.AreSame(typeof(MsmqTraceListenerData), roSettigs.TraceListeners.Get(name).GetType()); Assert.AreSame(typeof(MsmqTraceListenerData), roSettigs.TraceListeners.Get(name).ListenerDataType); Assert.AreSame(typeof(MsmqTraceListener), roSettigs.TraceListeners.Get(name).Type); Assert.AreEqual(formatterName, ((MsmqTraceListenerData)roSettigs.TraceListeners.Get(name)).Formatter); Assert.AreEqual(CommonUtil.MessageQueuePath, ((MsmqTraceListenerData)roSettigs.TraceListeners.Get(name)).QueuePath); Assert.AreEqual(recoverable, ((MsmqTraceListenerData)roSettigs.TraceListeners.Get(name)).Recoverable); Assert.AreEqual(authentication, ((MsmqTraceListenerData)roSettigs.TraceListeners.Get(name)).UseAuthentication); Assert.AreEqual(deadLetter, ((MsmqTraceListenerData)roSettigs.TraceListeners.Get(name)).UseDeadLetterQueue); Assert.AreEqual(encryption, ((MsmqTraceListenerData)roSettigs.TraceListeners.Get(name)).UseEncryption); Assert.AreEqual(priority, ((MsmqTraceListenerData)roSettigs.TraceListeners.Get(name)).MessagePriority); Assert.AreEqual(timeSpan, ((MsmqTraceListenerData)roSettigs.TraceListeners.Get(name)).TimeToBeReceived); Assert.AreEqual(timeSpan, ((MsmqTraceListenerData)roSettigs.TraceListeners.Get(name)).TimeToBeReceived); Assert.AreEqual(transactionType, ((MsmqTraceListenerData)roSettigs.TraceListeners.Get(name)).TransactionType); }
public void CanDeserializeSerializedConfigurationWithOnlyRequiredProperties() { LoggingSettings rwLoggingSettings = new LoggingSettings(); MsmqTraceListenerData data = new MsmqTraceListenerData(); data.Name = "listener"; data.QueuePath = CommonUtil.MessageQueuePath; data.Formatter = formatterName; data.Type = typeof(MsmqTraceListener); data.ListenerDataType = typeof(MsmqTraceListenerData); rwLoggingSettings.TraceListeners.Add(data); IDictionary<string, ConfigurationSection> sections = new Dictionary<string, ConfigurationSection>(); sections[LoggingSettings.SectionName] = rwLoggingSettings; IConfigurationSource configurationSource = ConfigurationTestHelper.SaveSectionsInFileAndReturnConfigurationSource(sections); LoggingSettings roLoggingSettings = (LoggingSettings)configurationSource.GetSection(LoggingSettings.SectionName); Assert.AreEqual(1, roLoggingSettings.TraceListeners.Count); Assert.IsNotNull(roLoggingSettings.TraceListeners.Get("listener")); Assert.AreEqual(roLoggingSettings.TraceListeners.Get("listener").GetType(), typeof(MsmqTraceListenerData)); MsmqTraceListenerData listenerData = roLoggingSettings.TraceListeners.Get("listener") as MsmqTraceListenerData; Assert.AreEqual("listener", listenerData.Name); Assert.AreEqual(formatterName, listenerData.Formatter); Assert.AreEqual(CommonUtil.MessageQueuePath, listenerData.QueuePath); Assert.AreEqual(MsmqTraceListenerData.DefaultRecoverable, listenerData.Recoverable); Assert.AreEqual(MsmqTraceListenerData.DefaultUseAuthentication, listenerData.UseAuthentication); Assert.AreEqual(MsmqTraceListenerData.DefaultUseDeadLetter, listenerData.UseDeadLetterQueue); Assert.AreEqual(MsmqTraceListenerData.DefaultUseEncryption, listenerData.UseEncryption); Assert.AreEqual(MsmqTraceListenerData.DefaultPriority, listenerData.MessagePriority); Assert.AreEqual(MsmqTraceListenerData.DefaultTimeToBeReceived, listenerData.TimeToBeReceived); Assert.AreEqual(MsmqTraceListenerData.DefaultTimeToBeReceived, listenerData.TimeToBeReceived); Assert.AreEqual(TraceOptions.None, listenerData.TraceOutputOptions); }
public void CanCreatePoliciesForMsmqTraceListenerWithFormatter() { MsmqTraceListenerData listenerData = new MsmqTraceListenerData("listener", CommonUtil.MessageQueuePath, "binary"); listenerData.TraceOutputOptions = TraceOptions.Callstack | TraceOptions.ProcessId; listenerData.Filter = SourceLevels.Error; loggingSettings.TraceListeners.Add(listenerData); loggingSettings.Formatters.Add(new BinaryLogFormatterData("binary")); using (var container = CreateContainer()) { MsmqTraceListener createdObject = (MsmqTraceListener)container.Resolve<TraceListener>("listener\u200cimplementation"); Assert.IsNotNull(createdObject); Assert.AreEqual(listenerData.TraceOutputOptions, createdObject.TraceOutputOptions); Assert.IsNotNull(createdObject.Filter); Assert.IsInstanceOfType(createdObject.Filter, typeof(EventTypeFilter)); Assert.AreEqual(listenerData.Filter, ((EventTypeFilter)createdObject.Filter).EventType); Assert.IsNotNull(createdObject.Formatter); Assert.IsInstanceOfType(createdObject.Formatter, typeof(BinaryLogFormatter)); Assert.AreEqual(CommonUtil.MessageQueuePath, createdObject.QueuePath); } // there's currently no way to test for other properties }
public void CanCreateInstanceFromGivenName() { TraceListenerData listenerData = new MsmqTraceListenerData("listener", CommonUtil.MessageQueuePath, formatterName); MockLogObjectsHelper helper = new MockLogObjectsHelper(); helper.loggingSettings.TraceListeners.Add(listenerData); helper.loggingSettings.Formatters.Add(new BinaryLogFormatterData(formatterName)); TraceListener listener = GetListener("listener\u200cimplementation", helper.configurationSource); Assert.IsNotNull(listener); Assert.AreEqual(listener.GetType(), typeof(MsmqTraceListener)); MsmqTraceListener msmqTraceListener = listener as MsmqTraceListener; Assert.AreEqual("listener\u200cimplementation", listener.Name); Assert.IsNotNull(msmqTraceListener.Formatter); Assert.AreEqual(msmqTraceListener.Formatter.GetType(), typeof(BinaryLogFormatter)); Assert.AreEqual(CommonUtil.MessageQueuePath, msmqTraceListener.QueuePath); }