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: 
I belive that you did not undestand that this think you ask, if you going to build it its takes months of design and developing. 

if you search for "web chat webcam" you maybe see why I say that.

For example this <http://www.ivideochat.com/> site have developed a program for that reason. See how complicate it is, how many think have.

Also you did not say, what platform you using, what is your server that going to split the video channels and send them all over the other, are you going to use it for one to one, or all to all, are you going to build it on asp.net ? on linux, on flash, on what ?

Some times small thinks in words, are too huge in developing. 

So for me you must define a lot of thinks and then maybe you can see if you can do that.  

**1**.Media stream server ? example <http://www.adobe.com/products/flashmediaserver/>  

**2**.Developing platform.  

**3**.Number of possible users.  

**4**.The way they goint o interact each other.  

**5**.All of them need to have camera ?  

**6**.What about bad users (that show bad thinks) ?  

**7**.Do they going to chat also ? 

Think about all that first, then maybe is more clear to you what you going to get.
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.