Question: I am working on an ASP.NET WebForm application using MVP pattern. For every Web Form, there is a Presenter class associated to handle UI and Business logic. However, I had problem when writing unit tests for Presenters, since session values are used in presenters. And there is no HTTP context exists during execution of the unit test ( BTW I use nUnit ), making it is impossible to write unit test for presenters.

Anyone can explain how to unit test these presenters?

Thanks

Answer: 
Would like to try something hot ?

[Silverlight 4](http://silverlight.net/getstarted/silverlight-4-beta/) (now in Beta) seems to have support for microphone&webcam. You will need to create server side for it as well. Probably some kind of user management and contact list. There will be significant bandwidth if you get lot of users, so the server side should created be scalable to multiple machines. Maybe [Azure](http://www.microsoft.com/windowsazure/) cloud ? With any platform you choose it will take lot of effort.
Architecturally, you need a server to relay the video/audio to both parties, since they cannot connect directly.

You need a Silverlight or Flash 'movie' running in the browser, which you have written, and you need a server to do the relaying.

Its relatively straightforward using **Haxe**.

[Haxe](http://haxe.org) is a Free language for creating both Flash 'movies' and server applications (and more; read their homepage).

One of the Haxe-related servers that is available for Free is [HaxeVideo](http://code.google.com/p/haxevideo/) - literally a video server that (among other things) supports live streaming from clients. Run HaxeVideo on a server and you can easily make Flash clients (written in the Haxe language naturally) do video chat.

There are several sites that do precisely this e.g. [Reel Portal](http://www.reelportal.com/) and [DoVisio](http://www.dovisio.com/)

If you anticipate a very high volume you can turn to $$$ servers such as [Wowza](http://www.wowzamedia.com/) or [Flash Media Server (FMS)](http://www.adobe.com/products/flashmediaserver/), or you can simply add peering support to HaxeVideo.