void Create() { { var m = new ActivityMonitor(); } { var m = new ActivityMonitor( applyAutoConfigurations: false ); } { IActivityMonitor m = new ActivityMonitor(); var counter = new ActivityMonitorErrorCounter(); m.Output.RegisterClient( counter ); m.Fatal().Send( "An horrible error occurred." ); Assert.That( counter.Current.FatalCount == 1 ); m.Output.UnregisterClient( counter ); } { IActivityMonitor m = new ActivityMonitor(); int errorCount = 0; using( m.OnError( () => ++errorCount ) ) { m.Fatal().Send( "An horrible error occurred." ); } Assert.That( errorCount == 1 ); } { IActivityMonitor m = new ActivityMonitor(); m.MinimalFilter = LogFilter.Off; // ... m.MinimalFilter = LogFilter.Debug; } { IActivityMonitor m = new ActivityMonitor(); m.MinimalFilter = LogFilter.Terse; using( m.SetMinimalFilter( LogFilter.Debug ) ) { Assert.That( m.ActualFilter == LogFilter.Debug ); } Assert.That( m.ActualFilter == LogFilter.Terse, "Filter has been restored to previous value." ); } { IActivityMonitor m = new ActivityMonitor(); m.MinimalFilter = LogFilter.Off; // ... using( m.OpenWarn().Send( "Ouch..." ) ) { Assert.That( m.ActualFilter == LogFilter.Off ); m.MinimalFilter = LogFilter.Debug; // ... in debug filter ... } Assert.That( m.ActualFilter == LogFilter.Off, "Back to Off." ); var strange = new LogFilter( LogLevelFilter.Fatal, LogLevelFilter.Trace ); } }
public void CKMonWriterClientTest() { TestHelper.CleanupTestFolder(); using( TextWriter w = new StringWriter() ) { var m = new ActivityMonitor(); m.Output.RegisterClient( new ActivityMonitorTextWriterClient( s => w.Write( s ) ) ); m.Output.RegisterClient( new ActivityMonitorErrorCounter( true ) ); using( m.OpenWarn().Send( "First" ) ) { m.Info().Send( "Inner first test" ); } w.Flush(); Assert.That( w.ToString(), Is.Not.Empty ); Assert.That( w.ToString(), Is.StringContaining( "First" ) ); Assert.That( w.ToString(), Is.StringContaining( "Inner first test" ) ); Assert.That( w.ToString(), Is.Not.StringContaining( "Second" ) ); Assert.That( w.ToString(), Is.Not.StringContaining( "Inner second test" ) ); m.Output.RegisterClient( new CKMonWriterClient( Path.Combine( TestHelper.TestFolder, "CKMonWriterClientTest" ), 20000, LogFilter.Undefined ) ); using( m.OpenWarn().Send( "Second" ) ) { m.Info().Send( "Inner second test" ); } w.Flush(); Assert.That( w.ToString(), Is.Not.Empty ); Assert.That( w.ToString(), Is.StringContaining( "First" ) ); Assert.That( w.ToString(), Is.StringContaining( "Inner first test" ) ); Assert.That( w.ToString(), Is.StringContaining( "Second" ) ); Assert.That( w.ToString(), Is.StringContaining( "Inner second test" ) ); } }
public void CompressedReadWriteTests() { TestHelper.CleanupTestFolder(); string directoryPath = Path.Combine( TestHelper.TestFolder, "GzipCKMonWriterClientTest" ); ActivityMonitor m = new ActivityMonitor(); var client = new CKMonWriterClient( directoryPath, 20000, LogFilter.Undefined, true ); m.Output.RegisterClient( client ); using( m.OpenWarn().Send( "Group test" ) ) { m.Info().Send( "Line test" ); } // This closes the client: the file is then compressed asynchronously // on a thread from the ThreadPool. Assert.That( client.IsOpened ); m.Output.UnregisterClient( client ); string ckmonPath = TestHelper.WaitForCkmonFilesInDirectory( directoryPath, 1 )[0]; LogReader r = LogReader.Open( ckmonPath ); r.MoveNext(); Assert.That( r.Current.LogType, Is.EqualTo( LogEntryType.OpenGroup ) ); Assert.That( r.Current.Text, Is.EqualTo( "Group test" ) ); r.MoveNext(); Assert.That( r.Current.LogType, Is.EqualTo( LogEntryType.Line ) ); Assert.That( r.Current.Text, Is.EqualTo( "Line test" ) ); r.MoveNext(); Assert.That( r.Current.LogType, Is.EqualTo( LogEntryType.CloseGroup ) ); bool hasRemainingEntries = r.MoveNext(); Assert.That( hasRemainingEntries, Is.False ); }