<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>aspnetmvc</title>
        <link>http://geekswithblogs.net/chriscanal/category/8054.aspx</link>
        <description>aspnetmvc</description>
        <language>en-GB</language>
        <copyright>Chris Canal</copyright>
        <managingEditor>chris@e4ums.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>ASP.NET MVC ActionResult Helper</title>
            <link>http://geekswithblogs.net/chriscanal/archive/2008/05/15/asp.net-mvc-actionresult-helper.aspx</link>
            <description>Recently I’ve been working a lot with the new ASP.NET MVC framework, with Preview 1 (bleh) and the interim drop, Pre-Preview 3?&lt;br /&gt;
The ActionResult is a fantastic addition, making the framework far easier to test. However, I noticed I was basically doing the same thing for each test: &lt;blockquote&gt;
&lt;div style="border: 1px solid rgb(208, 208, 208); font-family: monospace; color: rgb(0, 0, 102); background-color: rgb(240, 240, 240);" class="csharp"&gt;
&lt;ol&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;Test&lt;span style="color: rgb(0, 0, 0);"&gt;]&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(6, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;void&lt;/span&gt; TestSomething&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;   var actionResult = controllerUT.&lt;span style="color: rgb(0, 0, 255);"&gt;Something&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;as&lt;/span&gt; RenderViewResult;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;   &lt;span style="color: rgb(6, 0, 255);"&gt;If&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt; actionResult == &lt;span style="color: rgb(6, 0, 255);"&gt;null&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;      Assert.&lt;span style="color: rgb(0, 0, 255);"&gt;Fail&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;“ActionResult was &lt;span style="color: rgb(6, 0, 255);"&gt;null&lt;/span&gt;.”&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;   Assert.&lt;span style="color: rgb(0, 0, 255);"&gt;That&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;actionResult.&lt;span style="color: rgb(0, 0, 255);"&gt;ViewName&lt;/span&gt;, &lt;a href="http://www.google.com/search?q=is+msdn.microsoft.com" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;Is&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;EqualTo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;“ViewName”&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;   Assert.&lt;span style="color: rgb(0, 0, 255);"&gt;That&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;actionResult.&lt;span style="color: rgb(0, 0, 255);"&gt;ViewData&lt;/span&gt;, &lt;a href="http://www.google.com/search?q=is+msdn.microsoft.com" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;Is&lt;/span&gt;&lt;/a&gt;.&lt;a href="http://www.google.com/search?q=typeof+msdn.microsoft.com" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;Typeof&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;a href="http://www.google.com/search?q=typeof+msdn.microsoft.com" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;typeof&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;SomeClass&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;   Assert.&lt;span style="color: rgb(0, 0, 255);"&gt;That&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;SomeClass&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;actionResult.&lt;span style="color: rgb(0, 0, 255);"&gt;ViewData&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;SomeProperty&lt;/span&gt;, &lt;a href="http://www.google.com/search?q=is+msdn.microsoft.com" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;Is&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;EqualTo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;123&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/blockquote&gt; Basically asserting the view name, view data type and maybe asserting a property or two on the view data. In the spirit of treating the test code as a first class citizen I decided to refactor out the duplication.  The resulting refactoring turned the above into the following: &lt;blockquote&gt;
&lt;div class="csharp" style="border: 1px solid rgb(208, 208, 208); font-family: monospace; color: rgb(0, 0, 102); background-color: rgb(240, 240, 240);"&gt;
&lt;ol&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;Test&lt;span style="color: rgb(0, 0, 0);"&gt;]&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(6, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;void&lt;/span&gt; TestSomething&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;   controller.&lt;span style="color: rgb(0, 0, 255);"&gt;Something&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;AssertViewName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;“ViewName”&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;AssertViewDataType&lt;/span&gt;&amp;lt;SomeClass&amp;gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;c =&amp;gt; Assert.&lt;span style="color: rgb(0, 0, 255);"&gt;That&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;c.&lt;span style="color: rgb(0, 0, 255);"&gt;SomeProperty&lt;/span&gt;, &lt;a style="color: rgb(0, 0, 96);" href="http://www.google.com/search?q=is+msdn.microsoft.com"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;Is&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;EqualTo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;123&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/blockquote&gt; Which I personally think is alot nicer! Although I'm a little biased, so I thought I would share it and see what other people thought of it. Below is the code I came up with. Any and all suggestions (good or bad) are appreciated &lt;blockquote&gt;
&lt;div class="csharp" style="border: 1px solid rgb(208, 208, 208); font-family: monospace; color: rgb(0, 0, 102); background-color: rgb(240, 240, 240);"&gt;
&lt;ol&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(6, 0, 255);"&gt;namespace&lt;/span&gt; e4umsMN.&lt;span style="color: rgb(0, 0, 255);"&gt;Spec&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;Utils&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(6, 0, 255);"&gt;using&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;System&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(6, 0, 255);"&gt;using&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;System&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;Web&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;Mvc&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(6, 0, 255);"&gt;using&lt;/span&gt; NUnit.&lt;span style="color: rgb(0, 0, 255);"&gt;Framework&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(6, 0, 255);"&gt;using&lt;/span&gt; NUnit.&lt;span style="color: rgb(0, 0, 255);"&gt;Framework&lt;/span&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;SyntaxHelpers&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(6, 0, 255);"&gt;internal&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;static&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;class&lt;/span&gt; ActionResultHelper&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 128, 128);"&gt;#region Public statics (6)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(6, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;static&lt;/span&gt; ActionResult AssertActionRedirect&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(6, 0, 255);"&gt;this&lt;/span&gt; ActionResult actionResult, &lt;span style="color: rgb(255, 0, 0);"&gt;string&lt;/span&gt; actionName&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;            &lt;span style="color: rgb(6, 0, 255);"&gt;return&lt;/span&gt; actionResult.&lt;span style="color: rgb(0, 0, 255);"&gt;AssertNotNull&lt;/span&gt;&amp;lt;ActionRedirectResult&amp;gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;arr =&amp;gt; Assert.&lt;span style="color: rgb(0, 0, 255);"&gt;That&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;arr.&lt;span style="color: rgb(0, 0, 255);"&gt;Values&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;"action"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;]&lt;/span&gt;, &lt;a style="color: rgb(0, 0, 96);" href="http://www.google.com/search?q=is+msdn.microsoft.com"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;Is&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;EqualTo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;actionName&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(6, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;static&lt;/span&gt; ActionResult AssertHttpRedirect&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(6, 0, 255);"&gt;this&lt;/span&gt; ActionResult actionResult, &lt;span style="color: rgb(255, 0, 0);"&gt;string&lt;/span&gt; redirect&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;            &lt;span style="color: rgb(6, 0, 255);"&gt;return&lt;/span&gt; actionResult.&lt;span style="color: rgb(0, 0, 255);"&gt;AssertNotNull&lt;/span&gt;&amp;lt;HttpRedirectResult&amp;gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;hrr =&amp;gt; Assert.&lt;span style="color: rgb(0, 0, 255);"&gt;That&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;hrr.&lt;span style="color: rgb(0, 0, 255);"&gt;Url&lt;/span&gt;, &lt;a style="color: rgb(0, 0, 96);" href="http://www.google.com/search?q=is+msdn.microsoft.com"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;Is&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;EqualTo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;redirect&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(6, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;static&lt;/span&gt; ActionResult AssertRenderViewResult&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(6, 0, 255);"&gt;this&lt;/span&gt; ActionResult actonResult, Action&amp;lt;RenderViewResult&amp;gt; extraAssert&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;            &lt;span style="color: rgb(6, 0, 255);"&gt;return&lt;/span&gt; actonResult.&lt;span style="color: rgb(0, 0, 255);"&gt;AssertNotNull&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;extraAssert&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(6, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;static&lt;/span&gt; ActionResult AssertViewDataType&amp;lt;T&amp;gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(6, 0, 255);"&gt;this&lt;/span&gt; ActionResult actionResult, Action&amp;lt;T&amp;gt; viewDataAssert&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;            &lt;span style="color: rgb(6, 0, 255);"&gt;return&lt;/span&gt; actionResult.&lt;span style="color: rgb(0, 0, 255);"&gt;AssertRenderViewResult&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;a =&amp;gt; viewDataAssert&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;T&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;a.&lt;span style="color: rgb(0, 0, 255);"&gt;ViewData&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(6, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;static&lt;/span&gt; ActionResult AssertViewDataType&amp;lt;T&amp;gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(6, 0, 255);"&gt;this&lt;/span&gt; ActionResult actionResult&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;            &lt;span style="color: rgb(6, 0, 255);"&gt;return&lt;/span&gt; actionResult.&lt;span style="color: rgb(0, 0, 255);"&gt;AssertRenderViewResult&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;a =&amp;gt; Assert.&lt;span style="color: rgb(0, 0, 255);"&gt;That&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;a.&lt;span style="color: rgb(0, 0, 255);"&gt;ViewData&lt;/span&gt;, &lt;a style="color: rgb(0, 0, 96);" href="http://www.google.com/search?q=is+msdn.microsoft.com"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;Is&lt;/span&gt;&lt;/a&gt;.&lt;a style="color: rgb(0, 0, 96);" href="http://www.google.com/search?q=typeof+msdn.microsoft.com"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;TypeOf&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;a style="color: rgb(0, 0, 96);" href="http://www.google.com/search?q=typeof+msdn.microsoft.com"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;typeof&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;T&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(6, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;static&lt;/span&gt; ActionResult AssertViewName&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(6, 0, 255);"&gt;this&lt;/span&gt; ActionResult actionResult, &lt;span style="color: rgb(255, 0, 0);"&gt;string&lt;/span&gt; viewName&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;            &lt;span style="color: rgb(6, 0, 255);"&gt;return&lt;/span&gt; actionResult.&lt;span style="color: rgb(0, 0, 255);"&gt;AssertRenderViewResult&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;a =&amp;gt; Assert.&lt;span style="color: rgb(0, 0, 255);"&gt;That&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;a.&lt;span style="color: rgb(0, 0, 255);"&gt;ViewName&lt;/span&gt;, &lt;a style="color: rgb(0, 0, 96);" href="http://www.google.com/search?q=is+msdn.microsoft.com"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;Is&lt;/span&gt;&lt;/a&gt;.&lt;span style="color: rgb(0, 0, 255);"&gt;EqualTo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;viewName&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 128, 128);"&gt;#endregion Public statics&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 128, 128);"&gt;#region Other statics (1)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(6, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(6, 0, 255);"&gt;static&lt;/span&gt; T AssertNotNull&amp;lt;T&amp;gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(6, 0, 255);"&gt;this&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;object&lt;/span&gt; actionResult, Action&amp;lt;T&amp;gt; extraAssert&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;            &lt;span style="color: rgb(6, 0, 255);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;actionResult == &lt;span style="color: rgb(6, 0, 255);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;                Assert.&lt;span style="color: rgb(0, 0, 255);"&gt;Fail&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;"ActionResult was null"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;            extraAssert&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;T&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; actionResult&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;            &lt;span style="color: rgb(6, 0, 255);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;T&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; actionResult;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;        &lt;span style="color: rgb(0, 128, 128);"&gt;#endregion Other statics&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-family: 'Courier New',Courier,monospace; font-style: normal; font-variant: normal; font-weight: normal; font-size: 130%; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(0, 48, 48);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li style="font-weight: bold; color: rgb(0, 96, 96);"&gt;
    &lt;div style="font-family: 'Courier New',Courier,monospace; font-weight: normal; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122177"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122177" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/chriscanal/aggbug/122177.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Canal</dc:creator>
            <guid>http://geekswithblogs.net/chriscanal/archive/2008/05/15/asp.net-mvc-actionresult-helper.aspx</guid>
            <pubDate>Thu, 15 May 2008 17:59:14 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/chriscanal/comments/122177.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/chriscanal/archive/2008/05/15/asp.net-mvc-actionresult-helper.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/chriscanal/comments/commentRss/122177.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Handy HttpPostedFile &amp; HttpFileCollection abstractions</title>
            <link>http://geekswithblogs.net/chriscanal/archive/2008/04/23/handy-httppostedfile--httpfilecollection-abstractions.aspx</link>
            <description>&lt;p&gt;I've just upgraded to the latest version interim drop of the MVC framework and MVC Contrib (which I can't seem to build from source using NAnt...).  Everything appeared to be ok, except for one thing: a controller action that uploads a file was now throwing an error: &lt;/p&gt;
&lt;blockquote&gt; cannot convert from 'System.Web.HttpPostedFileBase' to 'System.Web.HttpPostedFile' &lt;/blockquote&gt;
&lt;p&gt;After a few seconds of confusion I quicky dawned on me that this might be a very good thing.  A quick look at the System.Web.Abstractions confirmed my throughts, it now contained abstractions for HttpPostedFile and HttpFileCollection!&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img width="324" height="446" alt="" src="/images/geekswithblogs_net/chriscanal/images/post_file_reflector.Png" /&gt;&lt;/p&gt;
&lt;p&gt; Color me happy, the only code I couldn't get covered was Actions that handled file uploads.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121589"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121589" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/chriscanal/aggbug/121589.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Chris Canal</dc:creator>
            <guid>http://geekswithblogs.net/chriscanal/archive/2008/04/23/handy-httppostedfile--httpfilecollection-abstractions.aspx</guid>
            <pubDate>Wed, 23 Apr 2008 19:18:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/chriscanal/comments/121589.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/chriscanal/archive/2008/04/23/handy-httppostedfile--httpfilecollection-abstractions.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/chriscanal/comments/commentRss/121589.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>