public void Test_DatabaseAuditor_HeaderAuditMessageBuilder() { string configPath = GetSettingsPath("TestSmtpAgentAuditConfig.xml"); SmtpAgentSettings settings = SmtpAgentSettings.LoadSettings(configPath); SimpleComponentSettings[] components = new SimpleComponentSettings[1]; SimpleComponentSettings localAuditComponent = new SimpleComponentSettings(); localAuditComponent.Scope = InstanceScope.Singleton; localAuditComponent.Service = "Health.Direct.SmtpAgent.Diagnostics.IAuditor`1[[Health.Direct.SmtpAgent.Diagnostics.IBuildAuditLogMessage, Health.Direct.SmtpAgent]], Health.Direct.SmtpAgent"; localAuditComponent.Type = "Health.Direct.DatabaseAuditor.Auditor`1[[Health.Direct.DatabaseAuditor.HeaderAuditMessageBuilder, Health.Direct.DatabaseAuditor]], Health.Direct.DatabaseAuditor"; components[0] = localAuditComponent; settings.Container.Components = components; m_agent = SmtpAgentFactory.Create(settings); Assert.True(IoC.Resolve <IAuditor <IBuildAuditLogMessage> >() is DatabaseAuditor.Auditor <HeaderAuditMessageBuilder>); Assert.Equal(0, AuditEventCount); m_agent.Settings.InternalMessage.EnableRelay = true; Assert.Null(Record.Exception(() => RunEndToEndTest(this.LoadMessage(string.Format(TestMessage, Guid.NewGuid()))))); Assert.Null(Record.Exception(() => RunEndToEndTest(this.LoadMessage(CrossDomainMessage)))); m_agent.Settings.InternalMessage.EnableRelay = false; Assert.Equal(4, AuditEventCount); using (var db = new AuditContext().CreateContext(m_settings)) { foreach (AuditEvent auditEvent in db.AuditEvents) { Console.WriteLine(auditEvent.Message); } } }
public void TestEndToEndInternalMessage_WithMultipleAuditors() { string configPath = GetSettingsPath("TestSmtpAgentAuditConfig.xml"); SmtpAgentSettings settings = SmtpAgentSettings.LoadSettings(configPath); SimpleComponentSettings[] components = new SimpleComponentSettings[2]; // // Retain configured // components[0] = settings.Container.Components[0]; // // Add a second auditor // SimpleComponentSettings localAuditComponent = new SimpleComponentSettings(); localAuditComponent.Scope = InstanceScope.Singleton; localAuditComponent.Service = "Health.Direct.SmtpAgent.Diagnostics.IAuditor`1[[Health.Direct.SmtpAgent.Diagnostics.IBuildAuditLogMessage, Health.Direct.SmtpAgent]], Health.Direct.SmtpAgent"; localAuditComponent.Type = "Health.Direct.SmtpAgent.Tests.LocalTestAuditor`1[[Health.Direct.SmtpAgent.Tests.LocalBuildAuditLogMessage, Health.Direct.SmtpAgent.Tests]], Health.Direct.SmtpAgent.Tests"; components[1] = localAuditComponent; settings.Container.Components = components; m_agent = SmtpAgentFactory.Create(settings); Assert.True(IoC.Resolve <IAuditor <IBuildAuditLogMessage> >() != null); Assert.Equal(0, AuditEventCount); m_agent.Settings.InternalMessage.EnableRelay = true; Assert.Null(Record.Exception(() => RunEndToEndTest(this.LoadMessage(string.Format(TestMessage, Guid.NewGuid()))))); Assert.Null(Record.Exception(() => RunEndToEndTest(this.LoadMessage(CrossDomainMessage)))); m_agent.Settings.InternalMessage.EnableRelay = false; Assert.Equal(8, AuditEventCount); }
public void Test_LocalAuditorSettings() { string configPath = GetSettingsPath("TestSmtpAgentAuditConfig.xml"); SmtpAgentSettings settings = SmtpAgentSettings.LoadSettings(configPath); SimpleComponentSettings[] components = new SimpleComponentSettings[1]; SimpleComponentSettings localAuditComponent = new SimpleComponentSettings(); localAuditComponent.Scope = InstanceScope.Singleton; localAuditComponent.Service = "Health.Direct.SmtpAgent.Diagnostics.IAuditor`1[[Health.Direct.SmtpAgent.Diagnostics.IBuildAuditLogMessage, Health.Direct.SmtpAgent]], Health.Direct.SmtpAgent"; localAuditComponent.Type = "Health.Direct.SmtpAgent.Tests.LocalTestAuditor`1[[Health.Direct.SmtpAgent.Tests.LocalBuildAuditLogMessage, Health.Direct.SmtpAgent.Tests]], Health.Direct.SmtpAgent.Tests"; components[0] = localAuditComponent; settings.Container.Components = components; m_agent = SmtpAgentFactory.Create(settings); Assert.True(IoC.Resolve <IAuditor <IBuildAuditLogMessage> >() is LocalTestAuditor <LocalBuildAuditLogMessage>); Assert.Equal(0, AuditEventCount); m_agent.Settings.InternalMessage.EnableRelay = true; Assert.DoesNotThrow(() => RunEndToEndTest(this.LoadMessage(string.Format(TestMessage, Guid.NewGuid())))); Assert.DoesNotThrow(() => RunEndToEndTest(this.LoadMessage(CrossDomainMessage))); m_agent.Settings.InternalMessage.EnableRelay = false; Assert.Equal(4, AuditEventCount); }
public void TestMissing_DatabaseAuditorSettings() { string configPath = GetSettingsPath("TestSmtpAgentAuditConfig.xml"); SmtpAgentSettings settings = SmtpAgentSettings.LoadSettings(configPath); SimpleComponentSettings[] components = new SimpleComponentSettings[1]; Mock <SimpleComponentSettings> auditComponentMock = new Mock <SimpleComponentSettings>() { CallBase = true }; auditComponentMock.SetupAllProperties(); components[0] = auditComponentMock.Object; components[0].Scope = InstanceScope.Singleton; components[0].Service = "Health.Direct.SmtpAgent.Diagnostics.IAuditor`1[[Health.Direct.SmtpAgent.Diagnostics.IBuildAuditLogMessage, Health.Direct.SmtpAgent]], Health.Direct.SmtpAgent"; components[0].Type = "Health.Direct.SmtpAgent.Tests.LocalTestAuditorSettingsMissing`1[[Health.Direct.SmtpAgent.Tests.LocalBuildAuditLogMessage, Health.Direct.SmtpAgent.Tests]], Health.Direct.SmtpAgent.Tests"; settings.Container.Components = components; m_agent = SmtpAgentFactory.Create(settings); // // Not really asserting the exception. It would take some architecture changes to get the IoC in a more testable state. // auditComponentMock.Verify(c => c.CreateInstance(), Times.Once); Assert.Equal(0, AuditEventCount); m_agent.Settings.InternalMessage.EnableRelay = true; // // Failes to find connection string info in DatabaseAuditorSettings.xml file so loads default EventLogAuditor // Assert.True(IoC.Resolve <IAuditor <IBuildAuditLogMessage> >() is SmtpAgentEventLogAuditor); Assert.DoesNotThrow(() => RunEndToEndTest(this.LoadMessage(string.Format(TestMessage, Guid.NewGuid())))); m_agent.Settings.InternalMessage.EnableRelay = false; Assert.Equal(0, AuditEventCount); }