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 ) );
}