public Resolve ( IActivityMonitor monitor ) : |
||
monitor | IActivityMonitor | Monitor to use. Must not be null. |
return |
public void RoutesAndActions() { RouteConfiguration c = new RouteConfiguration() .AddAction( new ActionSequenceConfiguration( "FirstGroup" ) .AddAction( new TestActionConfiguration( "Sink1" ) ) .AddAction( new TestActionConfiguration( "Sink2" ) ) .AddAction( new ActionParallelConfiguration( "Parallel n°1" ) .AddAction( new TestActionConfiguration( "Sink3" ) ) .AddAction( new TestActionConfiguration( "Sink4" ) ) ) .AddAction( new ActionParallelConfiguration( "Parallel n°2" ) .AddAction( new TestActionConfiguration( "Sink3" ) ) .AddAction( new TestActionConfiguration( "Sink4" ) ) ) ) .AddAction( new TestActionConfiguration( "SecondGlobal" ) ) .DeclareRoute( new SubRouteConfiguration( "CKTask", name => name.StartsWith( "CKTask:" ) ) .AddAction( new TestActionConfiguration( "TaskSink" ) ) .RemoveAction( "SecondGlobal" ) ) .AddAction( new TestActionConfiguration( "ForAllExceptCKTask" ) ) .DeclareRoute( new SubRouteConfiguration( "Request", name => name.Contains( "/request/" ) ) .RemoveAction( "FirstGroup" ) .AddAction( new TestActionConfiguration( "RequestSink" ) ) .AddAction( new TestActionConfiguration( "AnotherRequestSink" ) ) .DeclareRoute( new SubRouteConfiguration( "NoBugInRequest", name => name.Contains( "/BugFree/" ) ) { ImportParentActions = false } ) ); var resolved = c.Resolve( TestHelper.ConsoleMonitor ); Assert.That( resolved, Is.Not.Null ); Assert.That( resolved.AllSubRoutes.Count, Is.EqualTo( 3 ) ); var root = resolved.Root; Assert.That( root, Is.Not.Null ); Assert.That( root.ActionsResolved, Is.Not.Null.And.Count.EqualTo( 3 ) ); var ckTask = resolved.FindSubRouteByName( "CKTask" ); Assert.That( ckTask, Is.Not.Null ); Assert.That( ckTask.ActionsResolved, Is.Not.Null.And.Count.EqualTo( 2 ) ); var request = resolved.FindSubRouteByName( "Request" ); Assert.That( request, Is.Not.Null ); Assert.That( request.ActionsResolved, Is.Not.Null.And.Count.EqualTo( 4 ) ); var noBug = resolved.FindSubRouteByName( "NoBugInRequest" ); Assert.That( noBug, Is.Not.Null ); Assert.That( noBug.ActionsResolved, Is.Not.Null.And.Count.EqualTo( 0 ) ); }
public void InvalidNames() { { Assert.Throws<ArgumentNullException>( () => new RouteConfiguration().DeclareRoute( new SubRouteConfiguration( null, x => true ) ) ); Assert.Throws<ArgumentNullException>( () => new RouteConfiguration().AddAction( new TestActionConfiguration( null ) ) ); } RouteConfiguration c; { c = new RouteConfiguration() .DeclareRoute( new SubRouteConfiguration( "", x => true ) .DeclareRoute( new SubRouteConfiguration( "", x => true ) ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Null, "A route name can be empty but not 2 can be empty at the same time. The name of the root RouteConfiguration is always the empty string." ); } { c = new RouteConfiguration() .AddAction( new TestActionConfiguration( "" ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Null ); } { c = new RouteConfiguration() .AddAction( new TestActionConfiguration( "/" ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Null ); } { c = new RouteConfiguration() .AddAction( new TestActionConfiguration( "A/B" ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Null ); } }
public void ActionNamesConflict() { RouteConfiguration c; { c = new RouteConfiguration() .AddAction( new TestActionConfiguration( "Name" ) ) .AddAction( new TestActionConfiguration( "Name" ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Null ); } { c = new RouteConfiguration() .AddAction( new ActionParallelConfiguration( "Parallel" ) .AddAction( new TestActionConfiguration( "Name" ) ) .AddAction( new TestActionConfiguration( "Name" ) ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Null ); } { c = new RouteConfiguration() .AddAction( new ActionSequenceConfiguration( "Sequence" ) .AddAction( new TestActionConfiguration( "Name" ) ) .AddAction( new TestActionConfiguration( "Name" ) ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Null ); } { c = new RouteConfiguration() .AddAction( new TestActionConfiguration( "Name" ) ) .AddAction( new ActionSequenceConfiguration( "FirstGroup" ) .AddAction( new TestActionConfiguration( "Name" ) ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Not.Null, "Sequence acts as a namespace." ); } { c = new RouteConfiguration() .AddAction( new ActionSequenceConfiguration( "G1" ) .AddAction( new TestActionConfiguration( "Name" ) ) ) .AddAction( new ActionSequenceConfiguration( "G2" ) .AddAction( new TestActionConfiguration( "Name" ) ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Not.Null, "Sequence hide names below them." ); } { c = new RouteConfiguration() .AddAction( new ActionSequenceConfiguration( "G1" ) .AddAction( new TestActionConfiguration( "Name" ) ) ) .AddAction( new ActionParallelConfiguration( "P1" ) .AddAction( new TestActionConfiguration( "Name" ) ) ) .AddAction( new ActionParallelConfiguration( "P2" ) .AddAction( new TestActionConfiguration( "Name" ) ) ) .AddAction( new ActionSequenceConfiguration( "G2" ) .AddAction( new TestActionConfiguration( "Name" ) ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Not.Null, "Parallels also hide names below them." ); } }
public void RouteNamesConflict() { RouteConfiguration c; { c = new RouteConfiguration() .DeclareRoute( new SubRouteConfiguration( "Name", x => true ) ) .DeclareRoute( new SubRouteConfiguration( "Name", x => true ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Null ); } { c = new RouteConfiguration() .DeclareRoute( new SubRouteConfiguration( "Name", x => true ) .DeclareRoute( new SubRouteConfiguration( "Name", x => true ) ) ); Assert.That( c.Resolve( TestHelper.ConsoleMonitor ), Is.Null ); } }