Codeproject
Recently I've been adding some bits to Ivonna that are supposed to make her more MVC-friendly. I fell asleep with a happy smile on my face after the following test passed:
var session = new TestSession();
var response = session.Get("/");
Assert.AreEqual("Home", response.ControllerName);
As before, we have a WebResponse
class, but this one stays in the Ivonna.Framework.MVC
namespace. The one that was used all along has been moved to the Ivonna.Framework.Webforms
namespace, so all you need to make your old code compile is add an import
. TestSession.Get()
is an extension method: it has WebForms and MVC "flavours", depending on which namespace you import. This way, you don't have to learn a new syntax for a different framework. Of course, you can still use TestSession.ProcessRequest()
if you need to customize your request.
What's implemented already is full information about the action method: the ControllerContext
and ActionDescriptor
instances, and parameter values participating in the method invocation. You can get the Route through these as well, but I plan to expose it as a property. The next step is provide the information about the ActionResult
, including the IView
instance, if any. So, the WebResponse
instance will contain the full information about the request. Information about the child requests will be available as well.