public void Initialization() { DistributorServiceTestFacade distributor = new DistributorServiceTestFacade(); distributor.InitializeComponent(); Assert.IsNotNull(distributor); Assert.AreEqual(ServiceStatus.OK, distributor.Status); using (var configurationSource = new SystemConfigurationSource(false)) { MsmqDistributorSettings settings = MsmqDistributorSettings.GetSettings(configurationSource); Assert.AreEqual(settings.ServiceName, distributor.ApplicationName); // force log entry distributor.EventLogger .LogServiceFailure( string.Empty, new Exception("simulated exception - forced event logger flush"), TraceEventType.Error); Assert.IsTrue(CommonUtil.LogEntryExists(Resources.InitializeComponentStarted), "init begin"); Assert.IsTrue(CommonUtil.LogEntryExists(Resources.InitializeComponentCompleted), "init end"); } }
public void CanReadSettingsFromConfigurationFile() { MsmqDistributorSettings settings = MsmqDistributorSettings.GetSettings(new SystemConfigurationSource()); Assert.IsNotNull(settings); Assert.AreEqual(CommonUtil.MessageQueuePath, settings.MsmqPath); Assert.AreEqual(1000, settings.QueueTimerInterval); Assert.AreEqual("Msmq Distributor", settings.ServiceName); }
/// <summary/> /// <exclude/> /// <devdoc> /// Initialization of the service. Start the queue listener and write status to event log. /// </devdoc> public void InitializeComponent() { try { // Use the default settings for log name and application name. // This is done to ensure the Windows service starts correctly. this.ApplicationName = DefaultApplicationName; this.eventLogger = new DistributorEventLogger(); this.eventLogger.AddMessage(Resources.InitializeComponentStartedMessage, Resources.InitializeComponentStarted); this.status = ServiceStatus.OK; IConfigurationSource configurationSource = GetConfigurationSource(); MsmqDistributorSettings distributorSettings = MsmqDistributorSettings.GetSettings(configurationSource); if (distributorSettings == null) { throw new ConfigurationErrorsException(string.Format( CultureInfo.CurrentCulture, Resources.ExceptionCouldNotFindConfigurationSection, MsmqDistributorSettings.SectionName)); } this.queueListener = CreateListener(this, distributorSettings.QueueTimerInterval, distributorSettings.MsmqPath); this.ApplicationName = this.ServiceName; this.ApplicationName = distributorSettings.ServiceName; this.eventLogger.AddMessage(NameTag, this.ApplicationName); this.eventLogger.EventSource = this.ApplicationName; this.eventLogger.AddMessage(Resources.InitializeComponentCompletedMessage, Resources.InitializeComponentCompleted); } catch (LoggingException loggingException) { this.eventLogger.LogServiceFailure( string.Format(CultureInfo.CurrentCulture, Resources.ServiceStartError, this.ApplicationName), loggingException, TraceEventType.Error); throw; } catch (Exception ex) { this.eventLogger.LogServiceFailure( string.Format(CultureInfo.CurrentCulture, Resources.ServiceStartError, this.ApplicationName), ex, TraceEventType.Error); throw new LoggingException(Resources.ErrorInitializingService, ex); } }