Skip to content

Commit

Permalink
Add a unit test to test some arguments null on the output
Browse files Browse the repository at this point in the history
  • Loading branch information
macdarwin committed Jul 16, 2013
1 parent 7408f97 commit 1cc64fc
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 10 deletions.
5 changes: 2 additions & 3 deletions CK.Core/ActivityLogger/Impl/ActivityLoggerOutput.cs
Expand Up @@ -64,10 +64,9 @@ List<IActivityLoggerClient> Clients
{
get { return _list as List<IActivityLoggerClient>; }
}
private IList<T> CreateNewList<T>( List<T> list = null )
private IList<T> CreateNewList<T>( List<T> list )
{
if( list == null ) return new List<T>();
else return new List<T>( list );
return new List<T>( list );
}
#endif

Expand Down
30 changes: 24 additions & 6 deletions Tests/CK.Core.Tests/ActivityLoggerMultiThreadTests.cs
Expand Up @@ -74,32 +74,50 @@ public void MultiThread()
new NotBuggyActivityLoggerClient(6),
new NotBuggyActivityLoggerClient(7),
new NotBuggyActivityLoggerClient(8),
new NotBuggyActivityLoggerClient(9)
new NotBuggyActivityLoggerClient(9),
new NotBuggyActivityLoggerClient(10),
new NotBuggyActivityLoggerClient(11),
new NotBuggyActivityLoggerClient(12),
new NotBuggyActivityLoggerClient(13),
new NotBuggyActivityLoggerClient(14),
new NotBuggyActivityLoggerClient(15),
new NotBuggyActivityLoggerClient(16),
new NotBuggyActivityLoggerClient(17),
new NotBuggyActivityLoggerClient(18),
new NotBuggyActivityLoggerClient(19)
};

Task t = new Task( () =>
{
Parallel.For( 0, 10, i => { logger.Output.RegisterClient( clients[i] ); } );
Parallel.For( 0, 20, i => { logger.Output.RegisterClient( clients[i] ); } );
Assert.That( logger.Output.RegisteredClients.Count, Is.EqualTo( 10 + initCount ) );
Assert.That( logger.Output.RegisteredClients.Count, Is.EqualTo( 20 + initCount ) );
Thread.Sleep( 100 );
Parallel.For( 0, 10, i => { logger.Output.UnregisterClient( clients[i] ); } );
Parallel.For( 0, 20, i => { logger.Output.UnregisterClient( clients[i] ); } );
Assert.That( logger.Output.RegisteredClients.Count, Is.EqualTo( initCount ) );
Thread.Sleep( 100 );
Parallel.For( 0, 10, i => { logger.Output.RegisterClient( clients[i] ); Thread.Sleep( 50 ); logger.Output.UnregisterClient( clients[i] ); } );
Random r = new Random();
Parallel.For( 0, 20, i => {
Console.WriteLine( "Add : {0}", i );
logger.Output.RegisterClient( clients[i] );
Thread.Sleep( (int)Math.Round( r.NextDouble() * 50, 0 ) );
Console.WriteLine( "Remove : {0}", i );
logger.Output.UnregisterClient( clients[i] );
} );
Assert.That( logger.Output.RegisteredClients.Count, Is.EqualTo( initCount ) );
} );

t.Start();
for( int i = 0; i < 100; i++ )
for( int i = 0; i < 50; i++ )
{
logger.Info( "Ok go : " + i );
Thread.Sleep( 10 );
Expand Down
13 changes: 12 additions & 1 deletion Tests/CK.Core.Tests/ActivityLoggerTests.cs
Expand Up @@ -77,7 +77,18 @@ public void NonRemovableOrLockedClients()
logger.Output.UnregisterClient( pathCatcher );
Assert.That( logger.Output.RegisteredClients.Count, Is.EqualTo( 3 ) );
}


[Test]
[Category( "ActivityLogger" )]
public void OutputArguments()
{
IDefaultActivityLogger logger = new DefaultActivityLogger();
Assert.Throws<ArgumentNullException>( () => logger.Output.RegisterClient( null ) );
Assert.Throws<ArgumentNullException>( () => logger.Output.UnregisterClient( null ) );
Assert.Throws<NotImplementedException>( () => { ActivityLoggerBridgeTarget b = ActivityLoggerOutput.Empty.ExternalInput; } );

}

[Test]
[Category( "Console" )]
public void BridgeArguments()
Expand Down

0 comments on commit 1cc64fc

Please sign in to comment.