CK.Monitoring.Tests.TestHelper.CleanupFolder C# (CSharp) Method

CleanupFolder() public static method

public static CleanupFolder ( string folder ) : void
folder string
return void
        public static void CleanupFolder( string folder )
        {
            int tryCount = 0;
            for( ; ; )
            {
                try
                {
                    if( Directory.Exists( folder ) ) Directory.Delete( folder, true );
                    Directory.CreateDirectory( folder );
                    File.WriteAllText( Path.Combine( folder, "TestWrite.txt" ), "Test write works." );
                    File.Delete( Path.Combine( folder, "TestWrite.txt" ) );
                    return;
                }
                catch( Exception ex )
                {
                    if( ++tryCount == 20 ) throw;
                    ConsoleMonitor.Info().Send( ex, "While cleaning up test directory. Retrying." );
                    System.Threading.Thread.Sleep( 100 );
                }
            }
        }

Usage Example

Example #1
0
        public void FilteringBySource()
        {
            TestHelper.CleanupFolder(SystemActivityMonitor.RootLogPath + "FilteringBySource");

            using (GrandOutput g = new GrandOutput())
            {
                GrandOutputConfiguration config = new GrandOutputConfiguration();
                config.Load(XDocument.Parse(@"
<GrandOutputConfiguration>
    <Channel MinimalFilter=""Debug"">
        <Add Type=""BinaryFile"" Name=""All"" Path=""FilteringBySource"" />
        <Channel Name=""HiddenTopic"" MinimalFilter=""Off"" TopicRegex=""(hidden\s+topic|hide\s+this\s+topic)"" MatchOptions=""CultureInvariant, ExplicitCapture, Compiled, Multiline"" />
    </Channel>
    <SourceOverrideFilter>
        <Add File=""SourceFile-Debug.cs"" Filter=""Debug"" />
        <Add File=""SourceFile-Off.cs"" Filter=""Off"" />
        <Add File=""SourceFile-Strange.cs"" Filter=""{Trace,Fatal}"" />
    </SourceOverrideFilter>
</GrandOutputConfiguration>", LoadOptions.SetLineInfo).Root, TestHelper.ConsoleMonitor);

                Assert.That(g.SetConfiguration(config, TestHelper.ConsoleMonitor));

                var m = new ActivityMonitor(false);
                g.Register(m);

                m.Fatal(fileName: "SourceFile-Off.cs").Send("NOSHOW");
                m.SetTopic("This is a hidden topic...");
                m.Trace(0, "SourceFile-Debug.cs").Send("Trace-1");
                m.Trace().Send("NOSHOW");
                m.SetTopic("Please, hide this topic!");
                m.Trace(fileName: "SourceFile-Strange.cs").Send("NOSHOW");
                using (m.OpenTrace(fileName: "SourceFile-Strange.cs").Send("Trace-2"))
                {
                    m.Trace(fileName: "SourceFile-Strange.cs").Send("NOSHOW");
                    m.Fatal(fileName: "SourceFile-Strange.cs").Send("Fatal-1");
                    m.Fatal(fileName: "SourceFile-Off.cs").Send("NOSHOW");
                }
                m.SetTopic(null);
                m.Trace(fileName: "SourceFile-Strange.cs").Send("NOSHOW");
                m.Fatal(fileName: "SourceFile-Off.cs").Send("NOSHOW");
                m.Trace().Send("Trace-3");
            }
            List <StupidStringClient> logs = TestHelper.ReadAllLogs(new DirectoryInfo(SystemActivityMonitor.RootLogPath + "FilteringBySource"), false);

            Assert.That(logs.Count, Is.EqualTo(1));
            Assert.That(logs[0].ToString(), Does.Not.Contain("NOSHOW"));
            var texts = logs[0].Entries.Select(e => e.Text).ToArray();

            CollectionAssert.AreEqual(new string[] {
                "Trace-1",
                "Trace-2",
                "Fatal-1",
                ActivityMonitor.SetTopicPrefix,
                "Trace-3",
            }, texts, StringComparer.Ordinal);
        }
All Usage Examples Of CK.Monitoring.Tests.TestHelper::CleanupFolder