CK.Monitoring.Tests.GrandOutputTests.GrandOutputHasSameCompressedAndUncompressedLogs C# (CSharp) Method

GrandOutputHasSameCompressedAndUncompressedLogs() private method

private GrandOutputHasSameCompressedAndUncompressedLogs ( ) : void
return void
        public void GrandOutputHasSameCompressedAndUncompressedLogs()
        {
            string rootPath = SystemActivityMonitor.RootLogPath + @"\GrandOutputGzip";

            TestHelper.CleanupFolder( rootPath );

            GrandOutputConfiguration c = new GrandOutputConfiguration();
            Assert.That( c.Load( XDocument.Parse( @"
                <GrandOutputConfiguration GlobalDefaultFilter=""Release"" >
                    <Channel>
                        <Add Type=""BinaryFile"" Name=""GzipGlobalCatch"" Path=""" + rootPath + @"\OutputGzip"" MaxCountPerFile=""200000"" UseGzipCompression=""True"" />
                        <Add Type=""BinaryFile"" Name=""RawGlobalCatch"" Path=""" + rootPath + @"\OutputRaw"" MaxCountPerFile=""200000"" UseGzipCompression=""False"" />
                    </Channel>
                </GrandOutputConfiguration>"
                ).Root, TestHelper.ConsoleMonitor ) );
            Assert.That( c.ChannelsConfiguration.Configurations.Count, Is.EqualTo( 2 ) );

            using( GrandOutput g = new GrandOutput() )
            {
                Assert.That( g.SetConfiguration( c, TestHelper.ConsoleMonitor ), Is.True );

                var taskA = Task.Factory.StartNew<int>( () => { DumpMonitorOutput( CreateMonitorAndRegisterGrandOutput( "Task A", g ) ); return 1; } );
                var taskB = Task.Factory.StartNew<int>( () => { DumpMonitorOutput( CreateMonitorAndRegisterGrandOutput( "Task B", g ) ); return 1; } );
                var taskC = Task.Factory.StartNew<int>( () => { DumpMonitorOutput( CreateMonitorAndRegisterGrandOutput( "Task C", g ) ); return 1; } );

                Task.WaitAll( taskA, taskB, taskC );
            }

            string[] gzipCkmons = TestHelper.WaitForCkmonFilesInDirectory( rootPath + @"\OutputGzip", 1 );
            string[] rawCkmons = TestHelper.WaitForCkmonFilesInDirectory( rootPath + @"\OutputRaw", 1 );

            Assert.That( gzipCkmons, Has.Length.EqualTo( 1 ) );
            Assert.That( rawCkmons, Has.Length.EqualTo( 1 ) );

            FileInfo gzipCkmonFile = new FileInfo( gzipCkmons.Single() );
            FileInfo rawCkmonFile = new FileInfo( rawCkmons.Single() );

            Assert.That( gzipCkmonFile.Exists, Is.True );
            Assert.That( rawCkmonFile.Exists, Is.True );

            // Test file size
            Assert.That( gzipCkmonFile.Length, Is.LessThan( rawCkmonFile.Length ) );

            // Test de-duplication between Gzip and non-Gzip
            MultiLogReader mlr = new MultiLogReader();
            var fileList = mlr.Add( new string[] { gzipCkmonFile.FullName, rawCkmonFile.FullName } );
            Assert.That( fileList, Has.Count.EqualTo( 2 ) );

            var map = mlr.GetActivityMap();

            Assert.That( map.Monitors.Count, Is.EqualTo( 3 ) );

        }