public static void InterceptEvent() { var transformer = new Mock <IEventTransformer>(); transformer.Setup(x => x.Transform(It.IsAny <IEvent>())) .Returns <IEvent>(e => new LogEntry(null, e.EventData["message"].ToString()) { Data = new Dictionary <string, object> { { "os", e.EventSource.Metadata["env.os"] } } }); var entries = new List <LogEntry>(); var logger = new Mock <ILogger>(); logger.Setup(x => x.IsInterestedIn(It.IsAny <LogLevel>())) .Returns(true); logger.Setup(x => x.LogAsync(It.IsAny <LogEntry>())) .Returns <LogEntry>(entry => { entries.Add(entry); return(Task.CompletedTask); }); var registry = new InMemoryEventRegistry(); var system = new Mock <IDatabaseSystem>(); system.As <IEventHandler>() .SetupGet(x => x.Registry) .Returns(registry); SystemEventLogger.Attach(system.Object, logger.Object, transformer.Object); var @event = new Event(EventSource.Environment) { Data = new Dictionary <string, object> { { "message", "test message" } } }; system.Object.RaiseEvent(@event); registry.Dispose(); Assert.Single(entries); Assert.Equal(LogLevel.Information, entries[0].Level); Assert.Equal(@event.Data["message"], entries[0].Message); Assert.True(entries[0].Data.ContainsKey("os")); }
public void Dispose() { foreach (var database in databases.Values) { database?.Dispose(); } databases.Clear(); scope.Dispose(); if (ownsContainer) { container?.Dispose(); } eventRegistry?.Dispose(); started = false; }