public void TestSimpleSourceSink( )
 {
     //	TODO: AP: Use mock framework to ensure that source and sink are called
     SourceSinkWorkItem.Builder<int> builder = new SourceSinkWorkItem.Builder<int>( );
     builder.SetSource( delegate { return 10; } );
     builder.SetSink( delegate( int res ) { Assert.AreEqual( 10, res ); } );
     builder.Build( "test" ).DoWork( ProgressMonitor.Null );
 }
        /// <summary>
        /// Adds the request to build a texture for the specified planet onto a build queue
        /// </summary>
        public void QueueBuild( IWorkItemQueue queue, ISpherePlanet planet, Action<ITexture> onComplete )
        {
            SourceSinkWorkItem.Builder<Bitmap[]> sourceSink = new SourceSinkWorkItem.Builder<Bitmap[]>( );
            sourceSink.SetSource( CreateTextureBitmaps, planet );
            sourceSink.SetSink( FinishBuild, onComplete );

            queue.Enqueue( sourceSink.Build( "Build Marble Texture" ), null );
        }
 public void TestBuildWithoutSinkShouldThrow( )
 {
     SourceSinkWorkItem.Builder<int> builder = new SourceSinkWorkItem.Builder<int>( );
     builder.SetSource( delegate { return 0; } );
     builder.Build( "test" );
 }