[
  {
    "path": ".gitignore",
    "content": "bin/\r\nobj/\r\n*.suo\r\n*.vs10x\r\n_ReSharper/\r\n_ReSharper*/\r\n*.user\r\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2011 Telerik Corp.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
  },
  {
    "path": "README.md",
    "content": "The razor-converter is a simple tool for converting Microsoft&reg; ASP.NET MVC WebForms Views to the new Razor syntax.\nIt was initially developed by the Telerik ASP.NET MVC team for internal use, but it now lives its own life on GitHub.\n\nKnown limitations:\n\n* The tool only works with views and does not deal with the project structure and master pages.\n* Expressions in script tags are not converted\n* Due to the differences between the view engines the automatic conversion will sometimes fail or produce incorrect results. See the integration tests for specific scenarios that are not covered.\n\nFor general tips on converting WebForms Views to Razor Views, see these blog posts:\n\n* [Introducing Razor](http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx)\n* [Model directive support](http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx)\n* [Layouts](http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx)\n* [Server-side comments](http://weblogs.asp.net/scottgu/archive/2010/11/12/asp-net-mvc-3-server-side-comments-with-razor.aspx)\n* [The <text> syntax](http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx)\n* [Implicit and explicit code nuggets](http://weblogs.asp.net/scottgu/archive/2010/12/16/asp-net-mvc-3-implicit-and-explicit-code-nuggets-with-razor.aspx)\n* [Introducing Razor (by Andrew Nurse)](http://blog.andrewnurse.net/2010/07/03/IntroducingRazorNdashANewViewEngineForASPNet.aspx)\n\n[Help specific to the Telerik Extensions for ASP.NET MVC](http://www.telerik.com/help/aspnet-mvc/using-with-the-razor-view-engine.html)\n\nCommand line usage:\n\n`aspx2razor <input-directory> [output-directory] [options]`\n\nOptions:\n  -r: Convert directories and their contents recursively (Contributed by Jeffrey T. Fritz)\n\nA file with cshtml extension will be created for each input file.\nExisting files will be OVERWRITTEN, so you must be very careful.\n"
  },
  {
    "path": "References/Moq.LICENSE",
    "content": "Copyright (c) 2007. Clarius Consulting, Manas Technology Solutions, InSTEDD\nhttp://code.google.com/p/moq/\nAll rights reserved.\n\nRedistribution and use in source and binary forms, \nwith or without modification, are permitted provided \nthat the following conditions are met:\n\n    * Redistributions of source code must retain the \n    above copyright notice, this list of conditions and \n    the following disclaimer.\n    \n    * Redistributions in binary form must reproduce \n    the above copyright notice, this list of conditions \n    and the following disclaimer in the documentation \n    and/or other materials provided with the distribution.\n    \n    * Neither the name of Clarius Consulting, Manas Technology Solutions or InSTEDD nor the \n    names of its contributors may be used to endorse \n    or promote products derived from this software \n    without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND \nCONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, \nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF \nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE \nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \nBUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR \nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS \nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \nWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING \nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \nSUCH DAMAGE.\n\n[This is the BSD license, see\n http://www.opensource.org/licenses/bsd-license.php]"
  },
  {
    "path": "References/Moq.xml",
    "content": "<?xml version=\"1.0\"?>\n<doc>\n    <assembly>\n        <name>Moq</name>\n    </assembly>\n    <members>\n        <member name=\"T:Moq.Language.ISetupConditionResult`1\">\n            <summary>\n            Implements the fluent API.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Language.ISetupConditionResult`1.Setup(System.Linq.Expressions.Expression{System.Action{`0}})\">\n            <summary>\n            The expectation will be considered only in the former condition.\n            </summary>\n            <param name=\"expression\"></param>\n            <returns></returns>\n        </member>\n        <member name=\"M:Moq.Language.ISetupConditionResult`1.Setup``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\">\n            <summary>\n            The expectation will be considered only in the former condition.\n            </summary>\n            <typeparam name=\"TResult\"></typeparam>\n            <param name=\"expression\"></param>\n            <returns></returns>\n        </member>\n        <member name=\"M:Moq.Language.ISetupConditionResult`1.SetupGet``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\">\n            <summary>\n            Setups the get.\n            </summary>\n            <typeparam name=\"TProperty\">The type of the property.</typeparam>\n            <param name=\"expression\">The expression.</param>\n            <returns></returns>\n        </member>\n        <member name=\"M:Moq.Language.ISetupConditionResult`1.SetupSet``1(System.Action{`0})\">\n            <summary>\n            Setups the set.\n            </summary>\n            <typeparam name=\"TProperty\">The type of the property.</typeparam>\n            <param name=\"setterExpression\">The setter expression.</param>\n            <returns></returns>\n        </member>\n        <member name=\"M:Moq.Language.ISetupConditionResult`1.SetupSet(System.Action{`0})\">\n            <summary>\n            Setups the set.\n            </summary>\n            <param name=\"setterExpression\">The setter expression.</param>\n            <returns></returns>\n        </member>\n        <member name=\"T:Moq.Language.ICallback\">\n            <summary>\n            Defines the <c>Callback</c> verb and overloads.\n            </summary>\n        </member>\n        <member name=\"T:Moq.IHideObjectMembers\">\n            <summary>\n            Helper interface used to hide the base <see cref=\"T:System.Object\"/> \n            members from the fluent API to make it much cleaner \n            in Visual Studio intellisense.\n            </summary>\n        </member>\n        <member name=\"M:Moq.IHideObjectMembers.GetType\">\n            <summary/>\n        </member>\n        <member name=\"M:Moq.IHideObjectMembers.GetHashCode\">\n            <summary/>\n        </member>\n        <member name=\"M:Moq.IHideObjectMembers.ToString\">\n            <summary/>\n        </member>\n        <member name=\"M:Moq.IHideObjectMembers.Equals(System.Object)\">\n            <summary/>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback(System.Action)\">\n            <summary>\n            Specifies a callback to invoke when the method is called.\n            </summary>\n            <param name=\"action\">The callback method to invoke.</param>\n            <example>\n            The following example specifies a callback to set a boolean \n            value that can be used later:\n            <code>\n            var called = false;\n            mock.Setup(x => x.Execute())\n                .Callback(() => called = true);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``1(System.Action{``0})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T\">The argument type of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <example>\n            Invokes the given callback with the concrete invocation argument value. \n            <para>\n            Notice how the specific string argument is retrieved by simply declaring \n            it as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(It.IsAny&lt;string&gt;()))\n                .Callback((string command) => Console.WriteLine(command));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``2(System.Action{``0,``1})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2) =&gt; Console.WriteLine(arg1 + arg2));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``3(System.Action{``0,``1,``2})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3) =&gt; Console.WriteLine(arg1 + arg2 + arg3));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``4(System.Action{``0,``1,``2,``3})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``5(System.Action{``0,``1,``2,``3,``4})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``6(System.Action{``0,``1,``2,``3,``4,``5})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``7(System.Action{``0,``1,``2,``3,``4,``5,``6})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``8(System.Action{``0,``1,``2,``3,``4,``5,``6,``7})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``9(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``10(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``11(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``12(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``13(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``14(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``15(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T15\">The type of the fifteenth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback.Callback``16(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,``15})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T15\">The type of the fifteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T16\">The type of the sixteenth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.ICallbackResult\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15, string arg16) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15 + arg16));\n            </code>\n            </example>\n        </member>\n        <member name=\"T:Moq.Language.ICallback`2\">\n            <summary>\n            Defines the <c>Callback</c> verb and overloads for callbacks on\n            setups that return a value.\n            </summary>\n            <typeparam name=\"TMock\">Mocked type.</typeparam>\n            <typeparam name=\"TResult\">Type of the return value of the setup.</typeparam>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback(System.Action)\">\n            <summary>\n            Specifies a callback to invoke when the method is called.\n            </summary>\n            <param name=\"action\">The callback method to invoke.</param>\n            <example>\n            The following example specifies a callback to set a boolean value that can be used later:\n            <code>\n            var called = false;\n            mock.Setup(x => x.Execute())\n                .Callback(() => called = true)\n                .Returns(true);\n            </code>\n            Note that in the case of value-returning methods, after the <c>Callback</c>\n            call you can still specify the return value.\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``1(System.Action{``0})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original arguments.\n            </summary>\n            <typeparam name=\"T\">The type of the argument of the invoked method.</typeparam>\n            <param name=\"action\">Callback method to invoke.</param>\n            <example>\n            Invokes the given callback with the concrete invocation argument value.\n            <para>\n            Notice how the specific string argument is retrieved by simply declaring\n            it as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(It.IsAny&lt;string&gt;()))\n                .Callback(command => Console.WriteLine(command))\n                .Returns(true);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``2(System.Action{``0,``1})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2) =&gt; Console.WriteLine(arg1 + arg2));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``3(System.Action{``0,``1,``2})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3) =&gt; Console.WriteLine(arg1 + arg2 + arg3));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``4(System.Action{``0,``1,``2,``3})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``5(System.Action{``0,``1,``2,``3,``4})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``6(System.Action{``0,``1,``2,``3,``4,``5})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``7(System.Action{``0,``1,``2,``3,``4,``5,``6})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``8(System.Action{``0,``1,``2,``3,``4,``5,``6,``7})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``9(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``10(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``11(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``12(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``13(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``14(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``15(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T15\">The type of the fifteenth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15));\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.ICallback`2.Callback``16(System.Action{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,``15})\">\n            <summary>\n            Specifies a callback to invoke when the method is called that receives the original\n            arguments.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T15\">The type of the fifteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T16\">The type of the sixteenth argument of the invoked method.</typeparam>\n            <param name=\"action\">The callback method to invoke.</param>\n            <returns>A reference to <see cref=\"T:Moq.Language.Flow.IReturnsThrows`2\"/> interface.</returns>\n            <example>\n            Invokes the given callback with the concrete invocation arguments values. \n            <para>\n            Notice how the specific arguments are retrieved by simply declaring \n            them as part of the lambda expression for the callback:\n            </para>\n            <code>\n            mock.Setup(x =&gt; x.Execute(\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;(),\n                                 It.IsAny&lt;string&gt;()))\n                .Callback((arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16) =&gt; Console.WriteLine(arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15 + arg16));\n            </code>\n            </example>\n        </member>\n        <member name=\"T:Moq.Language.IRaise`1\">\n            <summary>\n            Defines the <c>Raises</c> verb.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\">\n            <summary>\n            Specifies the event that will be raised \n            when the setup is met.\n            </summary>\n            <param name=\"eventExpression\">An expression that represents an event attach or detach action.</param>\n            <param name=\"args\">The event arguments to pass for the raised event.</param>\n            <example>\n            The following example shows how to raise an event when \n            the setup is met:\n            <code>\n            var mock = new Mock&lt;IContainer&gt;();\n            \n            mock.Setup(add => add.Add(It.IsAny&lt;string&gt;(), It.IsAny&lt;object&gt;()))\n                .Raises(add => add.Added += null, EventArgs.Empty);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.Func{System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised \n            when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">An expression that represents an event attach or detach action.</param>\n            <param name=\"func\">A function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.Object[])\">\n            <summary>\n            Specifies the custom event that will be raised \n            when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">An expression that represents an event attach or detach action.</param>\n            <param name=\"args\">The arguments to pass to the custom delegate (non EventHandler-compatible).</param>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``1(System.Action{`0},System.Func{``0,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``2(System.Action{`0},System.Func{``0,``1,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``3(System.Action{`0},System.Func{``0,``1,``2,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``4(System.Action{`0},System.Func{``0,``1,``2,``3,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``5(System.Action{`0},System.Func{``0,``1,``2,``3,``4,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``6(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``7(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,``6,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``8(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,``6,``7,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``9(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``10(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``11(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``12(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``13(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``14(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``15(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T15\">The type of the fifteenth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"M:Moq.Language.IRaise`1.Raises``16(System.Action{`0},System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,``15,System.EventArgs})\">\n            <summary>\n            Specifies the event that will be raised when the setup is matched.\n            </summary>\n            <param name=\"eventExpression\">The expression that represents an event attach or detach action.</param>\n            <param name=\"func\">The function that will build the <see cref=\"T:System.EventArgs\"/> \n            to pass when raising the event.</param>\n            <typeparam name=\"T1\">The type of the first argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T15\">The type of the fifteenth argument received by the expected invocation.</typeparam>\n            <typeparam name=\"T16\">The type of the sixteenth argument received by the expected invocation.</typeparam>\n            <seealso cref=\"M:Moq.Language.IRaise`1.Raises(System.Action{`0},System.EventArgs)\"/>\n        </member>\n        <member name=\"T:Moq.Language.IReturns`2\">\n            <summary>\n            Defines the <c>Returns</c> verb.\n            </summary>\n            <typeparam name=\"TMock\">Mocked type.</typeparam>\n            <typeparam name=\"TResult\">Type of the return value from the expression.</typeparam>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns(`1)\">\n            <summary>\n            Specifies the value to return.\n            </summary>\n            <param name=\"value\">The value to return, or <see langword=\"null\"/>.</param>\n            <example>\n            Return a <c>true</c> value from the method call:\n            <code>\n            mock.Setup(x => x.Execute(\"ping\"))\n                .Returns(true);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns(System.Func{`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method.\n            </summary>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <example group=\"returns\">\n            Return a calculated value when the method is called:\n            <code>\n            mock.Setup(x => x.Execute(\"ping\"))\n                .Returns(() => returnValues[0]);\n            </code>\n            The lambda expression to retrieve the return value is lazy-executed, \n            meaning that its value may change depending on the moment the method \n            is executed and the value the <c>returnValues</c> array has at \n            that moment.\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``1(System.Func{``0,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T\">The type of the argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <example group=\"returns\">\n            Return a calculated value which is evaluated lazily at the time of the invocation.\n            <para>\n            The lookup list can change between invocations and the setup \n            will return different values accordingly. Also, notice how the specific \n            string argument is retrieved by simply declaring it as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(It.IsAny&lt;string&gt;()))\n                .Returns((string command) => returnValues[command]);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``2(System.Func{``0,``1,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2) => arg1 + arg2);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``3(System.Func{``0,``1,``2,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3) => arg1 + arg2 + arg3);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``4(System.Func{``0,``1,``2,``3,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4) => arg1 + arg2 + arg3 + arg4);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``5(System.Func{``0,``1,``2,``3,``4,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5) => arg1 + arg2 + arg3 + arg4 + arg5);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``6(System.Func{``0,``1,``2,``3,``4,``5,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``7(System.Func{``0,``1,``2,``3,``4,``5,``6,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``8(System.Func{``0,``1,``2,``3,``4,``5,``6,``7,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``9(System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``10(System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``11(System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``12(System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``13(System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``14(System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``15(System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T15\">The type of the fifteenth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturns`2.Returns``16(System.Func{``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,``15,`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return from the method, \n            retrieving the arguments for the invocation.\n            </summary>\n            <typeparam name=\"T1\">The type of the first argument of the invoked method.</typeparam>\n            <typeparam name=\"T2\">The type of the second argument of the invoked method.</typeparam>\n            <typeparam name=\"T3\">The type of the third argument of the invoked method.</typeparam>\n            <typeparam name=\"T4\">The type of the fourth argument of the invoked method.</typeparam>\n            <typeparam name=\"T5\">The type of the fifth argument of the invoked method.</typeparam>\n            <typeparam name=\"T6\">The type of the sixth argument of the invoked method.</typeparam>\n            <typeparam name=\"T7\">The type of the seventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T8\">The type of the eighth argument of the invoked method.</typeparam>\n            <typeparam name=\"T9\">The type of the nineth argument of the invoked method.</typeparam>\n            <typeparam name=\"T10\">The type of the tenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T11\">The type of the eleventh argument of the invoked method.</typeparam>\n            <typeparam name=\"T12\">The type of the twelfth argument of the invoked method.</typeparam>\n            <typeparam name=\"T13\">The type of the thirteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T14\">The type of the fourteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T15\">The type of the fifteenth argument of the invoked method.</typeparam>\n            <typeparam name=\"T16\">The type of the sixteenth argument of the invoked method.</typeparam>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <return>Returns a calculated value which is evaluated lazily at the time of the invocation.</return>\n            <example>\n            <para>\n            The return value is calculated from the value of the actual method invocation arguments. \n            Notice how the arguments are retrieved by simply declaring them as part of the lambda \n            expression:\n            </para>\n            <code>\n            mock.Setup(x => x.Execute(\n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;(), \n                                 It.IsAny&lt;int&gt;()))\n                .Returns((string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7, string arg8, string arg9, string arg10, string arg11, string arg12, string arg13, string arg14, string arg15, string arg16) => arg1 + arg2 + arg3 + arg4 + arg5 + arg6 + arg7 + arg8 + arg9 + arg10 + arg11 + arg12 + arg13 + arg14 + arg15 + arg16);\n            </code>\n            </example>\n        </member>\n        <member name=\"T:Moq.Language.ISetupSequentialResult`1\">\n            <summary>\n            Language for ReturnSequence\n            </summary>\n        </member>\n        <member name=\"M:Moq.Language.ISetupSequentialResult`1.Returns(`0)\">\n            <summary>\n            Returns value\n            </summary>\n        </member>\n        <member name=\"M:Moq.Language.ISetupSequentialResult`1.Throws(System.Exception)\">\n            <summary>\n            Throws an exception\n            </summary>\n        </member>\n        <member name=\"M:Moq.Language.ISetupSequentialResult`1.Throws``1\">\n            <summary>\n            Throws an exception\n            </summary>\n        </member>\n        <member name=\"F:Moq.Linq.FluentMockVisitor.isFirst\">\n            <summary>\n            The first method call or member access will be the \n            last segment of the expression (depth-first traversal), \n            which is the one we have to Setup rather than FluentMock.\n            And the last one is the one we have to Mock.Get rather \n            than FluentMock.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Mock\">\n            <summary>\n\t\t\tBase class for mocks and static helper class with methods that\n\t\t\tapply to mocked objects, such as <see cref=\"M:Moq.Mock.Get``1(``0)\"/> to\n\t\t\tretrieve a <see cref=\"T:Moq.Mock`1\"/> from an object instance.\n\t\t</summary>\n        </member>\n        <member name=\"M:Moq.Mock.Of``1\">\n            <summary>\n            Creates an mock object of the indicated type.\n            </summary>\n            <typeparam name=\"T\">The type of the mocked object.</typeparam>\n            <returns>The mocked object created.</returns>\n        </member>\n        <member name=\"M:Moq.Mock.Of``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})\">\n            <summary>\n            Creates an mock object of the indicated type.\n            </summary>\n            <param name=\"predicate\">The predicate with the specification of how the mocked object should behave.</param>\n            <typeparam name=\"T\">The type of the mocked object.</typeparam>\n            <returns>The mocked object created.</returns>\n        </member>\n        <member name=\"M:Moq.Mock.#ctor\">\n            <summary>\n\t\t\tInitializes a new instance of the <see cref=\"T:Moq.Mock\"/> class.\n\t\t</summary>\n        </member>\n        <member name=\"M:Moq.Mock.Get``1(``0)\">\n            <summary>\n\t\t\tRetrieves the mock object for the given object instance.\n\t\t</summary><typeparam name=\"T\">\n\t\t\tType of the mock to retrieve. Can be omitted as it's inferred\n\t\t\tfrom the object instance passed in as the <paramref name=\"mocked\"/> instance.\n\t\t</typeparam><param name=\"mocked\">The instance of the mocked object.</param><returns>The mock associated with the mocked object.</returns><exception cref=\"T:System.ArgumentException\">\n\t\t\tThe received <paramref name=\"mocked\"/> instance\n\t\t\twas not created by Moq.\n\t\t</exception><example group=\"advanced\">\n\t\t\tThe following example shows how to add a new setup to an object\n\t\t\tinstance which is not the original <see cref=\"T:Moq.Mock`1\"/> but rather\n\t\t\tthe object associated with it:\n\t\t\t<code>\n\t\t\t\t// Typed instance, not the mock, is retrieved from some test API.\n\t\t\t\tHttpContextBase context = GetMockContext();\n\n\t\t\t\t// context.Request is the typed object from the \"real\" API\n\t\t\t\t// so in order to add a setup to it, we need to get\n\t\t\t\t// the mock that \"owns\" it\n\t\t\t\tMock&lt;HttpRequestBase&gt; request = Mock.Get(context.Request);\n\t\t\t\tmock.Setup(req =&gt; req.AppRelativeCurrentExecutionFilePath)\n\t\t\t\t\t .Returns(tempUrl);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock.OnGetObject\">\n            <summary>\n\t\t\tReturns the mocked object value.\n\t\t</summary>\n        </member>\n        <member name=\"M:Moq.Mock.Verify\">\n            <summary>\n\t\t\tVerifies that all verifiable expectations have been met.\n\t\t</summary><example group=\"verification\">\n\t\t\tThis example sets up an expectation and marks it as verifiable. After\n\t\t\tthe mock is used, a <c>Verify()</c> call is issued on the mock\n\t\t\tto ensure the method in the setup was invoked:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IWarehouse&gt;();\n\t\t\t\tthis.Setup(x =&gt; x.HasInventory(TALISKER, 50)).Verifiable().Returns(true);\n\t\t\t\t...\n\t\t\t\t// other test code\n\t\t\t\t...\n\t\t\t\t// Will throw if the test code has didn't call HasInventory.\n\t\t\t\tthis.Verify();\n\t\t\t</code>\n\t\t</example><exception cref=\"T:Moq.MockException\">Not all verifiable expectations were met.</exception>\n        </member>\n        <member name=\"M:Moq.Mock.VerifyAll\">\n            <summary>\n\t\t\tVerifies all expectations regardless of whether they have\n\t\t\tbeen flagged as verifiable.\n\t\t</summary><example group=\"verification\">\n\t\t\tThis example sets up an expectation without marking it as verifiable. After\n\t\t\tthe mock is used, a <see cref=\"M:Moq.Mock.VerifyAll\"/> call is issued on the mock\n\t\t\tto ensure that all expectations are met:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IWarehouse&gt;();\n\t\t\t\tthis.Setup(x =&gt; x.HasInventory(TALISKER, 50)).Returns(true);\n\t\t\t\t...\n\t\t\t\t// other test code\n\t\t\t\t...\n\t\t\t\t// Will throw if the test code has didn't call HasInventory, even\n\t\t\t\t// that expectation was not marked as verifiable.\n\t\t\t\tthis.VerifyAll();\n\t\t\t</code>\n\t\t</example><exception cref=\"T:Moq.MockException\">At least one expectation was not met.</exception>\t\t\n        </member>\n        <member name=\"M:Moq.Mock.GetInterceptor(System.Linq.Expressions.Expression,Moq.Mock)\">\n            <summary>\n            Gets the interceptor target for the given expression and root mock, \n            building the intermediate hierarchy of mock objects if necessary.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mock.DoRaise(System.Reflection.EventInfo,System.EventArgs)\">\n            <summary>\n            Raises the associated event with the given \n            event argument data.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mock.DoRaise(System.Reflection.EventInfo,System.Object[])\">\n            <summary>\n            Raises the associated event with the given \n            event argument data.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mock.As``1\">\n            <summary>\n\t\t\tAdds an interface implementation to the mock,\n\t\t\tallowing setups to be specified for it.\n\t\t</summary><remarks>\n\t\t\tThis method can only be called before the first use\n\t\t\tof the mock <see cref=\"P:Moq.Mock.Object\"/> property, at which\n\t\t\tpoint the runtime type has already been generated\n\t\t\tand no more interfaces can be added to it.\n\t\t\t<para>\n\t\t\t\tAlso, <typeparamref name=\"TInterface\"/> must be an\n\t\t\t\tinterface and not a class, which must be specified\n\t\t\t\twhen creating the mock instead.\n\t\t\t</para>\n\t\t</remarks><exception cref=\"T:System.InvalidOperationException\">\n\t\t\tThe mock type\n\t\t\thas already been generated by accessing the <see cref=\"P:Moq.Mock.Object\"/> property.\n\t\t</exception><exception cref=\"T:System.ArgumentException\">\n\t\t\tThe <typeparamref name=\"TInterface\"/> specified\n\t\t\tis not an interface.\n\t\t</exception><example>\n\t\t\tThe following example creates a mock for the main interface\n\t\t\tand later adds <see cref=\"T:System.IDisposable\"/> to it to verify\n\t\t\tit's called by the consumer code:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IProcessor&gt;();\n\t\t\t\tmock.Setup(x =&gt; x.Execute(\"ping\"));\n\n\t\t\t\t// add IDisposable interface\n\t\t\t\tvar disposable = mock.As&lt;IDisposable&gt;();\n\t\t\t\tdisposable.Setup(d =&gt; d.Dispose()).Verifiable();\n\t\t\t</code>\n\t\t</example><typeparam name=\"TInterface\">Type of interface to cast the mock to.</typeparam>\n        </member>\n        <member name=\"M:Moq.Mock.SetReturnsDefault``1(``0)\">\n            <!-- No matching elements were found for the following include tag --><include file=\"Mock.Generic.xdoc\" path=\"docs/doc[@for=&quot;Mock.SetReturnDefault{TReturn}&quot;]/*\"/>\n        </member>\n        <member name=\"P:Moq.Mock.Behavior\">\n            <summary>\n\t\t\tBehavior of the mock, according to the value set in the constructor.\n\t\t</summary>\n        </member>\n        <member name=\"P:Moq.Mock.CallBase\">\n            <summary>\n\t\t\tWhether the base member virtual implementation will be called\n\t\t\tfor mocked classes if no setup is matched. Defaults to <see langword=\"false\"/>.\n\t\t</summary>\n        </member>\n        <member name=\"P:Moq.Mock.DefaultValue\">\n            <summary>\n\t\t\tSpecifies the behavior to use when returning default values for\n\t\t\tunexpected invocations on loose mocks.\n\t\t</summary>\n        </member>\n        <member name=\"P:Moq.Mock.Object\">\n            <summary>\n\t\t\tGets the mocked object instance.\n\t\t</summary>\n        </member>\n        <member name=\"P:Moq.Mock.MockedType\">\n            <summary>\n            Retrieves the type of the mocked object, its generic type argument.\n            This is used in the auto-mocking of hierarchy access.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Mock.DefaultValueProvider\">\n            <summary>\n            Specifies the class that will determine the default \n            value to return when invocations are made that \n            have no setups and need to return a default \n            value (for loose mocks).\n            </summary>\n        </member>\n        <member name=\"P:Moq.Mock.ImplementedInterfaces\">\n            <summary>\n            Exposes the list of extra interfaces implemented by the mock.\n            </summary>\n        </member>\n        <member name=\"T:Moq.MockRepository\">\n            <summary>\n            Utility repository class to use to construct multiple \n            mocks when consistent verification is \n            desired for all of them.\n            </summary>\n            <remarks>\n            If multiple mocks will be created during a test, passing \n            the desired <see cref=\"T:Moq.MockBehavior\"/> (if different than the \n            <see cref=\"F:Moq.MockBehavior.Default\"/> or the one \n            passed to the repository constructor) and later verifying each\n            mock can become repetitive and tedious.\n            <para>\n            This repository class helps in that scenario by providing a \n            simplified creation of multiple mocks with a default \n            <see cref=\"T:Moq.MockBehavior\"/> (unless overriden by calling \n            <see cref=\"M:Moq.MockFactory.Create``1(Moq.MockBehavior)\"/>) and posterior verification.\n            </para>\n            </remarks>\n            <example group=\"repository\">\n            The following is a straightforward example on how to \n            create and automatically verify strict mocks using a <see cref=\"T:Moq.MockRepository\"/>:\n            <code>\n            var repository = new MockRepository(MockBehavior.Strict);\n            \n            var foo = repository.Create&lt;IFoo&gt;();\n            var bar = repository.Create&lt;IBar&gt;();\n            \n            // no need to call Verifiable() on the setup \n            // as we'll be validating all of them anyway.\n            foo.Setup(f =&gt; f.Do());\n            bar.Setup(b =&gt; b.Redo());\n            \n            // exercise the mocks here\n            \n            repository.VerifyAll(); \n            // At this point all setups are already checked \n            // and an optional MockException might be thrown. \n            // Note also that because the mocks are strict, any invocation \n            // that doesn't have a matching setup will also throw a MockException.\n            </code>\n            The following examples shows how to setup the repository \n            to create loose mocks and later verify only verifiable setups:\n            <code>\n            var repository = new MockRepository(MockBehavior.Loose);\n            \n            var foo = repository.Create&lt;IFoo&gt;();\n            var bar = repository.Create&lt;IBar&gt;();\n            \n            // this setup will be verified when we verify the repository\n            foo.Setup(f =&gt; f.Do()).Verifiable();\n            \t\n            // this setup will NOT be verified \n            foo.Setup(f =&gt; f.Calculate());\n            \t\n            // this setup will be verified when we verify the repository\n            bar.Setup(b =&gt; b.Redo()).Verifiable();\n            \n            // exercise the mocks here\n            // note that because the mocks are Loose, members \n            // called in the interfaces for which no matching\n            // setups exist will NOT throw exceptions, \n            // and will rather return default values.\n            \n            repository.Verify();\n            // At this point verifiable setups are already checked \n            // and an optional MockException might be thrown.\n            </code>\n            The following examples shows how to setup the repository with a \n            default strict behavior, overriding that default for a \n            specific mock:\n            <code>\n            var repository = new MockRepository(MockBehavior.Strict);\n            \n            // this particular one we want loose\n            var foo = repository.Create&lt;IFoo&gt;(MockBehavior.Loose);\n            var bar = repository.Create&lt;IBar&gt;();\n            \n            // specify setups\n            \n            // exercise the mocks here\n            \n            repository.Verify();\n            </code>\n            </example>\n            <seealso cref=\"T:Moq.MockBehavior\"/>\n        </member>\n        <member name=\"T:Moq.MockFactory\">\n            <summary>\n            Utility factory class to use to construct multiple \n            mocks when consistent verification is \n            desired for all of them.\n            </summary>\n            <remarks>\n            If multiple mocks will be created during a test, passing \n            the desired <see cref=\"T:Moq.MockBehavior\"/> (if different than the \n            <see cref=\"F:Moq.MockBehavior.Default\"/> or the one \n            passed to the factory constructor) and later verifying each\n            mock can become repetitive and tedious.\n            <para>\n            This factory class helps in that scenario by providing a \n            simplified creation of multiple mocks with a default \n            <see cref=\"T:Moq.MockBehavior\"/> (unless overriden by calling \n            <see cref=\"M:Moq.MockFactory.Create``1(Moq.MockBehavior)\"/>) and posterior verification.\n            </para>\n            </remarks>\n            <example group=\"factory\">\n            The following is a straightforward example on how to \n            create and automatically verify strict mocks using a <see cref=\"T:Moq.MockFactory\"/>:\n            <code>\n            var factory = new MockFactory(MockBehavior.Strict);\n            \n            var foo = factory.Create&lt;IFoo&gt;();\n            var bar = factory.Create&lt;IBar&gt;();\n            \n            // no need to call Verifiable() on the setup \n            // as we'll be validating all of them anyway.\n            foo.Setup(f =&gt; f.Do());\n            bar.Setup(b =&gt; b.Redo());\n            \n            // exercise the mocks here\n            \n            factory.VerifyAll(); \n            // At this point all setups are already checked \n            // and an optional MockException might be thrown. \n            // Note also that because the mocks are strict, any invocation \n            // that doesn't have a matching setup will also throw a MockException.\n            </code>\n            The following examples shows how to setup the factory \n            to create loose mocks and later verify only verifiable setups:\n            <code>\n            var factory = new MockFactory(MockBehavior.Loose);\n            \n            var foo = factory.Create&lt;IFoo&gt;();\n            var bar = factory.Create&lt;IBar&gt;();\n            \n            // this setup will be verified when we verify the factory\n            foo.Setup(f =&gt; f.Do()).Verifiable();\n            \t\n            // this setup will NOT be verified \n            foo.Setup(f =&gt; f.Calculate());\n            \t\n            // this setup will be verified when we verify the factory\n            bar.Setup(b =&gt; b.Redo()).Verifiable();\n            \n            // exercise the mocks here\n            // note that because the mocks are Loose, members \n            // called in the interfaces for which no matching\n            // setups exist will NOT throw exceptions, \n            // and will rather return default values.\n            \n            factory.Verify();\n            // At this point verifiable setups are already checked \n            // and an optional MockException might be thrown.\n            </code>\n            The following examples shows how to setup the factory with a \n            default strict behavior, overriding that default for a \n            specific mock:\n            <code>\n            var factory = new MockFactory(MockBehavior.Strict);\n            \n            // this particular one we want loose\n            var foo = factory.Create&lt;IFoo&gt;(MockBehavior.Loose);\n            var bar = factory.Create&lt;IBar&gt;();\n            \n            // specify setups\n            \n            // exercise the mocks here\n            \n            factory.Verify();\n            </code>\n            </example>\n            <seealso cref=\"T:Moq.MockBehavior\"/>\n        </member>\n        <member name=\"M:Moq.MockFactory.#ctor(Moq.MockBehavior)\">\n            <summary>\n            Initializes the factory with the given <paramref name=\"defaultBehavior\"/> \n            for newly created mocks from the factory.\n            </summary>\n            <param name=\"defaultBehavior\">The behavior to use for mocks created \n            using the <see cref=\"M:Moq.MockFactory.Create``1\"/> factory method if not overriden \n            by using the <see cref=\"M:Moq.MockFactory.Create``1(Moq.MockBehavior)\"/> overload.</param>\n        </member>\n        <member name=\"M:Moq.MockFactory.Create``1\">\n            <summary>\n            Creates a new mock with the default <see cref=\"T:Moq.MockBehavior\"/> \n            specified at factory construction time.\n            </summary>\n            <typeparam name=\"T\">Type to mock.</typeparam>\n            <returns>A new <see cref=\"T:Moq.Mock`1\"/>.</returns>\n            <example ignore=\"true\">\n            <code>\n            var factory = new MockFactory(MockBehavior.Strict);\n            \n            var foo = factory.Create&lt;IFoo&gt;();\n            // use mock on tests\n            \n            factory.VerifyAll();\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.MockFactory.Create``1(System.Object[])\">\n            <summary>\n            Creates a new mock with the default <see cref=\"T:Moq.MockBehavior\"/> \n            specified at factory construction time and with the \n            the given constructor arguments for the class.\n            </summary>\n            <remarks>\n            The mock will try to find the best match constructor given the \n            constructor arguments, and invoke that to initialize the instance. \n            This applies only to classes, not interfaces.\n            </remarks>\n            <typeparam name=\"T\">Type to mock.</typeparam>\n            <param name=\"args\">Constructor arguments for mocked classes.</param>\n            <returns>A new <see cref=\"T:Moq.Mock`1\"/>.</returns>\n            <example ignore=\"true\">\n            <code>\n            var factory = new MockFactory(MockBehavior.Default);\n            \n            var mock = factory.Create&lt;MyBase&gt;(\"Foo\", 25, true);\n            // use mock on tests\n            \n            factory.Verify();\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.MockFactory.Create``1(Moq.MockBehavior)\">\n            <summary>\n            Creates a new mock with the given <paramref name=\"behavior\"/>.\n            </summary>\n            <typeparam name=\"T\">Type to mock.</typeparam>\n            <param name=\"behavior\">Behavior to use for the mock, which overrides \n            the default behavior specified at factory construction time.</param>\n            <returns>A new <see cref=\"T:Moq.Mock`1\"/>.</returns>\n            <example group=\"factory\">\n            The following example shows how to create a mock with a different \n            behavior to that specified as the default for the factory:\n            <code>\n            var factory = new MockFactory(MockBehavior.Strict);\n            \n            var foo = factory.Create&lt;IFoo&gt;(MockBehavior.Loose);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.MockFactory.Create``1(Moq.MockBehavior,System.Object[])\">\n            <summary>\n            Creates a new mock with the given <paramref name=\"behavior\"/> \n            and with the the given constructor arguments for the class.\n            </summary>\n            <remarks>\n            The mock will try to find the best match constructor given the \n            constructor arguments, and invoke that to initialize the instance. \n            This applies only to classes, not interfaces.\n            </remarks>\n            <typeparam name=\"T\">Type to mock.</typeparam>\n            <param name=\"behavior\">Behavior to use for the mock, which overrides \n            the default behavior specified at factory construction time.</param>\n            <param name=\"args\">Constructor arguments for mocked classes.</param>\n            <returns>A new <see cref=\"T:Moq.Mock`1\"/>.</returns>\n            <example group=\"factory\">\n            The following example shows how to create a mock with a different \n            behavior to that specified as the default for the factory, passing \n            constructor arguments:\n            <code>\n            var factory = new MockFactory(MockBehavior.Default);\n            \n            var mock = factory.Create&lt;MyBase&gt;(MockBehavior.Strict, \"Foo\", 25, true);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.MockFactory.CreateMock``1(Moq.MockBehavior,System.Object[])\">\n            <summary>\n            Implements creation of a new mock within the factory.\n            </summary>\n            <typeparam name=\"T\">Type to mock.</typeparam>\n            <param name=\"behavior\">The behavior for the new mock.</param>\n            <param name=\"args\">Optional arguments for the construction of the mock.</param>\n        </member>\n        <member name=\"M:Moq.MockFactory.Verify\">\n            <summary>\n            Verifies all verifiable expectations on all mocks created \n            by this factory.\n            </summary>\n            <seealso cref=\"M:Moq.Mock.Verify\"/>\n            <exception cref=\"T:Moq.MockException\">One or more mocks had expectations that were not satisfied.</exception>\n        </member>\n        <member name=\"M:Moq.MockFactory.VerifyAll\">\n            <summary>\n            Verifies all verifiable expectations on all mocks created \n            by this factory.\n            </summary>\n            <seealso cref=\"M:Moq.Mock.Verify\"/>\n            <exception cref=\"T:Moq.MockException\">One or more mocks had expectations that were not satisfied.</exception>\n        </member>\n        <member name=\"M:Moq.MockFactory.VerifyMocks(System.Action{Moq.Mock})\">\n            <summary>\n            Invokes <paramref name=\"verifyAction\"/> for each mock \n            in <see cref=\"P:Moq.MockFactory.Mocks\"/>, and accumulates the resulting \n            <see cref=\"T:Moq.MockVerificationException\"/> that might be \n            thrown from the action.\n            </summary>\n            <param name=\"verifyAction\">The action to execute against \n            each mock.</param>\n        </member>\n        <member name=\"P:Moq.MockFactory.CallBase\">\n            <summary>\n            Whether the base member virtual implementation will be called \n            for mocked classes if no setup is matched. Defaults to <see langword=\"false\"/>.\n            </summary>\n        </member>\n        <member name=\"P:Moq.MockFactory.DefaultValue\">\n            <summary>\n            Specifies the behavior to use when returning default values for \n            unexpected invocations on loose mocks.\n            </summary>\n        </member>\n        <member name=\"P:Moq.MockFactory.Mocks\">\n            <summary>\n            Gets the mocks that have been created by this factory and \n            that will get verified together.\n            </summary>\n        </member>\n        <member name=\"M:Moq.MockRepository.Of``1\">\n            <summary>\n            Access the universe of mocks of the given type, to retrieve those \n            that behave according to the LINQ query specification.\n            </summary>\n            <typeparam name=\"T\">The type of the mocked object to query.</typeparam>\n        </member>\n        <member name=\"M:Moq.MockRepository.Of``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})\">\n            <summary>\n            Access the universe of mocks of the given type, to retrieve those \n            that behave according to the LINQ query specification.\n            </summary>\n            <param name=\"specification\">The predicate with the setup expressions.</param>\n            <typeparam name=\"T\">The type of the mocked object to query.</typeparam>\n        </member>\n        <member name=\"M:Moq.MockRepository.OneOf``1\">\n            <summary>\n            Creates an mock object of the indicated type.\n            </summary>\n            <typeparam name=\"T\">The type of the mocked object.</typeparam>\n            <returns>The mocked object created.</returns>\n        </member>\n        <member name=\"M:Moq.MockRepository.OneOf``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})\">\n            <summary>\n            Creates an mock object of the indicated type.\n            </summary>\n            <param name=\"specification\">The predicate with the setup expressions.</param>\n            <typeparam name=\"T\">The type of the mocked object.</typeparam>\n            <returns>The mocked object created.</returns>\n        </member>\n        <member name=\"M:Moq.MockRepository.CreateMockQuery``1\">\n            <summary>\n            Creates the mock query with the underlying queriable implementation.\n            </summary>\n        </member>\n        <member name=\"M:Moq.MockRepository.CreateQueryable``1\">\n            <summary>\n            Wraps the enumerator inside a queryable.\n            </summary>\n        </member>\n        <member name=\"M:Moq.MockRepository.CreateMocks``1\">\n            <summary>\n            Method that is turned into the actual call from .Query{T}, to \n            transform the queryable query into a normal enumerable query.\n            This method is never used directly by consumers.\n            </summary>\n        </member>\n        <member name=\"M:Moq.MockRepository.#ctor(Moq.MockBehavior)\">\n            <summary>\n            Initializes the repository with the given <paramref name=\"defaultBehavior\"/> \n            for newly created mocks from the repository.\n            </summary>\n            <param name=\"defaultBehavior\">The behavior to use for mocks created \n            using the <see cref=\"M:Moq.MockFactory.Create``1\"/> repository method if not overriden \n            by using the <see cref=\"M:Moq.MockFactory.Create``1(Moq.MockBehavior)\"/> overload.</param>\n        </member>\n        <member name=\"T:Moq.EmptyDefaultValueProvider\">\n            <summary>\n            A <see cref=\"T:Moq.IDefaultValueProvider\"/> that returns an empty default value \n            for invocations that do not have setups or return values, with loose mocks.\n            This is the default behavior for a mock.\n            </summary>\n        </member>\n        <member name=\"T:Moq.IDefaultValueProvider\">\n            <summary>\n\t\t\tInterface to be implemented by classes that determine the\n\t\t\tdefault value of non-expected invocations.\n\t\t</summary>\n        </member>\n        <member name=\"M:Moq.IDefaultValueProvider.DefineDefault``1(``0)\">\n            <summary>\n\t\t\tDefines the default value to return in all the methods returning <typeparamref name=\"T\"/>.\n\t\t</summary><typeparam name=\"T\">The type of the return value.</typeparam><param name=\"value\">The value to set as default.</param>\n        </member>\n        <member name=\"M:Moq.IDefaultValueProvider.ProvideDefault(System.Reflection.MethodInfo)\">\n            <summary>\n\t\t\tProvides a value for the given member and arguments.\n\t\t</summary><param name=\"member\">\n\t\t\tThe member to provide a default\tvalue for.\n\t\t</param>\n        </member>\n        <member name=\"T:Moq.ExpressionStringBuilder\">\n            <summary>\n            The intention of <see cref=\"T:Moq.ExpressionStringBuilder\"/> is to create a more readable \n            string representation for the failure message.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Language.Flow.ICallbackResult\">\n            <summary>\n            Implements the fluent API.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Language.IThrows\">\n            <summary>\n            Defines the <c>Throws</c> verb.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Language.IThrows.Throws(System.Exception)\">\n            <summary>\n            Specifies the exception to throw when the method is invoked.\n            </summary>\n            <param name=\"exception\">Exception instance to throw.</param>\n            <example>\n            This example shows how to throw an exception when the method is \n            invoked with an empty string argument:\n            <code>\n            mock.Setup(x =&gt; x.Execute(\"\"))\n                .Throws(new ArgumentException());\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IThrows.Throws``1\">\n            <summary>\n            Specifies the type of exception to throw when the method is invoked.\n            </summary>\n            <typeparam name=\"TException\">Type of exception to instantiate and throw when the setup is matched.</typeparam>\n            <example>\n            This example shows how to throw an exception when the method is \n            invoked with an empty string argument:\n            <code>\n            mock.Setup(x =&gt; x.Execute(\"\"))\n                .Throws&lt;ArgumentException&gt;();\n            </code>\n            </example>\n        </member>\n        <member name=\"T:Moq.Language.Flow.IThrowsResult\">\n            <summary>\n            Implements the fluent API.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Language.IOccurrence\">\n            <summary>\n            Defines occurrence members to constraint setups.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Language.IOccurrence.AtMostOnce\">\n            <summary>\n            The expected invocation can happen at most once.\n            </summary>\n            <example>\n            <code>\n            var mock = new Mock&lt;ICommand&gt;();\n            mock.Setup(foo => foo.Execute(\"ping\"))\n                .AtMostOnce();\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IOccurrence.AtMost(System.Int32)\">\n            <summary>\n            The expected invocation can happen at most specified number of times.\n            </summary>\n            <param name=\"callCount\">The number of times to accept calls.</param>\n            <example>\n            <code>\n            var mock = new Mock&lt;ICommand&gt;();\n            mock.Setup(foo => foo.Execute(\"ping\"))\n                .AtMost( 5 );\n            </code>\n            </example>\n        </member>\n        <member name=\"T:Moq.Language.IVerifies\">\n            <summary>\n            Defines the <c>Verifiable</c> verb.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Language.IVerifies.Verifiable\">\n            <summary>\n            Marks the expectation as verifiable, meaning that a call \n            to <see cref=\"M:Moq.Mock.Verify\"/> will check if this particular \n            expectation was met.\n            </summary>\n            <example>\n            The following example marks the expectation as verifiable:\n            <code>\n            mock.Expect(x =&gt; x.Execute(\"ping\"))\n                .Returns(true)\n                .Verifiable();\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IVerifies.Verifiable(System.String)\">\n            <summary>\n            Marks the expectation as verifiable, meaning that a call \n            to <see cref=\"M:Moq.Mock.Verify\"/> will check if this particular \n            expectation was met, and specifies a message for failures.\n            </summary>\n            <example>\n            The following example marks the expectation as verifiable:\n            <code>\n            mock.Expect(x =&gt; x.Execute(\"ping\"))\n                .Returns(true)\n                .Verifiable(\"Ping should be executed always!\");\n            </code>\n            </example>\n        </member>\n        <member name=\"T:Moq.Language.Flow.ISetup`1\">\n            <summary>\n            Implements the fluent API.\n            </summary>\n        </member>\n        <member name=\"T:Moq.MethodCallReturn\">\n            <devdoc>\n            We need this non-generics base class so that \n            we can use <see cref=\"P:Moq.MethodCallReturn.HasReturnValue\"/> from \n            generic code.\n            </devdoc>\n        </member>\n        <member name=\"T:Moq.Language.Flow.ISetup`2\">\n            <summary>\n            Implements the fluent API.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Language.Flow.IReturnsThrows`2\">\n            <summary>\n            Implements the fluent API.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Language.Flow.ISetupGetter`2\">\n            <summary>\n            Implements the fluent API.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Language.ICallbackGetter`2\">\n            <summary>\n            Defines the <c>Callback</c> verb for property getter setups.\n            </summary>\n            <seealso cref=\"M:Moq.Mock`1.SetupGet``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\"/>\n            <typeparam name=\"TMock\">Mocked type.</typeparam>\n            <typeparam name=\"TProperty\">Type of the property.</typeparam>\n        </member>\n        <member name=\"M:Moq.Language.ICallbackGetter`2.Callback(System.Action)\">\n            <summary>\n            Specifies a callback to invoke when the property is retrieved.\n            </summary>\n            <param name=\"action\">Callback method to invoke.</param>\n            <example>\n            Invokes the given callback with the property value being set. \n            <code>\n            mock.SetupGet(x => x.Suspended)\n                .Callback(() => called = true)\n                .Returns(true);\n            </code>\n            </example>\n        </member>\n        <member name=\"T:Moq.Language.Flow.IReturnsThrowsGetter`2\">\n            <summary>\n            Implements the fluent API.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Language.IReturnsGetter`2\">\n            <summary>\n            Defines the <c>Returns</c> verb for property get setups.\n            </summary>\n            <typeparam name=\"TMock\">Mocked type.</typeparam>\n            <typeparam name=\"TProperty\">Type of the property.</typeparam>\n        </member>\n        <member name=\"M:Moq.Language.IReturnsGetter`2.Returns(`1)\">\n            <summary>\n            Specifies the value to return.\n            </summary>\n            <param name=\"value\">The value to return, or <see langword=\"null\"/>.</param>\n            <example>\n            Return a <c>true</c> value from the property getter call:\n            <code>\n            mock.SetupGet(x => x.Suspended)\n                .Returns(true);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Language.IReturnsGetter`2.Returns(System.Func{`1})\">\n            <summary>\n            Specifies a function that will calculate the value to return for the property.\n            </summary>\n            <param name=\"valueFunction\">The function that will calculate the return value.</param>\n            <example>\n            Return a calculated value when the property is retrieved:\n            <code>\n            mock.SetupGet(x => x.Suspended)\n                .Returns(() => returnValues[0]);\n            </code>\n            The lambda expression to retrieve the return value is lazy-executed, \n            meaning that its value may change depending on the moment the property  \n            is retrieved and the value the <c>returnValues</c> array has at \n            that moment.\n            </example>\n        </member>\n        <member name=\"T:Moq.Language.Flow.IReturnsResult`1\">\n            <summary>\n            Implements the fluent API.\n            </summary>\n        </member>\n        <member name=\"T:Moq.MockSequence\">\n            <summary>\n            Helper class to setup a full trace between many mocks\n            </summary>\n        </member>\n        <member name=\"M:Moq.MockSequence.#ctor\">\n            <summary>\n            Initialize a trace setup\n            </summary>\n        </member>\n        <member name=\"P:Moq.MockSequence.Cyclic\">\n            <summary>\n            Allow sequence to be repeated\n            </summary>\n        </member>\n        <member name=\"T:Moq.MockSequenceHelper\">\n            <summary>\n            define nice api\n            </summary>\n        </member>\n        <member name=\"M:Moq.MockSequenceHelper.InSequence``1(Moq.Mock{``0},Moq.MockSequence)\">\n            <summary>\n            Perform an expectation in the trace.\n            </summary>\n        </member>\n        <member name=\"T:Moq.MatcherAttribute\">\n            <summary>\n            Marks a method as a matcher, which allows complete replacement \n            of the built-in <see cref=\"T:Moq.It\"/> class with your own argument \n            matching rules.\n            </summary>\n            <remarks>\n            <b>This feature has been deprecated in favor of the new \n            and simpler <see cref=\"T:Moq.Match`1\"/>.\n            </b>\n            <para>\n            The argument matching is used to determine whether a concrete \n            invocation in the mock matches a given setup. This \n            matching mechanism is fully extensible. \n            </para>\n            <para>\n            There are two parts of a matcher: the compiler matcher \n            and the runtime matcher.\n            <list type=\"bullet\">\n            <item>\n            <term>Compiler matcher</term>\n            <description>Used to satisfy the compiler requirements for the \n            argument. Needs to be a method optionally receiving any arguments \n            you might need for the matching, but with a return type that \n            matches that of the argument. \n            <para>\n            Let's say I want to match a lists of orders that contains \n            a particular one. I might create a compiler matcher like the following:\n            </para>\n            <code>\n            public static class Orders\n            {\n              [Matcher]\n              public static IEnumerable&lt;Order&gt; Contains(Order order)\n              {\n                return null;\n              }\n            }\n            </code>\n            Now we can invoke this static method instead of an argument in an \n            invocation:\n            <code>\n            var order = new Order { ... };\n            var mock = new Mock&lt;IRepository&lt;Order&gt;&gt;();\n            \n            mock.Setup(x =&gt; x.Save(Orders.Contains(order)))\n                .Throws&lt;ArgumentException&gt;();\n            </code>\n            Note that the return value from the compiler matcher is irrelevant. \n            This method will never be called, and is just used to satisfy the \n            compiler and to signal Moq that this is not a method that we want \n            to be invoked at runtime.\n            </description>\n            </item>\n            <item>\n            <term>Runtime matcher</term>\n            <description>\n            The runtime matcher is the one that will actually perform evaluation \n            when the test is run, and is defined by convention to have the \n            same signature as the compiler matcher, but where the return \n            value is the first argument to the call, which contains the \n            object received by the actual invocation at runtime:\n            <code>\n              public static bool Contains(IEnumerable&lt;Order&gt; orders, Order order)\n              {\n                return orders.Contains(order);\n              }\n            </code>\n            At runtime, the mocked method will be invoked with a specific \n            list of orders. This value will be passed to this runtime \n            matcher as the first argument, while the second argument is the \n            one specified in the setup (<c>x.Save(Orders.Contains(order))</c>).\n            <para>\n            The boolean returned determines whether the given argument has been \n            matched. If all arguments to the expected method are matched, then \n            the setup matches and is evaluated.\n            </para>\n            </description>\n            </item>\n            </list>\n            </para>\n            Using this extensible infrastructure, you can easily replace the entire \n            <see cref=\"T:Moq.It\"/> set of matchers with your own. You can also avoid the \n            typical (and annoying) lengthy expressions that result when you have \n            multiple arguments that use generics.\n            </remarks>\n            <example>\n            The following is the complete example explained above:\n            <code>\n            public static class Orders\n            {\n              [Matcher]\n              public static IEnumerable&lt;Order&gt; Contains(Order order)\n              {\n                return null;\n              }\n              \n              public static bool Contains(IEnumerable&lt;Order&gt; orders, Order order)\n              {\n                return orders.Contains(order);\n              }\n            }\n            </code>\n            And the concrete test using this matcher:\n            <code>\n            var order = new Order { ... };\n            var mock = new Mock&lt;IRepository&lt;Order&gt;&gt;();\n            \n            mock.Setup(x =&gt; x.Save(Orders.Contains(order)))\n                .Throws&lt;ArgumentException&gt;();\n                \n            // use mock, invoke Save, and have the matcher filter.\n            </code>\n            </example>\n        </member>\n        <member name=\"T:Moq.Mock`1\">\n            <summary>\n\t\t\tProvides a mock implementation of <typeparamref name=\"T\"/>.\n\t\t</summary><remarks>\n\t\t\tAny interface type can be used for mocking, but for classes, only abstract and virtual members can be mocked.\n\t\t\t<para>\n\t\t\t\tThe behavior of the mock with regards to the setups and the actual calls is determined\n\t\t\t\tby the optional <see cref=\"T:Moq.MockBehavior\"/> that can be passed to the <see cref=\"M:Moq.Mock`1.#ctor(Moq.MockBehavior)\"/>\n\t\t\t\tconstructor.\n\t\t\t</para>\n\t\t</remarks><typeparam name=\"T\">Type to mock, which can be an interface or a class.</typeparam><example group=\"overview\" order=\"0\">\n\t\t\tThe following example shows establishing setups with specific values\n\t\t\tfor method invocations:\n\t\t\t<code>\n\t\t\t\t// Arrange\n\t\t\t\tvar order = new Order(TALISKER, 50);\n\t\t\t\tvar mock = new Mock&lt;IWarehouse&gt;();\n\n\t\t\t\tmock.Setup(x =&gt; x.HasInventory(TALISKER, 50)).Returns(true);\n\n\t\t\t\t// Act\n\t\t\t\torder.Fill(mock.Object);\n\n\t\t\t\t// Assert\n\t\t\t\tAssert.True(order.IsFilled);\n\t\t\t</code>\n\t\t\tThe following example shows how to use the <see cref=\"T:Moq.It\"/> class\n\t\t\tto specify conditions for arguments instead of specific values:\n\t\t\t<code>\n\t\t\t\t// Arrange\n\t\t\t\tvar order = new Order(TALISKER, 50);\n\t\t\t\tvar mock = new Mock&lt;IWarehouse&gt;();\n\n\t\t\t\t// shows how to expect a value within a range\n\t\t\t\tmock.Setup(x =&gt; x.HasInventory(\n\t\t\t\t\t\t\tIt.IsAny&lt;string&gt;(),\n\t\t\t\t\t\t\tIt.IsInRange(0, 100, Range.Inclusive)))\n\t\t\t\t\t .Returns(false);\n\n\t\t\t\t// shows how to throw for unexpected calls.\n\t\t\t\tmock.Setup(x =&gt; x.Remove(\n\t\t\t\t\t\t\tIt.IsAny&lt;string&gt;(),\n\t\t\t\t\t\t\tIt.IsAny&lt;int&gt;()))\n\t\t\t\t\t .Throws(new InvalidOperationException());\n\n\t\t\t\t// Act\n\t\t\t\torder.Fill(mock.Object);\n\n\t\t\t\t// Assert\n\t\t\t\tAssert.False(order.IsFilled);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock`1.Expect(System.Linq.Expressions.Expression{System.Action{`0}})\">\n            <summary>\n            Obsolete.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mock`1.Expect``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\">\n            <summary>\n            Obsolete.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mock`1.ExpectGet``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\">\n            <summary>\n            Obsolete.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mock`1.ExpectSet``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\">\n            <summary>\n            Obsolete.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mock`1.ExpectSet``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},``0)\">\n            <summary>\n            Obsolete.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mock`1.#ctor(System.Boolean)\">\n            <summary>\n            Ctor invoked by AsTInterface exclusively.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mock`1.#ctor\">\n            <summary>\n\t\t\tInitializes an instance of the mock with <see cref=\"F:Moq.MockBehavior.Default\">default behavior</see>.\n\t\t</summary><example>\n\t\t\t<code>var mock = new Mock&lt;IFormatProvider&gt;();</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock`1.#ctor(System.Object[])\">\n            <summary>\n\t\t\tInitializes an instance of the mock with <see cref=\"F:Moq.MockBehavior.Default\">default behavior</see> and with\n\t\t\tthe given constructor arguments for the class. (Only valid when <typeparamref name=\"T\"/> is a class)\n\t\t</summary><remarks>\n\t\t\tThe mock will try to find the best match constructor given the constructor arguments, and invoke that\n\t\t\tto initialize the instance. This applies only for classes, not interfaces.\n\t\t</remarks><example>\n\t\t\t<code>var mock = new Mock&lt;MyProvider&gt;(someArgument, 25);</code>\n\t\t</example><param name=\"args\">Optional constructor arguments if the mocked type is a class.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.#ctor(Moq.MockBehavior)\">\n            <summary>\n\t\t\tInitializes an instance of the mock with the specified <see cref=\"T:Moq.MockBehavior\">behavior</see>.\n\t\t</summary><example>\n\t\t\t<code>var mock = new Mock&lt;IFormatProvider&gt;(MockBehavior.Relaxed);</code>\n\t\t</example><param name=\"behavior\">Behavior of the mock.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.#ctor(Moq.MockBehavior,System.Object[])\">\n            <summary>\n\t\t\tInitializes an instance of the mock with a specific <see cref=\"T:Moq.MockBehavior\">behavior</see> with\n\t\t\tthe given constructor arguments for the class.\n\t\t</summary><remarks>\n\t\t\tThe mock will try to find the best match constructor given the constructor arguments, and invoke that\n\t\t\tto initialize the instance. This applies only to classes, not interfaces.\n\t\t</remarks><example>\n\t\t\t<code>var mock = new Mock&lt;MyProvider&gt;(someArgument, 25);</code>\n\t\t</example><param name=\"behavior\">Behavior of the mock.</param><param name=\"args\">Optional constructor arguments if the mocked type is a class.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.OnGetObject\">\n            <summary>\n            Returns the mocked object value.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mock`1.Setup(System.Linq.Expressions.Expression{System.Action{`0}})\">\n            <summary>\n\t\t\tSpecifies a setup on the mocked type for a call to\n\t\t\tto a void method.\n\t\t</summary><remarks>\n\t\t\tIf more than one setup is specified for the same method or property,\n\t\t\tthe latest one wins and is the one that will be executed.\n\t\t</remarks><param name=\"expression\">Lambda expression that specifies the expected method invocation.</param><example group=\"setups\">\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IProcessor&gt;();\n\t\t\t\tmock.Setup(x =&gt; x.Execute(\"ping\"));\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock`1.Setup``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\">\n            <summary>\n\t\t\tSpecifies a setup on the mocked type for a call to\n\t\t\tto a value returning method.\n\t\t</summary><typeparam name=\"TResult\">Type of the return value. Typically omitted as it can be inferred from the expression.</typeparam><remarks>\n\t\t\tIf more than one setup is specified for the same method or property,\n\t\t\tthe latest one wins and is the one that will be executed.\n\t\t</remarks><param name=\"expression\">Lambda expression that specifies the method invocation.</param><example group=\"setups\">\n\t\t\t<code>\n\t\t\t\tmock.Setup(x =&gt; x.HasInventory(\"Talisker\", 50)).Returns(true);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock`1.SetupGet``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\">\n            <summary>\n\t\t\tSpecifies a setup on the mocked type for a call to\n\t\t\tto a property getter.\n\t\t</summary><remarks>\n\t\t\tIf more than one setup is set for the same property getter,\n\t\t\tthe latest one wins and is the one that will be executed.\n\t\t</remarks><typeparam name=\"TProperty\">Type of the property. Typically omitted as it can be inferred from the expression.</typeparam><param name=\"expression\">Lambda expression that specifies the property getter.</param><example group=\"setups\">\n\t\t\t<code>\n\t\t\t\tmock.SetupGet(x =&gt; x.Suspended)\n\t\t\t\t\t .Returns(true);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock`1.SetupSet``1(System.Action{`0})\">\n            <summary>\n\t\t\tSpecifies a setup on the mocked type for a call to\n\t\t\tto a property setter.\n\t\t</summary><remarks>\n\t\t\tIf more than one setup is set for the same property setter,\n\t\t\tthe latest one wins and is the one that will be executed.\n\t\t\t<para>\n\t\t\t\tThis overloads allows the use of a callback already\n\t\t\t\ttyped for the property type.\n\t\t\t</para>\n\t\t</remarks><typeparam name=\"TProperty\">Type of the property. Typically omitted as it can be inferred from the expression.</typeparam><param name=\"setterExpression\">The Lambda expression that sets a property to a value.</param><example group=\"setups\">\n\t\t\t<code>\n\t\t\t\tmock.SetupSet(x =&gt; x.Suspended = true);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock`1.SetupSet(System.Action{`0})\">\n            <summary>\n\t\t\tSpecifies a setup on the mocked type for a call to\n\t\t\tto a property setter.\n\t\t</summary><remarks>\n\t\t\tIf more than one setup is set for the same property setter,\n\t\t\tthe latest one wins and is the one that will be executed.\n\t\t</remarks><param name=\"setterExpression\">Lambda expression that sets a property to a value.</param><example group=\"setups\">\n\t\t\t<code>\n\t\t\t\tmock.SetupSet(x =&gt; x.Suspended = true);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock`1.SetupProperty``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\">\n            <summary>\n\t\t\tSpecifies that the given property should have \"property behavior\",\n\t\t\tmeaning that setting its value will cause it to be saved and\n\t\t\tlater returned when the property is requested. (this is also\n\t\t\tknown as \"stubbing\").\n\t\t</summary><typeparam name=\"TProperty\">\n\t\t\tType of the property, inferred from the property\n\t\t\texpression (does not need to be specified).\n\t\t</typeparam><param name=\"property\">Property expression to stub.</param><example>\n\t\t\tIf you have an interface with an int property <c>Value</c>, you might\n\t\t\tstub it using the following straightforward call:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IHaveValue&gt;();\n\t\t\t\tmock.Stub(v =&gt; v.Value);\n\t\t\t</code>\n\t\t\tAfter the <c>Stub</c> call has been issued, setting and\n\t\t\tretrieving the object value will behave as expected:\n\t\t\t<code>\n\t\t\t\tIHaveValue v = mock.Object;\n\n\t\t\t\tv.Value = 5;\n\t\t\t\tAssert.Equal(5, v.Value);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock`1.SetupProperty``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},``0)\">\n            <summary>\n\t\t\tSpecifies that the given property should have \"property behavior\",\n\t\t\tmeaning that setting its value will cause it to be saved and\n\t\t\tlater returned when the property is requested. This overload\n\t\t\tallows setting the initial value for the property. (this is also\n\t\t\tknown as \"stubbing\").\n\t\t</summary><typeparam name=\"TProperty\">\n\t\t\tType of the property, inferred from the property\n\t\t\texpression (does not need to be specified).\n\t\t</typeparam><param name=\"property\">Property expression to stub.</param><param name=\"initialValue\">Initial value for the property.</param><example>\n\t\t\tIf you have an interface with an int property <c>Value</c>, you might\n\t\t\tstub it using the following straightforward call:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IHaveValue&gt;();\n\t\t\t\tmock.SetupProperty(v =&gt; v.Value, 5);\n\t\t\t</code>\n\t\t\tAfter the <c>SetupProperty</c> call has been issued, setting and\n\t\t\tretrieving the object value will behave as expected:\n\t\t\t<code>\n\t\t\t\tIHaveValue v = mock.Object;\n\t\t\t\t// Initial value was stored\n\t\t\t\tAssert.Equal(5, v.Value);\n\n\t\t\t\t// New value set which changes the initial value\n\t\t\t\tv.Value = 6;\n\t\t\t\tAssert.Equal(6, v.Value);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock`1.SetupAllProperties\">\n            <summary>\n\t\t\tSpecifies that the all properties on the mock should have \"property behavior\",\n\t\t\tmeaning that setting its value will cause it to be saved and\n\t\t\tlater returned when the property is requested. (this is also\n\t\t\tknown as \"stubbing\"). The default value for each property will be the\n\t\t\tone generated as specified by the <see cref=\"P:Moq.Mock.DefaultValue\"/> property for the mock.\n\t\t</summary><remarks>\n\t\t\tIf the mock <see cref=\"P:Moq.Mock.DefaultValue\"/> is set to <see cref=\"F:Moq.DefaultValue.Mock\"/>,\n\t\t\tthe mocked default values will also get all properties setup recursively.\n\t\t</remarks>\n        </member>\n        <member name=\"M:Moq.Mock`1.When(System.Func{System.Boolean})\">\n            <!-- No matching elements were found for the following include tag --><include file=\"Mock.Generic.xdoc\" path=\"docs/doc[@for=&quot;Mock{T}.When&quot;]/*\"/>\n        </member>\n        <member name=\"M:Moq.Mock`1.Verify(System.Linq.Expressions.Expression{System.Action{`0}})\">\n            <summary>\n\t\t\tVerifies that a specific invocation matching the given expression was performed on the mock. Use\n\t\t\tin conjuntion with the default <see cref=\"F:Moq.MockBehavior.Loose\"/>.\n\t\t</summary><example group=\"verification\">\n\t\t\tThis example assumes that the mock has been used, and later we want to verify that a given\n\t\t\tinvocation with specific parameters was performed:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IProcessor&gt;();\n\t\t\t\t// exercise mock\n\t\t\t\t//...\n\t\t\t\t// Will throw if the test code didn't call Execute with a \"ping\" string argument.\n\t\t\t\tmock.Verify(proc =&gt; proc.Execute(\"ping\"));\n\t\t\t</code>\n\t\t</example><exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception><param name=\"expression\">Expression to verify.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.Verify(System.Linq.Expressions.Expression{System.Action{`0}},Moq.Times)\">\n            <summary>\n\t\t\tVerifies that a specific invocation matching the given expression was performed on the mock. Use\n\t\t\tin conjuntion with the default <see cref=\"F:Moq.MockBehavior.Loose\"/>.\n\t\t</summary><exception cref=\"T:Moq.MockException\">\n\t\t\tThe invocation was not call the times specified by\n\t\t\t<paramref name=\"times\"/>.\n\t\t</exception><param name=\"expression\">Expression to verify.</param><param name=\"times\">The number of times a method is allowed to be called.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.Verify(System.Linq.Expressions.Expression{System.Action{`0}},System.String)\">\n            <summary>\n\t\t\tVerifies that a specific invocation matching the given expression was performed on the mock,\n\t\t\tspecifying a failure error message. Use in conjuntion with the default\n\t\t\t<see cref=\"F:Moq.MockBehavior.Loose\"/>.\n\t\t</summary><example group=\"verification\">\n\t\t\tThis example assumes that the mock has been used, and later we want to verify that a given\n\t\t\tinvocation with specific parameters was performed:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IProcessor&gt;();\n\t\t\t\t// exercise mock\n\t\t\t\t//...\n\t\t\t\t// Will throw if the test code didn't call Execute with a \"ping\" string argument.\n\t\t\t\tmock.Verify(proc =&gt; proc.Execute(\"ping\"));\n\t\t\t</code>\n\t\t</example><exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception><param name=\"expression\">Expression to verify.</param><param name=\"failMessage\">Message to show if verification fails.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.Verify(System.Linq.Expressions.Expression{System.Action{`0}},Moq.Times,System.String)\">\n            <summary>\n\t\t\tVerifies that a specific invocation matching the given expression was performed on the mock,\n\t\t\tspecifying a failure error message. Use in conjuntion with the default\n\t\t\t<see cref=\"F:Moq.MockBehavior.Loose\"/>.\n\t\t</summary><exception cref=\"T:Moq.MockException\">\n\t\t\tThe invocation was not call the times specified by\n\t\t\t<paramref name=\"times\"/>.\n\t\t</exception><param name=\"expression\">Expression to verify.</param><param name=\"times\">The number of times a method is allowed to be called.</param><param name=\"failMessage\">Message to show if verification fails.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.Verify``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\">\n            <summary>\n\t\t\tVerifies that a specific invocation matching the given expression was performed on the mock. Use\n\t\t\tin conjuntion with the default <see cref=\"F:Moq.MockBehavior.Loose\"/>.\n\t\t</summary><example group=\"verification\">\n\t\t\tThis example assumes that the mock has been used, and later we want to verify that a given\n\t\t\tinvocation with specific parameters was performed:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IWarehouse&gt;();\n\t\t\t\t// exercise mock\n\t\t\t\t//...\n\t\t\t\t// Will throw if the test code didn't call HasInventory.\n\t\t\t\tmock.Verify(warehouse =&gt; warehouse.HasInventory(TALISKER, 50));\n\t\t\t</code>\n\t\t</example><exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception><param name=\"expression\">Expression to verify.</param><typeparam name=\"TResult\">Type of return value from the expression.</typeparam>\n        </member>\n        <member name=\"M:Moq.Mock`1.Verify``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},Moq.Times)\">\n            <summary>\n\t\t\tVerifies that a specific invocation matching the given\n\t\t\texpression was performed on the mock. Use in conjuntion\n\t\t\twith the default <see cref=\"F:Moq.MockBehavior.Loose\"/>.\n\t\t</summary><exception cref=\"T:Moq.MockException\">\n\t\t\tThe invocation was not call the times specified by\n\t\t\t<paramref name=\"times\"/>.\n\t\t</exception><param name=\"expression\">Expression to verify.</param><param name=\"times\">The number of times a method is allowed to be called.</param><typeparam name=\"TResult\">Type of return value from the expression.</typeparam>\n        </member>\n        <member name=\"M:Moq.Mock`1.Verify``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},System.String)\">\n            <summary>\n\t\t\tVerifies that a specific invocation matching the given\n\t\t\texpression was performed on the mock, specifying a failure\n\t\t\terror message.\n\t\t</summary><example group=\"verification\">\n\t\t\tThis example assumes that the mock has been used,\n\t\t\tand later we want to verify that a given invocation\n\t\t\twith specific parameters was performed:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IWarehouse&gt;();\n\t\t\t\t// exercise mock\n\t\t\t\t//...\n\t\t\t\t// Will throw if the test code didn't call HasInventory.\n\t\t\t\tmock.Verify(warehouse =&gt; warehouse.HasInventory(TALISKER, 50), \"When filling orders, inventory has to be checked\");\n\t\t\t</code>\n\t\t</example><exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception><param name=\"expression\">Expression to verify.</param><param name=\"failMessage\">Message to show if verification fails.</param><typeparam name=\"TResult\">Type of return value from the expression.</typeparam>\n        </member>\n        <member name=\"M:Moq.Mock`1.Verify``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},Moq.Times,System.String)\">\n            <summary>\n\t\t\tVerifies that a specific invocation matching the given\n\t\t\texpression was performed on the mock, specifying a failure\n\t\t\terror message.\n\t\t</summary><exception cref=\"T:Moq.MockException\">\n\t\t\tThe invocation was not call the times specified by\n\t\t\t<paramref name=\"times\"/>.\n\t\t</exception><param name=\"expression\">Expression to verify.</param><param name=\"times\">The number of times a method is allowed to be called.</param><param name=\"failMessage\">Message to show if verification fails.</param><typeparam name=\"TResult\">Type of return value from the expression.</typeparam>\n        </member>\n        <member name=\"M:Moq.Mock`1.VerifyGet``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})\">\n            <summary>\n\t\t\tVerifies that a property was read on the mock.\n\t\t</summary><example group=\"verification\">\n\t\t\tThis example assumes that the mock has been used,\n\t\t\tand later we want to verify that a given property\n\t\t\twas retrieved from it:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IWarehouse&gt;();\n\t\t\t\t// exercise mock\n\t\t\t\t//...\n\t\t\t\t// Will throw if the test code didn't retrieve the IsClosed property.\n\t\t\t\tmock.VerifyGet(warehouse =&gt; warehouse.IsClosed);\n\t\t\t</code>\n\t\t</example><exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception><param name=\"expression\">Expression to verify.</param><typeparam name=\"TProperty\">\n\t\t\tType of the property to verify. Typically omitted as it can\n\t\t\tbe inferred from the expression's return type.\n\t\t</typeparam>\n        </member>\n        <member name=\"M:Moq.Mock`1.VerifyGet``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},Moq.Times)\">\n            <summary>\n\t\t\tVerifies that a property was read on the mock.\n\t\t</summary><exception cref=\"T:Moq.MockException\">\n\t\t\tThe invocation was not call the times specified by\n\t\t\t<paramref name=\"times\"/>.\n\t\t</exception><param name=\"times\">The number of times a method is allowed to be called.</param><param name=\"expression\">Expression to verify.</param><typeparam name=\"TProperty\">\n\t\t\tType of the property to verify. Typically omitted as it can\n\t\t\tbe inferred from the expression's return type.\n\t\t</typeparam>\n        </member>\n        <member name=\"M:Moq.Mock`1.VerifyGet``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},System.String)\">\n            <summary>\n\t\t\tVerifies that a property was read on the mock, specifying a failure\n\t\t\terror message.\n\t\t</summary><example group=\"verification\">\n\t\t\tThis example assumes that the mock has been used,\n\t\t\tand later we want to verify that a given property\n\t\t\twas retrieved from it:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IWarehouse&gt;();\n\t\t\t\t// exercise mock\n\t\t\t\t//...\n\t\t\t\t// Will throw if the test code didn't retrieve the IsClosed property.\n\t\t\t\tmock.VerifyGet(warehouse =&gt; warehouse.IsClosed);\n\t\t\t</code>\n\t\t</example><exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception><param name=\"expression\">Expression to verify.</param><param name=\"failMessage\">Message to show if verification fails.</param><typeparam name=\"TProperty\">\n\t\t\tType of the property to verify. Typically omitted as it can\n\t\t\tbe inferred from the expression's return type.\n\t\t</typeparam>\n        </member>\n        <member name=\"M:Moq.Mock`1.VerifyGet``1(System.Linq.Expressions.Expression{System.Func{`0,``0}},Moq.Times,System.String)\">\n            <summary>\n\t\t\tVerifies that a property was read on the mock, specifying a failure\n\t\t\terror message.\n\t\t</summary><exception cref=\"T:Moq.MockException\">\n\t\t\tThe invocation was not call the times specified by\n\t\t\t<paramref name=\"times\"/>.\n\t\t</exception><param name=\"times\">The number of times a method is allowed to be called.</param><param name=\"expression\">Expression to verify.</param><param name=\"failMessage\">Message to show if verification fails.</param><typeparam name=\"TProperty\">\n\t\t\tType of the property to verify. Typically omitted as it can\n\t\t\tbe inferred from the expression's return type.\n\t\t</typeparam>\n        </member>\n        <member name=\"M:Moq.Mock`1.VerifySet(System.Action{`0})\">\n            <summary>\n\t\t\tVerifies that a property was set on the mock.\n\t\t</summary><example group=\"verification\">\n\t\t\tThis example assumes that the mock has been used,\n\t\t\tand later we want to verify that a given property\n\t\t\twas set on it:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IWarehouse&gt;();\n\t\t\t\t// exercise mock\n\t\t\t\t//...\n\t\t\t\t// Will throw if the test code didn't set the IsClosed property.\n\t\t\t\tmock.VerifySet(warehouse =&gt; warehouse.IsClosed = true);\n\t\t\t</code>\n\t\t</example><exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception><param name=\"setterExpression\">Expression to verify.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.VerifySet(System.Action{`0},Moq.Times)\">\n            <summary>\n\t\t\tVerifies that a property was set on the mock.\n\t\t</summary><exception cref=\"T:Moq.MockException\">\n\t\t\tThe invocation was not call the times specified by\n\t\t\t<paramref name=\"times\"/>.\n\t\t</exception><param name=\"times\">The number of times a method is allowed to be called.</param><param name=\"setterExpression\">Expression to verify.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.VerifySet(System.Action{`0},System.String)\">\n            <summary>\n\t\t\tVerifies that a property was set on the mock, specifying\n\t\t\ta failure message.\n\t\t</summary><example group=\"verification\">\n\t\t\tThis example assumes that the mock has been used,\n\t\t\tand later we want to verify that a given property\n\t\t\twas set on it:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IWarehouse&gt;();\n\t\t\t\t// exercise mock\n\t\t\t\t//...\n\t\t\t\t// Will throw if the test code didn't set the IsClosed property.\n\t\t\t\tmock.VerifySet(warehouse =&gt; warehouse.IsClosed = true, \"Warehouse should always be closed after the action\");\n\t\t\t</code>\n\t\t</example><exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception><param name=\"setterExpression\">Expression to verify.</param><param name=\"failMessage\">Message to show if verification fails.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.VerifySet(System.Action{`0},Moq.Times,System.String)\">\n            <summary>\n\t\t\tVerifies that a property was set on the mock, specifying\n\t\t\ta failure message.\n\t\t</summary><exception cref=\"T:Moq.MockException\">\n\t\t\tThe invocation was not call the times specified by\n\t\t\t<paramref name=\"times\"/>.\n\t\t</exception><param name=\"times\">The number of times a method is allowed to be called.</param><param name=\"setterExpression\">Expression to verify.</param><param name=\"failMessage\">Message to show if verification fails.</param>\n        </member>\n        <member name=\"M:Moq.Mock`1.Raise(System.Action{`0},System.EventArgs)\">\n            <summary>\n\t\t\tRaises the event referenced in <paramref name=\"eventExpression\"/> using\n\t\t\tthe given <paramref name=\"args\"/> argument.\n\t\t</summary><exception cref=\"T:System.ArgumentException\">\n\t\t\tThe <paramref name=\"args\"/> argument is\n\t\t\tinvalid for the target event invocation, or the <paramref name=\"eventExpression\"/> is\n\t\t\tnot an event attach or detach expression.\n\t\t</exception><example>\n\t\t\tThe following example shows how to raise a <see cref=\"E:System.ComponentModel.INotifyPropertyChanged.PropertyChanged\"/> event:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IViewModel&gt;();\n\n\t\t\t\tmock.Raise(x =&gt; x.PropertyChanged -= null, new PropertyChangedEventArgs(\"Name\"));\n\t\t\t</code>\n\t\t</example><example>\n\t\t\tThis example shows how to invoke an event with a custom event arguments\n\t\t\tclass in a view that will cause its corresponding presenter to\n\t\t\treact by changing its state:\n\t\t\t<code>\n\t\t\t\tvar mockView = new Mock&lt;IOrdersView&gt;();\n\t\t\t\tvar presenter = new OrdersPresenter(mockView.Object);\n\n\t\t\t\t// Check that the presenter has no selection by default\n\t\t\t\tAssert.Null(presenter.SelectedOrder);\n\n\t\t\t\t// Raise the event with a specific arguments data\n\t\t\t\tmockView.Raise(v =&gt; v.SelectionChanged += null, new OrderEventArgs { Order = new Order(\"moq\", 500) });\n\n\t\t\t\t// Now the presenter reacted to the event, and we have a selected order\n\t\t\t\tAssert.NotNull(presenter.SelectedOrder);\n\t\t\t\tAssert.Equal(\"moq\", presenter.SelectedOrder.ProductName);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.Mock`1.Raise(System.Action{`0},System.Object[])\">\n            <summary>\n\t\t\tRaises the event referenced in <paramref name=\"eventExpression\"/> using\n\t\t\tthe given <paramref name=\"args\"/> argument for a non-EventHandler typed event.\n\t\t</summary><exception cref=\"T:System.ArgumentException\">\n\t\t\tThe <paramref name=\"args\"/> arguments are\n\t\t\tinvalid for the target event invocation, or the <paramref name=\"eventExpression\"/> is\n\t\t\tnot an event attach or detach expression.\n\t\t</exception><example>\n\t\t\tThe following example shows how to raise a custom event that does not adhere to \n\t\t\tthe standard <c>EventHandler</c>:\n\t\t\t<code>\n\t\t\t\tvar mock = new Mock&lt;IViewModel&gt;();\n\n\t\t\t\tmock.Raise(x =&gt; x.MyEvent -= null, \"Name\", bool, 25);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"P:Moq.Mock`1.Object\">\n            <summary>\n\t\t\tExposes the mocked object instance.\n\t\t</summary>\n        </member>\n        <member name=\"T:Moq.MockLegacyExtensions\">\n            <summary>\n            Provides legacy API members as extensions so that \n            existing code continues to compile, but new code \n            doesn't see then.\n            </summary>\n        </member>\n        <member name=\"M:Moq.MockLegacyExtensions.SetupSet``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1)\">\n            <summary>\n            Obsolete.\n            </summary>\n        </member>\n        <member name=\"M:Moq.MockLegacyExtensions.VerifySet``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1)\">\n            <summary>\n            Obsolete.\n            </summary>\n        </member>\n        <member name=\"M:Moq.MockLegacyExtensions.VerifySet``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)\">\n            <summary>\n            Obsolete.\n            </summary>\n        </member>\n        <member name=\"T:Moq.MockExtensions\">\n            <summary>\n            Provides additional methods on mocks.\n            </summary>\n            <devdoc>\n            Provided as extension methods as they confuse the compiler \n            with the overloads taking Action.\n            </devdoc>\n        </member>\n        <member name=\"M:Moq.MockExtensions.SetupSet``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})\">\n            <summary>\n            Specifies a setup on the mocked type for a call to \n            to a property setter, regardless of its value.\n            </summary>\n            <remarks>\n            If more than one setup is set for the same property setter, \n            the latest one wins and is the one that will be executed.\n            </remarks>\n            <typeparam name=\"TProperty\">Type of the property. Typically omitted as it can be inferred from the expression.</typeparam>\n            <typeparam name=\"T\">Type of the mock.</typeparam>\n            <param name=\"mock\">The target mock for the setup.</param>\n            <param name=\"expression\">Lambda expression that specifies the property setter.</param>\n            <example group=\"setups\">\n            <code>\n            mock.SetupSet(x =&gt; x.Suspended);\n            </code>\n            </example>\n            <devdoc>\n            This method is not legacy, but must be on an extension method to avoid \n            confusing the compiler with the new Action syntax.\n            </devdoc>\n        </member>\n        <member name=\"M:Moq.MockExtensions.VerifySet``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})\">\n            <summary>\n            Verifies that a property has been set on the mock, regarless of its value.\n            </summary>\n            <example group=\"verification\">\n            This example assumes that the mock has been used, \n            and later we want to verify that a given invocation \n            with specific parameters was performed:\n            <code>\n            var mock = new Mock&lt;IWarehouse&gt;();\n            // exercise mock\n            //...\n            // Will throw if the test code didn't set the IsClosed property.\n            mock.VerifySet(warehouse =&gt; warehouse.IsClosed);\n            </code>\n            </example>\n            <exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception>\n            <param name=\"expression\">Expression to verify.</param>\n            <param name=\"mock\">The mock instance.</param>\n            <typeparam name=\"T\">Mocked type.</typeparam>\n            <typeparam name=\"TProperty\">Type of the property to verify. Typically omitted as it can \n            be inferred from the expression's return type.</typeparam>\n        </member>\n        <member name=\"M:Moq.MockExtensions.VerifySet``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},System.String)\">\n            <summary>\n            Verifies that a property has been set on the mock, specifying a failure  \n            error message. \n            </summary>\n            <example group=\"verification\">\n            This example assumes that the mock has been used, \n            and later we want to verify that a given invocation \n            with specific parameters was performed:\n            <code>\n            var mock = new Mock&lt;IWarehouse&gt;();\n            // exercise mock\n            //...\n            // Will throw if the test code didn't set the IsClosed property.\n            mock.VerifySet(warehouse =&gt; warehouse.IsClosed);\n            </code>\n            </example>\n            <exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception>\n            <param name=\"expression\">Expression to verify.</param>\n            <param name=\"failMessage\">Message to show if verification fails.</param>\n            <param name=\"mock\">The mock instance.</param>\n            <typeparam name=\"T\">Mocked type.</typeparam>\n            <typeparam name=\"TProperty\">Type of the property to verify. Typically omitted as it can \n            be inferred from the expression's return type.</typeparam>\n        </member>\n        <member name=\"M:Moq.MockExtensions.VerifySet``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},Moq.Times)\">\n            <summary>\n            Verifies that a property has been set on the mock, regardless \n            of the value but only the specified number of times.\n            </summary>\n            <example group=\"verification\">\n            This example assumes that the mock has been used, \n            and later we want to verify that a given invocation \n            with specific parameters was performed:\n            <code>\n            var mock = new Mock&lt;IWarehouse&gt;();\n            // exercise mock\n            //...\n            // Will throw if the test code didn't set the IsClosed property.\n            mock.VerifySet(warehouse =&gt; warehouse.IsClosed);\n            </code>\n            </example>\n            <exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception>\n            <exception cref=\"T:Moq.MockException\">The invocation was not call the times specified by\n            <paramref name=\"times\"/>.</exception>\n            <param name=\"mock\">The mock instance.</param>\n            <typeparam name=\"T\">Mocked type.</typeparam>\n            <param name=\"times\">The number of times a method is allowed to be called.</param>\n            <param name=\"expression\">Expression to verify.</param>\n            <typeparam name=\"TProperty\">Type of the property to verify. Typically omitted as it can \n            be inferred from the expression's return type.</typeparam>\n        </member>\n        <member name=\"M:Moq.MockExtensions.VerifySet``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},Moq.Times,System.String)\">\n            <summary>\n            Verifies that a property has been set on the mock, regardless \n            of the value but only the specified number of times, and specifying a failure  \n            error message. \n            </summary>\n            <example group=\"verification\">\n            This example assumes that the mock has been used, \n            and later we want to verify that a given invocation \n            with specific parameters was performed:\n            <code>\n            var mock = new Mock&lt;IWarehouse&gt;();\n            // exercise mock\n            //...\n            // Will throw if the test code didn't set the IsClosed property.\n            mock.VerifySet(warehouse =&gt; warehouse.IsClosed);\n            </code>\n            </example>\n            <exception cref=\"T:Moq.MockException\">The invocation was not performed on the mock.</exception>\n            <exception cref=\"T:Moq.MockException\">The invocation was not call the times specified by\n            <paramref name=\"times\"/>.</exception>\n            <param name=\"mock\">The mock instance.</param>\n            <typeparam name=\"T\">Mocked type.</typeparam>\n            <param name=\"times\">The number of times a method is allowed to be called.</param>\n            <param name=\"failMessage\">Message to show if verification fails.</param>\n            <param name=\"expression\">Expression to verify.</param>\n            <typeparam name=\"TProperty\">Type of the property to verify. Typically omitted as it can \n            be inferred from the expression's return type.</typeparam>\n        </member>\n        <member name=\"T:Moq.SequenceExtensions\">\n            <summary>\n            Helper for sequencing return values in the same method.\n            </summary>\n        </member>\n        <member name=\"M:Moq.SequenceExtensions.SetupSequence``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})\">\n            <summary>\n            Return a sequence of values, once per call.\n            </summary>\n        </member>\n        <member name=\"M:Moq.ExpressionExtensions.ToLambda(System.Linq.Expressions.Expression)\">\n            <summary>\n            Casts the expression to a lambda expression, removing \n            a cast if there's any.\n            </summary>\n        </member>\n        <member name=\"M:Moq.ExpressionExtensions.ToMethodCall(System.Linq.Expressions.LambdaExpression)\">\n            <summary>\n            Casts the body of the lambda expression to a <see cref=\"T:System.Linq.Expressions.MethodCallExpression\"/>.\n            </summary>\n            <exception cref=\"T:System.ArgumentException\">If the body is not a method call.</exception>\n        </member>\n        <member name=\"M:Moq.ExpressionExtensions.ToPropertyInfo(System.Linq.Expressions.LambdaExpression)\">\n            <summary>\n            Converts the body of the lambda expression into the <see cref=\"T:System.Reflection.PropertyInfo\"/> referenced by it.\n            </summary>\n        </member>\n        <member name=\"M:Moq.ExpressionExtensions.IsProperty(System.Linq.Expressions.LambdaExpression)\">\n            <summary>\n            Checks whether the body of the lambda expression is a property access.\n            </summary>\n        </member>\n        <member name=\"M:Moq.ExpressionExtensions.IsProperty(System.Linq.Expressions.Expression)\">\n            <summary>\n            Checks whether the expression is a property access.\n            </summary>\n        </member>\n        <member name=\"M:Moq.ExpressionExtensions.IsPropertyIndexer(System.Linq.Expressions.LambdaExpression)\">\n            <summary>\n            Checks whether the body of the lambda expression is a property indexer, which is true \n            when the expression is an <see cref=\"T:System.Linq.Expressions.MethodCallExpression\"/> whose \n            <see cref=\"P:System.Linq.Expressions.MethodCallExpression.Method\"/> has <see cref=\"P:System.Reflection.MethodBase.IsSpecialName\"/> \n            equal to <see langword=\"true\"/>.\n            </summary>\n        </member>\n        <member name=\"M:Moq.ExpressionExtensions.IsPropertyIndexer(System.Linq.Expressions.Expression)\">\n            <summary>\n            Checks whether the expression is a property indexer, which is true \n            when the expression is an <see cref=\"T:System.Linq.Expressions.MethodCallExpression\"/> whose \n            <see cref=\"P:System.Linq.Expressions.MethodCallExpression.Method\"/> has <see cref=\"P:System.Reflection.MethodBase.IsSpecialName\"/> \n            equal to <see langword=\"true\"/>.\n            </summary>\n        </member>\n        <member name=\"M:Moq.ExpressionExtensions.CastTo``1(System.Linq.Expressions.Expression)\">\n            <summary>\n            Creates an expression that casts the given expression to the <typeparamref name=\"T\"/> \n            type.\n            </summary>\n        </member>\n        <member name=\"M:Moq.ExpressionExtensions.ToStringFixed(System.Linq.Expressions.Expression)\">\n            <devdoc>\n            TODO: remove this code when https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=331583 \n            is fixed.\n            </devdoc>\n        </member>\n        <member name=\"T:Moq.Evaluator\">\n            <summary>\n            Provides partial evaluation of subtrees, whenever they can be evaluated locally.\n            </summary>\n            <author>Matt Warren: http://blogs.msdn.com/mattwar</author>\n            <contributor>Documented by InSTEDD: http://www.instedd.org</contributor>\n        </member>\n        <member name=\"M:Moq.Evaluator.PartialEval(System.Linq.Expressions.Expression,System.Func{System.Linq.Expressions.Expression,System.Boolean})\">\n            <summary>\n            Performs evaluation and replacement of independent sub-trees\n            </summary>\n            <param name=\"expression\">The root of the expression tree.</param>\n            <param name=\"fnCanBeEvaluated\">A function that decides whether a given expression\n            node can be part of the local function.</param>\n            <returns>A new tree with sub-trees evaluated and replaced.</returns>\n        </member>\n        <member name=\"M:Moq.Evaluator.PartialEval(System.Linq.Expressions.Expression)\">\n            <summary>\n            Performs evaluation and replacement of independent sub-trees\n            </summary>\n            <param name=\"expression\">The root of the expression tree.</param>\n            <returns>A new tree with sub-trees evaluated and replaced.</returns>\n        </member>\n        <member name=\"T:Moq.Evaluator.SubtreeEvaluator\">\n            <summary>\n            Evaluates and replaces sub-trees when first candidate is reached (top-down)\n            </summary>\n        </member>\n        <member name=\"T:Moq.Evaluator.Nominator\">\n            <summary>\n            Performs bottom-up analysis to determine which nodes can possibly\n            be part of an evaluated sub-tree.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Guard.NotNull``1(System.Linq.Expressions.Expression{System.Func{``0}},``0)\">\n            <summary>\n            Ensures the given <paramref name=\"value\"/> is not null.\n            Throws <see cref=\"T:System.ArgumentNullException\"/> otherwise.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Guard.NotNullOrEmpty(System.Linq.Expressions.Expression{System.Func{System.String}},System.String)\">\n            <summary>\n            Ensures the given string <paramref name=\"value\"/> is not null or empty.\n            Throws <see cref=\"T:System.ArgumentNullException\"/> in the first case, or \n            <see cref=\"T:System.ArgumentException\"/> in the latter.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Guard.NotOutOfRangeInclusive``1(System.Linq.Expressions.Expression{System.Func{``0}},``0,``0,``0)\">\n            <summary>\n            Checks an argument to ensure it is in the specified range including the edges.\n            </summary>\n            <typeparam name=\"T\">Type of the argument to check, it must be an <see cref=\"T:System.IComparable\"/> type.\n            </typeparam>\n            <param name=\"reference\">The expression containing the name of the argument.</param>\n            <param name=\"value\">The argument value to check.</param>\n            <param name=\"from\">The minimun allowed value for the argument.</param>\n            <param name=\"to\">The maximun allowed value for the argument.</param>\n        </member>\n        <member name=\"M:Moq.Guard.NotOutOfRangeExclusive``1(System.Linq.Expressions.Expression{System.Func{``0}},``0,``0,``0)\">\n            <summary>\n            Checks an argument to ensure it is in the specified range excluding the edges.\n            </summary>\n            <typeparam name=\"T\">Type of the argument to check, it must be an <see cref=\"T:System.IComparable\"/> type.\n            </typeparam>\n            <param name=\"reference\">The expression containing the name of the argument.</param>\n            <param name=\"value\">The argument value to check.</param>\n            <param name=\"from\">The minimun allowed value for the argument.</param>\n            <param name=\"to\">The maximun allowed value for the argument.</param>\n        </member>\n        <member name=\"T:Moq.IMocked`1\">\n            <summary>\n            Implemented by all generated mock object instances.\n            </summary>\n        </member>\n        <member name=\"T:Moq.IMocked\">\n            <summary>\n            Implemented by all generated mock object instances.\n            </summary>\n        </member>\n        <member name=\"P:Moq.IMocked.Mock\">\n            <summary>\n            Reference the Mock that contains this as the <c>mock.Object</c> value.\n            </summary>\n        </member>\n        <member name=\"P:Moq.IMocked`1.Mock\">\n            <summary>\n            Reference the Mock that contains this as the <c>mock.Object</c> value.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Interceptor\">\n            <summary>\n            Implements the actual interception and method invocation for \n            all mocks.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Interceptor.GetEventFromName(System.String)\">\n            <summary>\n            Get an eventInfo for a given event name.  Search type ancestors depth first if necessary.\n            </summary>\n            <param name=\"eventName\">Name of the event, with the set_ or get_ prefix already removed</param>\n        </member>\n        <member name=\"M:Moq.Interceptor.GetAncestorTypes(System.Type)\">\n            <summary>\n            Given a type return all of its ancestors, both types and interfaces.\n            </summary>\n            <param name=\"initialType\">The type to find immediate ancestors of</param>\n        </member>\n        <member name=\"T:Moq.Language.Flow.ISetupSetter`2\">\n            <summary>\n            Implements the fluent API.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Language.ICallbackSetter`1\">\n            <summary>\n            Defines the <c>Callback</c> verb for property setter setups.\n            </summary>\n            <typeparam name=\"TProperty\">Type of the property.</typeparam>\n        </member>\n        <member name=\"M:Moq.Language.ICallbackSetter`1.Callback(System.Action{`0})\">\n            <summary>\n            Specifies a callback to invoke when the property is set that receives the \n            property value being set.\n            </summary>\n            <param name=\"action\">Callback method to invoke.</param>\n            <example>\n            Invokes the given callback with the property value being set. \n            <code>\n            mock.SetupSet(x => x.Suspended)\n                .Callback((bool state) => Console.WriteLine(state));\n            </code>\n            </example>\n        </member>\n        <member name=\"T:Moq.It\">\n            <summary>\n\t\t\tAllows the specification of a matching condition for an\n\t\t\targument in a method invocation, rather than a specific\n\t\t\targument value. \"It\" refers to the argument being matched.\n\t\t</summary><remarks>\n\t\t\tThis class allows the setup to match a method invocation\n\t\t\twith an arbitrary value, with a value in a specified range, or\n\t\t\teven one that matches a given predicate.\n\t\t</remarks>\n        </member>\n        <member name=\"M:Moq.It.IsAny``1\">\n            <summary>\n\t\t\tMatches any value of the given <typeparamref name=\"TValue\"/> type.\n\t\t</summary><remarks>\n\t\t\tTypically used when the actual argument value for a method\n\t\t\tcall is not relevant.\n\t\t</remarks><example>\n\t\t\t<code>\n\t\t\t\t// Throws an exception for a call to Remove with any string value.\n\t\t\t\tmock.Setup(x =&gt; x.Remove(It.IsAny&lt;string&gt;())).Throws(new InvalidOperationException());\n\t\t\t</code>\n\t\t</example><typeparam name=\"TValue\">Type of the value.</typeparam>\n        </member>\n        <member name=\"M:Moq.It.Is``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})\">\n            <summary>\n\t\t\tMatches any value that satisfies the given predicate.\n\t\t</summary><typeparam name=\"TValue\">Type of the argument to check.</typeparam><param name=\"match\">The predicate used to match the method argument.</param><remarks>\n\t\t\tAllows the specification of a predicate to perform matching\n\t\t\tof method call arguments.\n\t\t</remarks><example>\n\t\t\tThis example shows how to return the value <c>1</c> whenever the argument to the\n\t\t\t<c>Do</c> method is an even number.\n\t\t\t<code>\n\t\t\t\tmock.Setup(x =&gt; x.Do(It.Is&lt;int&gt;(i =&gt; i % 2 == 0)))\n\t\t\t\t.Returns(1);\n\t\t\t</code>\n\t\t\tThis example shows how to throw an exception if the argument to the\n\t\t\tmethod is a negative number:\n\t\t\t<code>\n\t\t\t\tmock.Setup(x =&gt; x.GetUser(It.Is&lt;int&gt;(i =&gt; i &lt; 0)))\n\t\t\t\t.Throws(new ArgumentException());\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.It.IsInRange``1(``0,``0,Moq.Range)\">\n            <summary>\n\t\t\tMatches any value that is in the range specified.\n\t\t</summary><typeparam name=\"TValue\">Type of the argument to check.</typeparam><param name=\"from\">The lower bound of the range.</param><param name=\"to\">The upper bound of the range.</param><param name=\"rangeKind\">\n\t\t\tThe kind of range. See <see cref=\"T:Moq.Range\"/>.\n\t\t</param><example>\n\t\t\tThe following example shows how to expect a method call\n\t\t\twith an integer argument within the 0..100 range.\n\t\t\t<code>\n\t\t\t\tmock.Setup(x =&gt; x.HasInventory(\n\t\t\t\tIt.IsAny&lt;string&gt;(),\n\t\t\t\tIt.IsInRange(0, 100, Range.Inclusive)))\n\t\t\t\t.Returns(false);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.It.IsRegex(System.String)\">\n            <summary>\n\t\t\tMatches a string argument if it matches the given regular expression pattern.\n\t\t</summary><param name=\"regex\">The pattern to use to match the string argument value.</param><example>\n\t\t\tThe following example shows how to expect a call to a method where the\n\t\t\tstring argument matches the given regular expression:\n\t\t\t<code>\n\t\t\t\tmock.Setup(x =&gt; x.Check(It.IsRegex(\"[a-z]+\"))).Returns(1);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"M:Moq.It.IsRegex(System.String,System.Text.RegularExpressions.RegexOptions)\">\n            <summary>\n\t\t\tMatches a string argument if it matches the given regular expression pattern.\n\t\t</summary><param name=\"regex\">The pattern to use to match the string argument value.</param><param name=\"options\">The options used to interpret the pattern.</param><example>\n\t\t\tThe following example shows how to expect a call to a method where the\n\t\t\tstring argument matches the given regular expression, in a case insensitive way:\n\t\t\t<code>\n\t\t\t\tmock.Setup(x =&gt; x.Check(It.IsRegex(\"[a-z]+\", RegexOptions.IgnoreCase))).Returns(1);\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"T:Moq.Matchers.MatcherAttributeMatcher\">\n            <summary>\n            Matcher to treat static functions as matchers.\n            \n            mock.Setup(x => x.StringMethod(A.MagicString()));\n            \n            public static class A \n            {\n                [Matcher]\n                public static string MagicString() { return null; }\n                public static bool MagicString(string arg)\n                {\n                    return arg == \"magic\";\n                }\n            }\n            \n            Will succeed if: mock.Object.StringMethod(\"magic\");\n            and fail with any other call.\n            </summary>\n        </member>\n        <member name=\"T:Moq.MockBehavior\">\n            <summary>\n            Options to customize the behavior of the mock. \n            </summary>\n        </member>\n        <member name=\"F:Moq.MockBehavior.Strict\">\n            <summary>\n            Causes the mock to always throw \n            an exception for invocations that don't have a \n            corresponding setup.\n            </summary>\n        </member>\n        <member name=\"F:Moq.MockBehavior.Loose\">\n            <summary>\n            Will never throw exceptions, returning default  \n            values when necessary (null for reference types, \n            zero for value types or empty enumerables and arrays).\n            </summary>\n        </member>\n        <member name=\"F:Moq.MockBehavior.Default\">\n            <summary>\n            Default mock behavior, which equals <see cref=\"F:Moq.MockBehavior.Loose\"/>.\n            </summary>\n        </member>\n        <member name=\"T:Moq.MockException\">\n            <summary>\n            Exception thrown by mocks when setups are not matched, \n            the mock is not properly setup, etc.\n            </summary>\n            <remarks>\n            A distinct exception type is provided so that exceptions \n            thrown by the mock can be differentiated in tests that \n            expect other exceptions to be thrown (i.e. ArgumentException).\n            <para>\n            Richer exception hierarchy/types are not provided as \n            tests typically should <b>not</b> catch or expect exceptions \n            from the mocks. These are typically the result of changes \n            in the tested class or its collaborators implementation, and \n            result in fixes in the mock setup so that they dissapear and \n            allow the test to pass.\n            </para>\n            </remarks>\n        </member>\n        <member name=\"M:Moq.MockException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)\">\n            <summary>\n            Supports the serialization infrastructure.\n            </summary>\n            <param name=\"info\">Serialization information.</param>\n            <param name=\"context\">Streaming context.</param>\n        </member>\n        <member name=\"M:Moq.MockException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)\">\n            <summary>\n            Supports the serialization infrastructure.\n            </summary>\n            <param name=\"info\">Serialization information.</param>\n            <param name=\"context\">Streaming context.</param>\n        </member>\n        <member name=\"T:Moq.MockException.ExceptionReason\">\n            <summary>\n            Made internal as it's of no use for \n            consumers, but it's important for \n            our own tests.\n            </summary>\n        </member>\n        <member name=\"T:Moq.MockVerificationException\">\n            <devdoc>\n            Used by the mock factory to accumulate verification \n            failures.\n            </devdoc>\n        </member>\n        <member name=\"M:Moq.MockVerificationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)\">\n            <summary>\n            Supports the serialization infrastructure.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Properties.Resources\">\n            <summary>\n              A strongly-typed resource class, for looking up localized strings, etc.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.ResourceManager\">\n            <summary>\n              Returns the cached ResourceManager instance used by this class.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.Culture\">\n            <summary>\n              Overrides the current thread's CurrentUICulture property for all\n              resource lookups using this strongly typed resource class.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.AlreadyInitialized\">\n            <summary>\n              Looks up a localized string similar to Mock type has already been initialized by accessing its Object property. Adding interfaces must be done before that..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.ArgumentCannotBeEmpty\">\n            <summary>\n              Looks up a localized string similar to Value cannot be an empty string..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.AsMustBeInterface\">\n            <summary>\n              Looks up a localized string similar to Can only add interfaces to the mock..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.CantSetReturnValueForVoid\">\n            <summary>\n              Looks up a localized string similar to Can&apos;t set return value for void method {0}..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.ConstructorArgsForInterface\">\n            <summary>\n              Looks up a localized string similar to Constructor arguments cannot be passed for interface mocks..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.ConstructorNotFound\">\n            <summary>\n              Looks up a localized string similar to A matching constructor for the given arguments was not found on the mocked type..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.EventNofFound\">\n            <summary>\n              Looks up a localized string similar to Could not locate event for attach or detach method {0}..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.FieldsNotSupported\">\n            <summary>\n              Looks up a localized string similar to Expression {0} involves a field access, which is not supported. Use properties instead..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.InvalidMockClass\">\n            <summary>\n              Looks up a localized string similar to Type to mock must be an interface or an abstract or non-sealed class. .\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.InvalidMockGetType\">\n             <summary>\n               Looks up a localized string similar to Cannot retrieve a mock with the given object type {0} as it&apos;s not the main type of the mock or any of its additional interfaces.\n            Please cast the argument to one of the supported types: {1}.\n            Remember that there&apos;s no generics covariance in the CLR, so your object must be one of these types in order for the call to succeed..\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.LinqBinaryOperatorNotSupported\">\n            <summary>\n              Looks up a localized string similar to The equals (&quot;==&quot; or &quot;=&quot; in VB) and the conditional &apos;and&apos; (&quot;&amp;&amp;&quot; or &quot;AndAlso&quot; in VB) operators are the only ones supported in the query specification expression. Unsupported expression: {0}.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.LinqMethodNotSupported\">\n            <summary>\n              Looks up a localized string similar to LINQ method &apos;{0}&apos; not supported..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.LinqMethodNotVirtual\">\n            <summary>\n              Looks up a localized string similar to Expression contains a call to a method which is not virtual (overridable in VB) or abstract. Unsupported expression: {0}.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.MemberMissing\">\n            <summary>\n              Looks up a localized string similar to Member {0}.{1} does not exist..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.MethodIsPublic\">\n             <summary>\n               Looks up a localized string similar to Method {0}.{1} is public. Use strong-typed Expect overload instead:\n            mock.Setup(x =&gt; x.{1}());\n            .\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.MockExceptionMessage\">\n             <summary>\n               Looks up a localized string similar to {0} invocation failed with mock behavior {1}.\n            {2}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.MoreThanNCalls\">\n            <summary>\n              Looks up a localized string similar to Expected only {0} calls to {1}..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.MoreThanOneCall\">\n            <summary>\n              Looks up a localized string similar to Expected only one call to {0}..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.NoMatchingCallsAtLeast\">\n             <summary>\n               Looks up a localized string similar to {0}\n            Expected invocation on the mock at least {2} times, but was {4} times: {1}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.NoMatchingCallsAtLeastOnce\">\n             <summary>\n               Looks up a localized string similar to {0}\n            Expected invocation on the mock at least once, but was never performed: {1}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.NoMatchingCallsAtMost\">\n             <summary>\n               Looks up a localized string similar to {0}\n            Expected invocation on the mock at most {3} times, but was {4} times: {1}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.NoMatchingCallsAtMostOnce\">\n             <summary>\n               Looks up a localized string similar to {0}\n            Expected invocation on the mock at most once, but was {4} times: {1}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.NoMatchingCallsBetweenExclusive\">\n             <summary>\n               Looks up a localized string similar to {0}\n            Expected invocation on the mock between {2} and {3} times (Exclusive), but was {4} times: {1}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.NoMatchingCallsBetweenInclusive\">\n             <summary>\n               Looks up a localized string similar to {0}\n            Expected invocation on the mock between {2} and {3} times (Inclusive), but was {4} times: {1}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.NoMatchingCallsExactly\">\n             <summary>\n               Looks up a localized string similar to {0}\n            Expected invocation on the mock exactly {2} times, but was {4} times: {1}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.NoMatchingCallsNever\">\n             <summary>\n               Looks up a localized string similar to {0}\n            Expected invocation on the mock should never have been performed, but was {4} times: {1}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.NoMatchingCallsOnce\">\n             <summary>\n               Looks up a localized string similar to {0}\n            Expected invocation on the mock once, but was {4} times: {1}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.NoSetup\">\n            <summary>\n              Looks up a localized string similar to All invocations on the mock must have a corresponding setup..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.ObjectInstanceNotMock\">\n            <summary>\n              Looks up a localized string similar to Object instance was not created by Moq..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.OutExpressionMustBeConstantValue\">\n            <summary>\n              Looks up a localized string similar to Out expression must evaluate to a constant value..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.PropertyGetNotFound\">\n            <summary>\n              Looks up a localized string similar to Property {0}.{1} does not have a getter..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.PropertyMissing\">\n            <summary>\n              Looks up a localized string similar to Property {0}.{1} does not exist..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.PropertyNotReadable\">\n            <summary>\n              Looks up a localized string similar to Property {0}.{1} is write-only..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.PropertyNotWritable\">\n            <summary>\n              Looks up a localized string similar to Property {0}.{1} is read-only..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.PropertySetNotFound\">\n            <summary>\n              Looks up a localized string similar to Property {0}.{1} does not have a setter..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.RaisedUnassociatedEvent\">\n            <summary>\n              Looks up a localized string similar to Cannot raise a mocked event unless it has been associated (attached) to a concrete event in a mocked object..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.RefExpressionMustBeConstantValue\">\n            <summary>\n              Looks up a localized string similar to Ref expression must evaluate to a constant value..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.ReturnValueRequired\">\n            <summary>\n              Looks up a localized string similar to Invocation needs to return a value and therefore must have a corresponding setup that provides it..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.SetupLambda\">\n            <summary>\n              Looks up a localized string similar to A lambda expression is expected as the argument to It.Is&lt;T&gt;..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.SetupNever\">\n            <summary>\n              Looks up a localized string similar to Invocation {0} should not have been made..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.SetupNotMethod\">\n            <summary>\n              Looks up a localized string similar to Expression is not a method invocation: {0}.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.SetupNotProperty\">\n            <summary>\n              Looks up a localized string similar to Expression is not a property access: {0}.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.SetupNotSetter\">\n            <summary>\n              Looks up a localized string similar to Expression is not a property setter invocation..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.SetupOnNonMemberMethod\">\n            <summary>\n              Looks up a localized string similar to Expression references a method that does not belong to the mocked object: {0}.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.SetupOnNonOverridableMember\">\n            <summary>\n              Looks up a localized string similar to Invalid setup on a non-virtual (overridable in VB) member: {0}.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.TypeNotImplementInterface\">\n            <summary>\n              Looks up a localized string similar to Type {0} does not implement required interface {1}.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.TypeNotInheritFromType\">\n            <summary>\n              Looks up a localized string similar to Type {0} does not from required type {1}.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.UnexpectedPublicProperty\">\n             <summary>\n               Looks up a localized string similar to To specify a setup for public property {0}.{1}, use the typed overloads, such as:\n            mock.Setup(x =&gt; x.{1}).Returns(value);\n            mock.SetupGet(x =&gt; x.{1}).Returns(value); //equivalent to previous one\n            mock.SetupSet(x =&gt; x.{1}).Callback(callbackDelegate);\n            .\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.UnsupportedExpression\">\n            <summary>\n              Looks up a localized string similar to Unsupported expression: {0}.\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.UnsupportedIntermediateExpression\">\n            <summary>\n              Looks up a localized string similar to Only property accesses are supported in intermediate invocations on a setup. Unsupported expression {0}..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.UnsupportedIntermediateType\">\n            <summary>\n              Looks up a localized string similar to Expression contains intermediate property access {0}.{1} which is of type {2} and cannot be mocked. Unsupported expression {3}..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.UnsupportedMatcherParamsForSetter\">\n            <summary>\n              Looks up a localized string similar to Setter expression cannot use argument matchers that receive parameters..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.UnsupportedMember\">\n            <summary>\n              Looks up a localized string similar to Member {0} is not supported for protected mocking..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.UnsupportedNonStaticMatcherForSetter\">\n            <summary>\n              Looks up a localized string similar to Setter expression can only use static custom matchers..\n            </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.VerficationFailed\">\n             <summary>\n               Looks up a localized string similar to The following setups were not matched:\n            {0}.\n             </summary>\n        </member>\n        <member name=\"P:Moq.Properties.Resources.VerifyOnNonVirtualMember\">\n            <summary>\n              Looks up a localized string similar to Invalid verify on a non-virtual (overridable in VB) member: {0}.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Protected.IProtectedMock`1\">\n            <summary>\n            Allows setups to be specified for protected members by using their \n            name as a string, rather than strong-typing them which is not possible \n            due to their visibility.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Protected.IProtectedMock`1.Setup(System.String,System.Object[])\">\n            <summary>\n            Specifies a setup for a void method invocation with the given \n            <paramref name=\"voidMethodName\"/>, optionally specifying arguments for the method call.\n            </summary>\n            <param name=\"voidMethodName\">The name of the void method to be invoked.</param>\n            <param name=\"args\">The optional arguments for the invocation. If argument matchers are used, \n            remember to use <see cref=\"T:Moq.Protected.ItExpr\"/> rather than <see cref=\"T:Moq.It\"/>.</param>\n        </member>\n        <member name=\"M:Moq.Protected.IProtectedMock`1.Setup``1(System.String,System.Object[])\">\n            <summary>\n            Specifies a setup for an invocation on a property or a non void method with the given \n            <paramref name=\"methodOrPropertyName\"/>, optionally specifying arguments for the method call.\n            </summary>\n            <param name=\"methodOrPropertyName\">The name of the method or property to be invoked.</param>\n            <param name=\"args\">The optional arguments for the invocation. If argument matchers are used, \n            remember to use <see cref=\"T:Moq.Protected.ItExpr\"/> rather than <see cref=\"T:Moq.It\"/>.</param>\n            <typeparam name=\"TResult\">The return type of the method or property.</typeparam>\n        </member>\n        <member name=\"M:Moq.Protected.IProtectedMock`1.SetupGet``1(System.String)\">\n            <summary>\n            Specifies a setup for an invocation on a property getter with the given \n            <paramref name=\"propertyName\"/>.\n            </summary>\n            <param name=\"propertyName\">The name of the property.</param>\n            <typeparam name=\"TProperty\">The type of the property.</typeparam>\n        </member>\n        <member name=\"M:Moq.Protected.IProtectedMock`1.SetupSet``1(System.String,System.Object)\">\n            <summary>\n            Specifies a setup for an invocation on a property setter with the given \n            <paramref name=\"propertyName\"/>.\n            </summary>\n            <param name=\"propertyName\">The name of the property.</param>\n            <param name=\"value\">The property value. If argument matchers are used, \n            remember to use <see cref=\"T:Moq.Protected.ItExpr\"/> rather than <see cref=\"T:Moq.It\"/>.</param>\n            <typeparam name=\"TProperty\">The type of the property.</typeparam>\n        </member>\n        <member name=\"M:Moq.Protected.IProtectedMock`1.Verify(System.String,Moq.Times,System.Object[])\">\n            <summary>\n            Specifies a verify for a void method with the given <paramref name=\"methodName\"/>,\n            optionally specifying arguments for the method call. Use in conjuntion with the default\n            <see cref=\"F:Moq.MockBehavior.Loose\"/>.\n            </summary>\n            <exception cref=\"T:Moq.MockException\">The invocation was not call the times specified by\n            <paramref name=\"times\"/>.</exception>\n            <param name=\"methodName\">The name of the void method to be verified.</param>\n            <param name=\"times\">The number of times a method is allowed to be called.</param>\n            <param name=\"args\">The optional arguments for the invocation. If argument matchers are used, \n            remember to use <see cref=\"T:Moq.Protected.ItExpr\"/> rather than <see cref=\"T:Moq.It\"/>.</param>\n        </member>\n        <member name=\"M:Moq.Protected.IProtectedMock`1.Verify``1(System.String,Moq.Times,System.Object[])\">\n            <summary>\n            Specifies a verify for an invocation on a property or a non void method with the given \n            <paramref name=\"methodName\"/>, optionally specifying arguments for the method call.\n            </summary>\n            <exception cref=\"T:Moq.MockException\">The invocation was not call the times specified by \n            <paramref name=\"times\"/>.</exception>\n            <param name=\"methodName\">The name of the method or property to be invoked.</param>\n            <param name=\"args\">The optional arguments for the invocation. If argument matchers are used, \n            remember to use <see cref=\"T:Moq.Protected.ItExpr\"/> rather than <see cref=\"T:Moq.It\"/>.</param>\n            <param name=\"times\">The number of times a method is allowed to be called.</param>\n            <typeparam name=\"TResult\">The type of return value from the expression.</typeparam>\n        </member>\n        <member name=\"M:Moq.Protected.IProtectedMock`1.VerifyGet``1(System.String,Moq.Times)\">\n            <summary>\n            Specifies a verify for an invocation on a property getter with the given \n            <paramref name=\"propertyName\"/>.\n            <exception cref=\"T:Moq.MockException\">The invocation was not call the times specified by \n            <paramref name=\"times\"/>.</exception>\n            </summary>\n            <param name=\"propertyName\">The name of the property.</param>\n            <param name=\"times\">The number of times a method is allowed to be called.</param>\n            <typeparam name=\"TProperty\">The type of the property.</typeparam>\n        </member>\n        <member name=\"M:Moq.Protected.IProtectedMock`1.VerifySet``1(System.String,Moq.Times,System.Object)\">\n            <summary>\n            Specifies a setup for an invocation on a property setter with the given \n            <paramref name=\"propertyName\"/>.\n            </summary>\n            <exception cref=\"T:Moq.MockException\">The invocation was not call the times specified by \n            <paramref name=\"times\"/>.</exception>\n            <param name=\"propertyName\">The name of the property.</param>\n            <param name=\"times\">The number of times a method is allowed to be called.</param>\n            <param name=\"value\">The property value.</param>\n            <typeparam name=\"TProperty\">The type of the property. If argument matchers are used, \n            remember to use <see cref=\"T:Moq.Protected.ItExpr\"/> rather than <see cref=\"T:Moq.It\"/>.</typeparam>\n        </member>\n        <member name=\"T:Moq.Protected.ItExpr\">\n            <summary>\n            Allows the specification of a matching condition for an \n            argument in a protected member setup, rather than a specific \n            argument value. \"ItExpr\" refers to the argument being matched.\n            </summary>\n            <remarks>\n            <para>Use this variant of argument matching instead of \n            <see cref=\"T:Moq.It\"/> for protected setups.</para>\n            This class allows the setup to match a method invocation \n            with an arbitrary value, with a value in a specified range, or \n            even one that matches a given predicate, or null.\n            </remarks>\n        </member>\n        <member name=\"M:Moq.Protected.ItExpr.IsNull``1\">\n            <summary>\n            Matches a null value of the given <typeparamref name=\"TValue\"/> type.\n            </summary>\n            <remarks>\n            Required for protected mocks as the null value cannot be used \n            directly as it prevents proper method overload selection.\n            </remarks>\n            <example>\n            <code>\n            // Throws an exception for a call to Remove with a null string value.\n            mock.Protected()\n                .Setup(\"Remove\", ItExpr.IsNull&lt;string&gt;())\n                .Throws(new InvalidOperationException());\n            </code>\n            </example>\n            <typeparam name=\"TValue\">Type of the value.</typeparam>\n        </member>\n        <member name=\"M:Moq.Protected.ItExpr.IsAny``1\">\n            <summary>\n            Matches any value of the given <typeparamref name=\"TValue\"/> type.\n            </summary>\n            <remarks>\n            Typically used when the actual argument value for a method \n            call is not relevant.\n            </remarks>\n            <example>\n            <code>\n            // Throws an exception for a call to Remove with any string value.\n            mock.Protected()\n                .Setup(\"Remove\", ItExpr.IsAny&lt;string&gt;())\n                .Throws(new InvalidOperationException());\n            </code>\n            </example>\n            <typeparam name=\"TValue\">Type of the value.</typeparam>\n        </member>\n        <member name=\"M:Moq.Protected.ItExpr.Is``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})\">\n            <summary>\n            Matches any value that satisfies the given predicate.\n            </summary>\n            <typeparam name=\"TValue\">Type of the argument to check.</typeparam>\n            <param name=\"match\">The predicate used to match the method argument.</param>\n            <remarks>\n            Allows the specification of a predicate to perform matching \n            of method call arguments.\n            </remarks>\n            <example>\n            This example shows how to return the value <c>1</c> whenever the argument to the \n            <c>Do</c> method is an even number.\n            <code>\n            mock.Protected()\n                .Setup(\"Do\", ItExpr.Is&lt;int&gt;(i =&gt; i % 2 == 0))\n                .Returns(1);\n            </code>\n            This example shows how to throw an exception if the argument to the \n            method is a negative number:\n            <code>\n            mock.Protected()\n                .Setup(\"GetUser\", ItExpr.Is&lt;int&gt;(i =&gt; i &lt; 0))\n                .Throws(new ArgumentException());\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Protected.ItExpr.IsInRange``1(``0,``0,Moq.Range)\">\n            <summary>\n            Matches any value that is in the range specified.\n            </summary>\n            <typeparam name=\"TValue\">Type of the argument to check.</typeparam>\n            <param name=\"from\">The lower bound of the range.</param>\n            <param name=\"to\">The upper bound of the range.</param>\n            <param name=\"rangeKind\">The kind of range. See <see cref=\"T:Moq.Range\"/>.</param>\n            <example>\n            The following example shows how to expect a method call \n            with an integer argument within the 0..100 range.\n            <code>\n            mock.Protected()\n                .Setup(\"HasInventory\",\n                        ItExpr.IsAny&lt;string&gt;(),\n                        ItExpr.IsInRange(0, 100, Range.Inclusive))\n                .Returns(false);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Protected.ItExpr.IsRegex(System.String)\">\n            <summary>\n            Matches a string argument if it matches the given regular expression pattern.\n            </summary>\n            <param name=\"regex\">The pattern to use to match the string argument value.</param>\n            <example>\n            The following example shows how to expect a call to a method where the \n            string argument matches the given regular expression:\n            <code>\n            mock.Protected()\n                .Setup(\"Check\", ItExpr.IsRegex(\"[a-z]+\"))\n                .Returns(1);\n            </code>\n            </example>\n        </member>\n        <member name=\"M:Moq.Protected.ItExpr.IsRegex(System.String,System.Text.RegularExpressions.RegexOptions)\">\n            <summary>\n            Matches a string argument if it matches the given regular expression pattern.\n            </summary>\n            <param name=\"regex\">The pattern to use to match the string argument value.</param>\n            <param name=\"options\">The options used to interpret the pattern.</param>\n            <example>\n            The following example shows how to expect a call to a method where the \n            string argument matches the given regular expression, in a case insensitive way:\n            <code>\n            mock.Protected()\n                .Setup(\"Check\", ItExpr.IsRegex(\"[a-z]+\", RegexOptions.IgnoreCase))\n                .Returns(1);\n            </code>\n            </example>\n        </member>\n        <member name=\"T:Moq.Protected.ProtectedExtension\">\n            <summary>\n            Enables the <c>Protected()</c> method on <see cref=\"T:Moq.Mock`1\"/>, \n            allowing setups to be set for protected members by using their \n            name as a string, rather than strong-typing them which is not possible \n            due to their visibility.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Protected.ProtectedExtension.Protected``1(Moq.Mock{``0})\">\n            <summary>\n            Enable protected setups for the mock.\n            </summary>\n            <typeparam name=\"T\">Mocked object type. Typically omitted as it can be inferred from the mock instance.</typeparam>\n            <param name=\"mock\">The mock to set the protected setups on.</param>\n        </member>\n        <member name=\"T:ThisAssembly\">\n            <group name=\"overview\" title=\"Overview\" order=\"0\" />\n            <group name=\"setups\" title=\"Specifying setups\" order=\"1\" />\n            <group name=\"returns\" title=\"Returning values from members\" order=\"2\" />\n            <group name=\"verification\" title=\"Verifying setups\" order=\"3\" />\n            <group name=\"advanced\" title=\"Advanced scenarios\" order=\"99\" />\n            <group name=\"factory\" title=\"Using MockFactory for consistency across mocks\" order=\"4\" />\n        </member>\n        <member name=\"T:Moq.Range\">\n            <summary>\n            Kind of range to use in a filter specified through \n            <see cref=\"M:Moq.It.IsInRange``1(``0,``0,Moq.Range)\"/>.\n            </summary>\n        </member>\n        <member name=\"F:Moq.Range.Inclusive\">\n            <summary>\n            The range includes the <c>to</c> and \n            <c>from</c> values.\n            </summary>\n        </member>\n        <member name=\"F:Moq.Range.Exclusive\">\n            <summary>\n            The range does not include the <c>to</c> and \n            <c>from</c> values.\n            </summary>\n        </member>\n        <member name=\"T:Moq.DefaultValue\">\n            <summary>\n            Determines the way default values are generated \n            calculated for loose mocks.\n            </summary>\n        </member>\n        <member name=\"F:Moq.DefaultValue.Empty\">\n            <summary>\n            Default behavior, which generates empty values for \n            value types (i.e. default(int)), empty array and \n            enumerables, and nulls for all other reference types.\n            </summary>\n        </member>\n        <member name=\"F:Moq.DefaultValue.Mock\">\n            <summary>\n            Whenever the default value generated by <see cref=\"F:Moq.DefaultValue.Empty\"/> \n            is null, replaces this value with a mock (if the type \n            can be mocked). \n            </summary>\n            <remarks>\n            For sealed classes, a null value will be generated.\n            </remarks>\n        </member>\n        <member name=\"T:Moq.Linq.MockQueryable`1\">\n            <summary>\n            A default implementation of IQueryable for use with QueryProvider\n            </summary>\n        </member>\n        <member name=\"M:Moq.Linq.MockQueryable`1.#ctor(System.Linq.Expressions.MethodCallExpression)\">\n            <summary>\n            The <paramref name=\"underlyingCreateMocks\"/> is a \n            static method that returns an IQueryable of Mocks of T which is used to \n            apply the linq specification to.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Match\">\n            <summary>\n\t\t\tAllows creation custom value matchers that can be used on setups and verification,\n\t\t\tcompletely replacing the built-in <see cref=\"T:Moq.It\"/> class with your own argument\n\t\t\tmatching rules.\n\t\t</summary><remarks>\n\t\t\t See also <see cref=\"T:Moq.Match`1\"/>.\n\t\t</remarks>\n        </member>\n        <member name=\"M:Moq.Match.Matcher``1\">\n            <devdoc>\n            Provided for the sole purpose of rendering the delegate passed to the \n            matcher constructor if no friendly render lambda is provided.\n            </devdoc>\n        </member>\n        <member name=\"M:Moq.Match.Create``1(System.Predicate{``0})\">\n            <summary>\n\t\t\tInitializes the match with the condition that\n\t\t\twill be checked in order to match invocation\n\t\t\tvalues.\n\t\t</summary><param name=\"condition\">The condition to match against actual values.</param><remarks>\n\t\t\t <seealso cref=\"T:Moq.Match`1\"/>\n\t\t</remarks>\n        </member>\n        <member name=\"M:Moq.Match.Create``1(System.Predicate{``0},System.Linq.Expressions.Expression{System.Func{``0}})\">\n            <!-- No matching elements were found for the following include tag --><include file=\"Match.xdoc\" path=\"docs/doc[@for=&quot;Match.Create{T}(condition,renderExpression&quot;]/*\"/>\n        </member>\n        <member name=\"M:Moq.Match.SetLastMatch``1(Moq.Match{``0})\">\n            <devdoc>\n            This method is used to set an expression as the last matcher invoked, \n            which is used in the SetupSet to allow matchers in the prop = value \n            delegate expression. This delegate is executed in \"fluent\" mode in \n            order to capture the value being set, and construct the corresponding \n            methodcall.\n            This is also used in the MatcherFactory for each argument expression.\n            This method ensures that when we execute the delegate, we \n            also track the matcher that was invoked, so that when we create the \n            methodcall we build the expression using it, rather than the null/default \n            value returned from the actual invocation.\n            </devdoc>\n        </member>\n        <member name=\"T:Moq.Match`1\">\n            <summary>\n\t\t\tAllows creation custom value matchers that can be used on setups and verification,\n\t\t\tcompletely replacing the built-in <see cref=\"T:Moq.It\"/> class with your own argument\n\t\t\tmatching rules.\n\t\t</summary><typeparam name=\"T\">Type of the value to match.</typeparam><remarks>\n\t\t\tThe argument matching is used to determine whether a concrete\n\t\t\tinvocation in the mock matches a given setup. This\n\t\t\tmatching mechanism is fully extensible.\n\t\t</remarks><example>\n\t\t\tCreating a custom matcher is straightforward. You just need to create a method\n\t\t\tthat returns a value from a call to <see cref=\"M:Moq.Match.Create``1(System.Predicate{``0})\"/> with \n\t\t\tyour matching condition and optional friendly render expression:\n\t\t\t<code>\n\t\t\t\t[Matcher]\n\t\t\t\tpublic Order IsBigOrder()\n\t\t\t\t{\n\t\t\t\t\treturn Match&lt;Order&gt;.Create(\n\t\t\t\t\t\to =&gt; o.GrandTotal &gt;= 5000, \n\t\t\t\t\t\t/* a friendly expression to render on failures */\n\t\t\t\t\t\t() =&gt; IsBigOrder());\n\t\t\t\t}\n\t\t\t</code>\n\t\t\tThis method can be used in any mock setup invocation:\n\t\t\t<code>\n\t\t\t\tmock.Setup(m =&gt; m.Submit(IsBigOrder()).Throws&lt;UnauthorizedAccessException&gt;();\n\t\t\t</code>\n\t\t\tAt runtime, Moq knows that the return value was a matcher (note that the method MUST be \n\t\t\tannotated with the [Matcher] attribute in order to determine this) and\n\t\t\tevaluates your predicate with the actual value passed into your predicate.\n\t\t\t<para>\n\t\t\t\tAnother example might be a case where you want to match a lists of orders\n\t\t\t\tthat contains a particular one. You might create matcher like the following:\n\t\t\t</para>\n\t\t\t<code>\n\t\t\t\tpublic static class Orders\n\t\t\t\t{\n\t\t\t\t\t[Matcher]\n\t\t\t\t\tpublic static IEnumerable&lt;Order&gt; Contains(Order order)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn Match&lt;IEnumerable&lt;Order&gt;&gt;.Create(orders =&gt; orders.Contains(order));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</code>\n\t\t\tNow we can invoke this static method instead of an argument in an\n\t\t\tinvocation:\n\t\t\t<code>\n\t\t\t\tvar order = new Order { ... };\n\t\t\t\tvar mock = new Mock&lt;IRepository&lt;Order&gt;&gt;();\n\n\t\t\t\tmock.Setup(x =&gt; x.Save(Orders.Contains(order)))\n\t\t\t\t\t .Throws&lt;ArgumentException&gt;();\n\t\t\t</code>\n\t\t</example>\n        </member>\n        <member name=\"T:Moq.FluentMockContext\">\n            <summary>\n            Tracks the current mock and interception context.\n            </summary>\n        </member>\n        <member name=\"P:Moq.FluentMockContext.IsActive\">\n            <summary>\n            Having an active fluent mock context means that the invocation \n            is being performed in \"trial\" mode, just to gather the \n            target method and arguments that need to be matched later \n            when the actual invocation is made.\n            </summary>\n        </member>\n        <member name=\"T:Moq.MockDefaultValueProvider\">\n            <summary>\n            A <see cref=\"T:Moq.IDefaultValueProvider\"/> that returns an empty default value \n            for non-mockeable types, and mocks for all other types (interfaces and \n            non-sealed classes) that can be mocked.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Mocks\">\n            <summary>\n            Allows querying the universe of mocks for those that behave \n            according to the LINQ query specification.\n            </summary>\n            <devdoc>\n            This entry-point into Linq to Mocks is the only one in the root Moq \n            namespace to ease discovery. But to get all the mocking extension \n            methods on Object, a using of Moq.Linq must be done, so that the \n            polluting of the intellisense for all objects is an explicit opt-in.\n            </devdoc>\n        </member>\n        <member name=\"M:Moq.Mocks.Of``1\">\n            <summary>\n            Access the universe of mocks of the given type, to retrieve those \n            that behave according to the LINQ query specification.\n            </summary>\n            <typeparam name=\"T\">The type of the mocked object to query.</typeparam>\n        </member>\n        <member name=\"M:Moq.Mocks.Of``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})\">\n            <summary>\n            Access the universe of mocks of the given type, to retrieve those \n            that behave according to the LINQ query specification.\n            </summary>\n            <param name=\"specification\">The predicate with the setup expressions.</param>\n            <typeparam name=\"T\">The type of the mocked object to query.</typeparam>\n        </member>\n        <member name=\"M:Moq.Mocks.OneOf``1\">\n            <summary>\n            Creates an mock object of the indicated type.\n            </summary>\n            <typeparam name=\"T\">The type of the mocked object.</typeparam>\n            <returns>The mocked object created.</returns>\n        </member>\n        <member name=\"M:Moq.Mocks.OneOf``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})\">\n            <summary>\n            Creates an mock object of the indicated type.\n            </summary>\n            <param name=\"specification\">The predicate with the setup expressions.</param>\n            <typeparam name=\"T\">The type of the mocked object.</typeparam>\n            <returns>The mocked object created.</returns>\n        </member>\n        <member name=\"M:Moq.Mocks.CreateMockQuery``1\">\n            <summary>\n            Creates the mock query with the underlying queriable implementation.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mocks.CreateQueryable``1\">\n            <summary>\n            Wraps the enumerator inside a queryable.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mocks.CreateMocks``1\">\n            <summary>\n            Method that is turned into the actual call from .Query{T}, to \n            transform the queryable query into a normal enumerable query.\n            This method is never used directly by consumers.\n            </summary>\n        </member>\n        <member name=\"M:Moq.Mocks.SetPropery``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1)\">\n            <summary>\n            Extension method used to support Linq-like setup properties that are not virtual but do have \n            a getter and a setter, thereby allowing the use of Linq to Mocks to quickly initialize Dtos too :)\n            </summary>\n        </member>\n        <member name=\"T:Moq.QueryableMockExtensions\">\n            <summary>\n            Helper extensions that are used by the query translator.\n            </summary>\n        </member>\n        <member name=\"M:Moq.QueryableMockExtensions.FluentMock``2(Moq.Mock{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})\">\n            <summary>\n            Retrieves a fluent mock from the given setup expression.\n            </summary>\n        </member>\n        <member name=\"T:Moq.Times\">\n            <summary>\n\t\t\tDefines the number of invocations allowed by a mocked method.\n\t\t</summary>\n        </member>\n        <member name=\"M:Moq.Times.AtLeast(System.Int32)\">\n            <summary>\n\t\t\tSpecifies that a mocked method should be invoked <paramref name=\"callCount\"/> times as minimum.\n\t\t</summary><param name=\"callCount\">The minimun number of times.</param><returns>An object defining the allowed number of invocations.</returns>\n        </member>\n        <member name=\"M:Moq.Times.AtLeastOnce\">\n            <summary>\n\t\t\tSpecifies that a mocked method should be invoked one time as minimum.\n\t\t</summary><returns>An object defining the allowed number of invocations.</returns>\n        </member>\n        <member name=\"M:Moq.Times.AtMost(System.Int32)\">\n            <summary>\n\t\t\tSpecifies that a mocked method should be invoked <paramref name=\"callCount\"/> time as maximun.\n\t\t</summary><param name=\"callCount\">The maximun number of times.</param><returns>An object defining the allowed number of invocations.</returns>\n        </member>\n        <member name=\"M:Moq.Times.AtMostOnce\">\n            <summary>\n\t\t\tSpecifies that a mocked method should be invoked one time as maximun.\n\t\t</summary><returns>An object defining the allowed number of invocations.</returns>\n        </member>\n        <member name=\"M:Moq.Times.Between(System.Int32,System.Int32,Moq.Range)\">\n            <summary>\n\t\t\tSpecifies that a mocked method should be invoked between <paramref name=\"callCountFrom\"/> and\n\t\t\t<paramref name=\"callCountTo\"/> times.\n\t\t</summary><param name=\"callCountFrom\">The minimun number of times.</param><param name=\"callCountTo\">The maximun number of times.</param><param name=\"rangeKind\">\n\t\t\tThe kind of range. See <see cref=\"T:Moq.Range\"/>.\n\t\t</param><returns>An object defining the allowed number of invocations.</returns>\n        </member>\n        <member name=\"M:Moq.Times.Exactly(System.Int32)\">\n            <summary>\n\t\t\tSpecifies that a mocked method should be invoked exactly <paramref name=\"callCount\"/> times.\n\t\t</summary><param name=\"callCount\">The times that a method or property can be called.</param><returns>An object defining the allowed number of invocations.</returns>\n        </member>\n        <member name=\"M:Moq.Times.Never\">\n            <summary>\n\t\t\tSpecifies that a mocked method should not be invoked.\n\t\t</summary><returns>An object defining the allowed number of invocations.</returns>\n        </member>\n        <member name=\"M:Moq.Times.Once\">\n            <summary>\n\t\t\tSpecifies that a mocked method should be invoked exactly one time.\n\t\t</summary><returns>An object defining the allowed number of invocations.</returns>\n        </member>\n        <member name=\"M:Moq.Times.Equals(System.Object)\">\n            <summary>\n\t\t\tDetermines whether the specified <see cref=\"T:System.Object\"/> is equal to this instance.\n\t\t</summary><param name=\"obj\">\n\t\t\tThe <see cref=\"T:System.Object\"/> to compare with this instance.\n\t\t</param><returns>\n\t\t\t<c>true</c> if the specified <see cref=\"T:System.Object\"/> is equal to this instance; otherwise, <c>false</c>.\n\t\t</returns>\n        </member>\n        <member name=\"M:Moq.Times.GetHashCode\">\n            <summary>\n\t\t\tReturns a hash code for this instance.\n\t\t</summary><returns>\n\t\t\tA hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.\n\t\t</returns>\n        </member>\n        <member name=\"M:Moq.Times.op_Equality(Moq.Times,Moq.Times)\">\n            <summary>\n\t\t\tDetermines whether two specified <see cref=\"T:Moq.Times\"/> objects have the same value.\n\t\t</summary><param name=\"left\">\n\t\t\tThe first <see cref=\"T:Moq.Times\"/>.\n\t\t</param><param name=\"right\">\n\t\t\tThe second <see cref=\"T:Moq.Times\"/>.\n\t\t</param><returns>\n\t\t\t<c>true</c> if the value of left is the same as the value of right; otherwise, <c>false</c>.\n\t\t</returns>\n        </member>\n        <member name=\"M:Moq.Times.op_Inequality(Moq.Times,Moq.Times)\">\n            <summary>\n\t\t\tDetermines whether two specified <see cref=\"T:Moq.Times\"/> objects have different values.\n\t\t</summary><param name=\"left\">\n\t\t\tThe first <see cref=\"T:Moq.Times\"/>.\n\t\t</param><param name=\"right\">\n\t\t\tThe second <see cref=\"T:Moq.Times\"/>.\n\t\t</param><returns>\n\t\t\t<c>true</c> if the value of left is different from the value of right; otherwise, <c>false</c>.\n\t\t</returns>\n        </member>\n    </members>\n</doc>\n"
  },
  {
    "path": "References/xunit.LICENSE",
    "content": "Microsoft Public License (Ms-PL)\n\nThis license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.\n\n1. Definitions\n\nThe terms \"reproduce,\" \"reproduction,\" \"derivative works,\" and \"distribution\" have the same meaning here as under U.S. copyright law.\n\nA \"contribution\" is the original software, or any additions or changes to the software.\n\nA \"contributor\" is any person that distributes its contribution under this license.\n\n\"Licensed patents\" are a contributor's patent claims that read directly on its contribution.\n\n2. Grant of Rights\n\n(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.\n\n(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.\n\n3. Conditions and Limitations\n\n(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.\n\n(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.\n\n(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.\n\n(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.\n\n(E) The software is licensed \"as-is.\" You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement."
  },
  {
    "path": "References/xunit.extensions.xml",
    "content": "<?xml version=\"1.0\"?>\n<doc>\n    <assembly>\n        <name>xunit.extensions</name>\n    </assembly>\n    <members>\n        <member name=\"T:Xunit.Extensions.Assertions\">\n            <summary>\n            A wrapper for Assert which is used by <see cref=\"T:Xunit.Extensions.TestClass\"/>.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Contains``1(``0,System.Collections.Generic.IEnumerable{``0})\">\n            <summary>\n            Verifies that a collection contains a given object.\n            </summary>\n            <typeparam name=\"T\">The type of the object to be verified</typeparam>\n            <param name=\"expected\">The object expected to be in the collection</param>\n            <param name=\"collection\">The collection to be inspected</param>\n            <exception cref=\"T:Xunit.Sdk.ContainsException\">Thrown when the object is not present in the collection</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Contains``1(``0,System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})\">\n            <summary>\n            Verifies that a collection contains a given object, using an equality comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the object to be verified</typeparam>\n            <param name=\"expected\">The object expected to be in the collection</param>\n            <param name=\"collection\">The collection to be inspected</param>\n            <param name=\"comparer\">The comparer used to equate objects in the collection with the expected object</param>\n            <exception cref=\"T:Xunit.Sdk.ContainsException\">Thrown when the object is not present in the collection</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Contains``1(``0,System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})\">\n            <summary>\n            Verifies that a collection contains a given object, using a comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the object to be verified</typeparam>\n            <param name=\"expected\">The object expected to be in the collection</param>\n            <param name=\"collection\">The collection to be inspected</param>\n            <param name=\"comparer\">The comparer used to equate objects in the collection with the expected object</param>\n            <exception cref=\"T:Xunit.Sdk.ContainsException\">Thrown when the object is not present in the collection</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Contains(System.String,System.String)\">\n            <summary>\n            Verifies that a string contains a given sub-string, using the current culture.\n            </summary>\n            <param name=\"expectedSubString\">The sub-string expected to be in the string</param>\n            <param name=\"actualString\">The string to be inspected</param>\n            <exception cref=\"T:Xunit.Sdk.ContainsException\">Thrown when the sub-string is not present inside the string</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Contains(System.String,System.String,System.StringComparison)\">\n            <summary>\n            Verifies that a string contains a given sub-string, using the given comparison type.\n            </summary>\n            <param name=\"expectedSubString\">The sub-string expected to be in the string</param>\n            <param name=\"actualString\">The string to be inspected</param>\n            <param name=\"comparisonType\">The type of string comparison to perform</param>\n            <exception cref=\"T:Xunit.Sdk.ContainsException\">Thrown when the sub-string is not present inside the string</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.DoesNotContain``1(``0,System.Collections.Generic.IEnumerable{``0})\">\n            <summary>\n            Verifies that a collection does not contain a given object.\n            </summary>\n            <typeparam name=\"T\">The type of the object to be compared</typeparam>\n            <param name=\"expected\">The object that is expected not to be in the collection</param>\n            <param name=\"collection\">The collection to be inspected</param>\n            <exception cref=\"T:Xunit.Sdk.DoesNotContainException\">Thrown when the object is present inside the container</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.DoesNotContain``1(``0,System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})\">\n            <summary>\n            Verifies that a collection does not contain a given object, using an equality comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the object to be compared</typeparam>\n            <param name=\"expected\">The object that is expected not to be in the collection</param>\n            <param name=\"collection\">The collection to be inspected</param>\n            <param name=\"comparer\">The comparer used to equate objects in the collection with the expected object</param>\n            <exception cref=\"T:Xunit.Sdk.DoesNotContainException\">Thrown when the object is present inside the container</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.DoesNotContain``1(``0,System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})\">\n            <summary>\n            Verifies that a collection does not contain a given object, using a comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the object to be compared</typeparam>\n            <param name=\"expected\">The object that is expected not to be in the collection</param>\n            <param name=\"collection\">The collection to be inspected</param>\n            <param name=\"comparer\">The comparer used to equate objects in the collection with the expected object</param>\n            <exception cref=\"T:Xunit.Sdk.DoesNotContainException\">Thrown when the object is present inside the container</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.DoesNotContain(System.String,System.String)\">\n            <summary>\n            Verifies that a string does not contain a given sub-string, using the current culture.\n            </summary>\n            <param name=\"expectedSubString\">The sub-string which is expected not to be in the string</param>\n            <param name=\"actualString\">The string to be inspected</param>\n            <exception cref=\"T:Xunit.Sdk.DoesNotContainException\">Thrown when the sub-string is present inside the string</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.DoesNotContain(System.String,System.String,System.StringComparison)\">\n            <summary>\n            Verifies that a string does not contain a given sub-string, using the current culture.\n            </summary>\n            <param name=\"expectedSubString\">The sub-string which is expected not to be in the string</param>\n            <param name=\"actualString\">The string to be inspected</param>\n            <param name=\"comparisonType\">The type of string comparison to perform</param>\n            <exception cref=\"T:Xunit.Sdk.DoesNotContainException\">Thrown when the sub-string is present inside the given string</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.DoesNotThrow(Xunit.Assert.ThrowsDelegate)\">\n            <summary>\n            Verifies that a block of code does not throw any exceptions.\n            </summary>\n            <param name=\"testCode\">A delegate to the code to be tested</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Empty(System.Collections.IEnumerable)\">\n            <summary>\n            Verifies that a collection is empty.\n            </summary>\n            <param name=\"collection\">The collection to be inspected</param>\n            <exception cref=\"T:System.ArgumentNullException\">Thrown when the collection is null</exception>\n            <exception cref=\"T:Xunit.Sdk.EmptyException\">Thrown when the collection is not empty</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Equal``1(``0,``0)\">\n            <summary>\n            Verifies that two objects are equal, using a default comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the objects to be compared</typeparam>\n            <param name=\"expected\">The expected value</param>\n            <param name=\"actual\">The value to be compared against</param>\n            <exception cref=\"T:Xunit.Sdk.EqualException\">Thrown when the objects are not equal</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Equal``1(``0,``0,System.Collections.Generic.IEqualityComparer{``0})\">\n            <summary>\n            Verifies that two objects are equal, using a custom equatable comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the objects to be compared</typeparam>\n            <param name=\"expected\">The expected value</param>\n            <param name=\"actual\">The value to be compared against</param>\n            <param name=\"comparer\">The comparer used to compare the two objects</param>\n            <exception cref=\"T:Xunit.Sdk.EqualException\">Thrown when the objects are not equal</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Equal``1(``0,``0,System.Collections.Generic.IComparer{``0})\">\n            <summary>\n            Verifies that two objects are equal, using a custom comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the objects to be compared</typeparam>\n            <param name=\"expected\">The expected value</param>\n            <param name=\"actual\">The value to be compared against</param>\n            <param name=\"comparer\">The comparer used to compare the two objects</param>\n            <exception cref=\"T:Xunit.Sdk.EqualException\">Thrown when the objects are not equal</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.False(System.Boolean)\">\n            <summary>\n            Verifies that the condition is false.\n            </summary>\n            <param name=\"condition\">The condition to be tested</param>\n            <exception cref=\"T:Xunit.Sdk.FalseException\">Thrown if the condition is not false</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.False(System.Boolean,System.String)\">\n            <summary>\n            Verifies that the condition is false.\n            </summary>\n            <param name=\"condition\">The condition to be tested</param>\n            <param name=\"userMessage\">The message to show when the condition is not false</param>\n            <exception cref=\"T:Xunit.Sdk.FalseException\">Thrown if the condition is not false</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.InRange``1(``0,``0,``0)\">\n            <summary>\n            Verifies that a value is within a given range.\n            </summary>\n            <typeparam name=\"T\">The type of the value to be compared</typeparam>\n            <param name=\"actual\">The actual value to be evaluated</param>\n            <param name=\"low\">The (inclusive) low value of the range</param>\n            <param name=\"high\">The (inclusive) high value of the range</param>\n            <exception cref=\"T:Xunit.Sdk.InRangeException\">Thrown when the value is not in the given range</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.InRange``1(``0,``0,``0,System.Collections.Generic.IComparer{``0})\">\n            <summary>\n            Verifies that a value is within a given range, using a comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the value to be compared</typeparam>\n            <param name=\"actual\">The actual value to be evaluated</param>\n            <param name=\"low\">The (inclusive) low value of the range</param>\n            <param name=\"high\">The (inclusive) high value of the range</param>\n            <param name=\"comparer\">The comparer used to evaluate the value's range</param>\n            <exception cref=\"T:Xunit.Sdk.InRangeException\">Thrown when the value is not in the given range</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.IsAssignableFrom``1(System.Object)\">\n            <summary>\n            Verifies that an object is of the given type or a derived type.\n            </summary>\n            <typeparam name=\"T\">The type the object should be</typeparam>\n            <param name=\"object\">The object to be evaluated</param>\n            <returns>The object, casted to type T when successful</returns>\n            <exception cref=\"T:Xunit.Sdk.IsAssignableFromException\">Thrown when the object is not the given type</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.IsAssignableFrom(System.Type,System.Object)\">\n            <summary>\n            Verifies that an object is of the given type or a derived type.\n            </summary>\n            <param name=\"expectedType\">The type the object should be</param>\n            <param name=\"object\">The object to be evaluated</param>\n            <exception cref=\"T:Xunit.Sdk.IsAssignableFromException\">Thrown when the object is not the given type</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.IsNotType``1(System.Object)\">\n            <summary>\n            Verifies that an object is not exactly the given type.\n            </summary>\n            <typeparam name=\"T\">The type the object should not be</typeparam>\n            <param name=\"object\">The object to be evaluated</param>\n            <exception cref=\"T:Xunit.Sdk.IsNotTypeException\">Thrown when the object is the given type</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.IsNotType(System.Type,System.Object)\">\n            <summary>\n            Verifies that an object is not exactly the given type.\n            </summary>\n            <param name=\"expectedType\">The type the object should not be</param>\n            <param name=\"object\">The object to be evaluated</param>\n            <exception cref=\"T:Xunit.Sdk.IsNotTypeException\">Thrown when the object is the given type</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.IsType``1(System.Object)\">\n            <summary>\n            Verifies that an object is exactly the given type (and not a derived type).\n            </summary>\n            <typeparam name=\"T\">The type the object should be</typeparam>\n            <param name=\"object\">The object to be evaluated</param>\n            <returns>The object, casted to type T when successful</returns>\n            <exception cref=\"T:Xunit.Sdk.IsTypeException\">Thrown when the object is not the given type</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.IsType(System.Type,System.Object)\">\n            <summary>\n            Verifies that an object is exactly the given type (and not a derived type).\n            </summary>\n            <param name=\"expectedType\">The type the object should be</param>\n            <param name=\"object\">The object to be evaluated</param>\n            <exception cref=\"T:Xunit.Sdk.IsTypeException\">Thrown when the object is not the given type</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.NotEmpty(System.Collections.IEnumerable)\">\n            <summary>\n            Verifies that a collection is not empty.\n            </summary>\n            <param name=\"collection\">The collection to be inspected</param>\n            <exception cref=\"T:System.ArgumentNullException\">Thrown when a null collection is passed</exception>\n            <exception cref=\"T:Xunit.Sdk.NotEmptyException\">Thrown when the collection is empty</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.NotEqual``1(``0,``0)\">\n            <summary>\n            Verifies that two objects are not equal, using a default comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the objects to be compared</typeparam>\n            <param name=\"expected\">The expected object</param>\n            <param name=\"actual\">The actual object</param>\n            <exception cref=\"T:Xunit.Sdk.NotEqualException\">Thrown when the objects are equal</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.NotEqual``1(``0,``0,System.Collections.Generic.IEqualityComparer{``0})\">\n            <summary>\n            Verifies that two objects are not equal, using a custom equality comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the objects to be compared</typeparam>\n            <param name=\"expected\">The expected object</param>\n            <param name=\"actual\">The actual object</param>\n            <param name=\"comparer\">The comparer used to examine the objects</param>\n            <exception cref=\"T:Xunit.Sdk.NotEqualException\">Thrown when the objects are equal</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.NotEqual``1(``0,``0,System.Collections.Generic.IComparer{``0})\">\n            <summary>\n            Verifies that two objects are not equal, using a custom comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the objects to be compared</typeparam>\n            <param name=\"expected\">The expected object</param>\n            <param name=\"actual\">The actual object</param>\n            <param name=\"comparer\">The comparer used to examine the objects</param>\n            <exception cref=\"T:Xunit.Sdk.NotEqualException\">Thrown when the objects are equal</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.NotInRange``1(``0,``0,``0)\">\n            <summary>\n            Verifies that a value is not within a given range, using the default comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the value to be compared</typeparam>\n            <param name=\"actual\">The actual value to be evaluated</param>\n            <param name=\"low\">The (inclusive) low value of the range</param>\n            <param name=\"high\">The (inclusive) high value of the range</param>\n            <exception cref=\"T:Xunit.Sdk.NotInRangeException\">Thrown when the value is in the given range</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.NotInRange``1(``0,``0,``0,System.Collections.Generic.IComparer{``0})\">\n            <summary>\n            Verifies that a value is not within a given range, using a comparer.\n            </summary>\n            <typeparam name=\"T\">The type of the value to be compared</typeparam>\n            <param name=\"actual\">The actual value to be evaluated</param>\n            <param name=\"low\">The (inclusive) low value of the range</param>\n            <param name=\"high\">The (inclusive) high value of the range</param>\n            <param name=\"comparer\">The comparer used to evaluate the value's range</param>\n            <exception cref=\"T:Xunit.Sdk.NotInRangeException\">Thrown when the value is in the given range</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.NotNull(System.Object)\">\n            <summary>\n            Verifies that an object reference is not null.\n            </summary>\n            <param name=\"object\">The object to be validated</param>\n            <exception cref=\"T:Xunit.Sdk.NotNullException\">Thrown when the object is not null</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.NotSame(System.Object,System.Object)\">\n            <summary>\n            Verifies that two objects are not the same instance.\n            </summary>\n            <param name=\"expected\">The expected object instance</param>\n            <param name=\"actual\">The actual object instance</param>\n            <exception cref=\"T:Xunit.Sdk.NotSameException\">Thrown when the objects are the same instance</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Null(System.Object)\">\n            <summary>\n            Verifies that an object reference is null.\n            </summary>\n            <param name=\"object\">The object to be inspected</param>\n            <exception cref=\"T:Xunit.Sdk.NullException\">Thrown when the object reference is not null</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Same(System.Object,System.Object)\">\n            <summary>\n            Verifies that two objects are the same instance.\n            </summary>\n            <param name=\"expected\">The expected object instance</param>\n            <param name=\"actual\">The actual object instance</param>\n            <exception cref=\"T:Xunit.Sdk.SameException\">Thrown when the objects are not the same instance</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Single(System.Collections.IEnumerable)\">\n            <summary>\n            Verifies that the given collection contains only a single\n            element of the given type.\n            </summary>\n            <param name=\"collection\">The collection.</param>\n            <returns>The single item in the collection.</returns>\n            <exception cref=\"T:Xunit.Sdk.SingleException\">Thrown when the collection does not contain\n            exactly one element.</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Single``1(System.Collections.Generic.IEnumerable{``0})\">\n            <summary>\n            Verifies that the given collection contains only a single\n            element of the given type.\n            </summary>\n            <typeparam name=\"T\">The collection type.</typeparam>\n            <param name=\"collection\">The collection.</param>\n            <returns>The single item in the collection.</returns>\n            <exception cref=\"T:Xunit.Sdk.SingleException\">Thrown when the collection does not contain\n            exactly one element.</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Throws``1(Xunit.Assert.ThrowsDelegate)\">\n            <summary>\n            Verifies that the exact exception is thrown (and not a derived exception type).\n            </summary>\n            <typeparam name=\"T\">The type of the exception expected to be thrown</typeparam>\n            <param name=\"testCode\">A delegate to the code to be tested</param>\n            <returns>The exception that was thrown, when successful</returns>\n            <exception cref=\"T:Xunit.Sdk.ThrowsException\">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Throws``1(Xunit.Assert.ThrowsDelegateWithReturn)\">\n            <summary>\n            Verifies that the exact exception is thrown (and not a derived exception type).\n            Generally used to test property accessors.\n            </summary>\n            <typeparam name=\"T\">The type of the exception expected to be thrown</typeparam>\n            <param name=\"testCode\">A delegate to the code to be tested</param>\n            <returns>The exception that was thrown, when successful</returns>\n            <exception cref=\"T:Xunit.Sdk.ThrowsException\">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Throws(System.Type,Xunit.Assert.ThrowsDelegate)\">\n            <summary>\n            Verifies that the exact exception is thrown (and not a derived exception type).\n            </summary>\n            <param name=\"exceptionType\">The type of the exception expected to be thrown</param>\n            <param name=\"testCode\">A delegate to the code to be tested</param>\n            <returns>The exception that was thrown, when successful</returns>\n            <exception cref=\"T:Xunit.Sdk.ThrowsException\">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.Throws(System.Type,Xunit.Assert.ThrowsDelegateWithReturn)\">\n            <summary>\n            Verifies that the exact exception is thrown (and not a derived exception type).\n            Generally used to test property accessors.\n            </summary>\n            <param name=\"exceptionType\">The type of the exception expected to be thrown</param>\n            <param name=\"testCode\">A delegate to the code to be tested</param>\n            <returns>The exception that was thrown, when successful</returns>\n            <exception cref=\"T:Xunit.Sdk.ThrowsException\">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.True(System.Boolean)\">\n            <summary>\n            Verifies that an expression is true.\n            </summary>\n            <param name=\"condition\">The condition to be inspected</param>\n            <exception cref=\"T:Xunit.Sdk.TrueException\">Thrown when the condition is false</exception>\n        </member>\n        <member name=\"M:Xunit.Extensions.Assertions.True(System.Boolean,System.String)\">\n            <summary>\n            Verifies that an expression is true.\n            </summary>\n            <param name=\"condition\">The condition to be inspected</param>\n            <param name=\"userMessage\">The message to be shown when the condition is false</param>\n            <exception cref=\"T:Xunit.Sdk.TrueException\">Thrown when the condition is false</exception>\n        </member>\n        <member name=\"T:Xunit.Extensions.TestClass\">\n            <summary>\n            A class which can be derived from for test classes, which bring an overridable version\n            of Assert (using the <see cref=\"T:Xunit.Extensions.Assertions\"/> class.\n            </summary>\n        </member>\n        <member name=\"P:Xunit.Extensions.TestClass.Assert\">\n            <summary>\n            Gets a class which provides assertions.\n            </summary>\n        </member>\n        <member name=\"T:Xunit.Extensions.AssumeIdentityAttribute\">\n            <summary>\n            Apply this attribute to your test method to replace the \n            <see cref=\"P:System.Threading.Thread.CurrentPrincipal\"/> with another role.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.AssumeIdentityAttribute.#ctor(System.String)\">\n            <summary>\n            Replaces the identity of the current thread with <paramref name=\"name\"/>.\n            </summary>\n            <param name=\"name\">The role's name</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.AssumeIdentityAttribute.After(System.Reflection.MethodInfo)\">\n            <summary>\n            Restores the original <see cref=\"P:System.Threading.Thread.CurrentPrincipal\"/>.\n            </summary>\n            <param name=\"methodUnderTest\">The method under test</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.AssumeIdentityAttribute.Before(System.Reflection.MethodInfo)\">\n            <summary>\n            Stores the current <see cref=\"P:System.Threading.Thread.CurrentPrincipal\"/> and replaces it with\n            a new role identified in constructor.\n            </summary>\n            <param name=\"methodUnderTest\">The method under test</param>\n        </member>\n        <member name=\"T:Xunit.Extensions.AutoRollbackAttribute\">\n            <summary>\n            Apply this attribute to your test method to automatically create a\n            <see cref=\"T:System.Transactions.TransactionScope\"/> that is rolled back when the test is\n            finished.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.AutoRollbackAttribute.After(System.Reflection.MethodInfo)\">\n            <summary>\n            Rolls back the transaction.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.AutoRollbackAttribute.Before(System.Reflection.MethodInfo)\">\n            <summary>\n            Creates the transaction.\n            </summary>\n        </member>\n        <member name=\"P:Xunit.Extensions.AutoRollbackAttribute.IsolationLevel\">\n            <summary>\n            Gets or sets the isolation level of the transaction.\n            Default value is <see cref=\"P:Xunit.Extensions.AutoRollbackAttribute.IsolationLevel\"/>.Unspecified.\n            </summary>\n        </member>\n        <member name=\"P:Xunit.Extensions.AutoRollbackAttribute.ScopeOption\">\n            <summary>\n            Gets or sets the scope option for the transaction.\n            Default value is <see cref=\"T:System.Transactions.TransactionScopeOption\"/>.Required.\n            </summary>\n        </member>\n        <member name=\"P:Xunit.Extensions.AutoRollbackAttribute.TimeoutInMS\">\n            <summary>\n            Gets or sets the timeout of the transaction, in milliseconds.\n            By default, the transaction will not timeout.\n            </summary>\n        </member>\n        <member name=\"T:Xunit.Extensions.ClassDataAttribute\">\n            <summary>\n            Provides a data source for a data theory, with the data coming from a class\n            which must implement IEnumerable&lt;object[]&gt;.\n            </summary>\n        </member>\n        <member name=\"T:Xunit.Extensions.DataAttribute\">\n            <summary>\n            Abstract attribute which represents a data source for a data theory.\n            Data source providers derive from this attribute and implement GetData\n            to return the data for the theory.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.DataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])\">\n            <summary>\n            Returns the data to be used to test the theory.\n            </summary>\n            <remarks>\n            The <paramref name=\"parameterTypes\"/> parameter is provided so that the\n            test data can be converted to the destination parameter type when necessary.\n            Generally, data should NOT be automatically converted, UNLESS the source data\n            format does not have rich types (for example, all numbers in Excel spreadsheets\n            are returned as <see cref=\"T:System.Double\"/> even if they are integers). Derivers of\n            this class should NOT throw exceptions for mismatched types or mismatched number\n            of parameters; the test framework will throw these exceptions at the correct\n            time.\n            </remarks>\n            <param name=\"methodUnderTest\">The method that is being tested</param>\n            <param name=\"parameterTypes\">The types of the parameters for the test method</param>\n            <returns>The theory data</returns>\n        </member>\n        <member name=\"P:Xunit.Extensions.DataAttribute.TypeId\">\n            <inheritdoc/>\n        </member>\n        <member name=\"M:Xunit.Extensions.ClassDataAttribute.#ctor(System.Type)\">\n            <summary>\n            Initializes a new instance of the <see cref=\"T:Xunit.Extensions.ClassDataAttribute\"/> class.\n            </summary>\n            <param name=\"class\">The class that provides the data.</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.ClassDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])\">\n            <inheritdoc/>\n        </member>\n        <member name=\"T:Xunit.Extensions.DataAdapterDataAttribute\">\n            <summary>\n            Represents an implementation of <see cref=\"T:Xunit.Extensions.DataAttribute\"/> which uses an\n            instance of <see cref=\"T:System.Data.IDataAdapter\"/> to get the data for a <see cref=\"T:Xunit.Extensions.TheoryAttribute\"/>\n            decorated test method.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.DataAdapterDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])\">\n            <inheritdoc/>\n        </member>\n        <member name=\"M:Xunit.Extensions.DataAdapterDataAttribute.ConvertParameter(System.Object,System.Type)\">\n            <summary>\n            Converts a parameter to its destination parameter type, if necessary.\n            </summary>\n            <param name=\"parameter\">The parameter value</param>\n            <param name=\"parameterType\">The destination parameter type (null if not known)</param>\n            <returns>The converted parameter value</returns>\n        </member>\n        <member name=\"P:Xunit.Extensions.DataAdapterDataAttribute.DataAdapter\">\n            <summary>\n            Gets the data adapter to be used to retrieve the test data.\n            </summary>\n        </member>\n        <member name=\"T:Xunit.Extensions.InlineDataAttribute\">\n            <summary>\n            Provides a data source for a data theory, with the data coming from inline values.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.InlineDataAttribute.#ctor(System.Object[])\">\n            <summary>\n            Initializes a new instance of the <see cref=\"T:Xunit.Extensions.InlineDataAttribute\"/> class.\n            </summary>\n            <param name=\"dataValues\">The data values to pass to the theory</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.InlineDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])\">\n            <summary>\n            Returns the data to be used to test the theory.\n            </summary>\n            <param name=\"methodUnderTest\">The method that is being tested</param>\n            <param name=\"parameterTypes\">The types of the parameters for the test method</param>\n            <returns>The theory data, in table form</returns>\n        </member>\n        <member name=\"T:Xunit.Extensions.OleDbDataAttribute\">\n            <summary>\n            Provides a data source for a data theory, with the data coming from an OLEDB connection.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.OleDbDataAttribute.#ctor(System.String,System.String)\">\n            <summary>\n            Creates a new instance of <see cref=\"T:Xunit.Extensions.OleDbDataAttribute\"/>.\n            </summary>\n            <param name=\"connectionString\">The OLEDB connection string to the data</param>\n            <param name=\"selectStatement\">The SELECT statement used to return the data for the theory</param>\n        </member>\n        <member name=\"P:Xunit.Extensions.OleDbDataAttribute.DataAdapter\">\n            <inheritdoc/>\n        </member>\n        <member name=\"T:Xunit.Extensions.PropertyDataAttribute\">\n            <summary>\n            Provides a data source for a data theory, with the data coming from a public static property on the test class.\n            The property must return IEnumerable&lt;object[]&gt; with the test data.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.PropertyDataAttribute.#ctor(System.String)\">\n            <summary>\n            Creates a new instance of <see cref=\"T:Xunit.Extensions.PropertyDataAttribute\"/>/\n            </summary>\n            <param name=\"propertyName\">The name of the public static property on the test class that will provide the test data</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.PropertyDataAttribute.GetData(System.Reflection.MethodInfo,System.Type[])\">\n            <summary>\n            Returns the data to be used to test the theory.\n            </summary>\n            <param name=\"methodUnderTest\">The method that is being tested</param>\n            <param name=\"parameterTypes\">The types of the parameters for the test method</param>\n            <returns>The theory data, in table form</returns>\n        </member>\n        <member name=\"T:Xunit.Extensions.SqlServerDataAttribute\">\n            <summary>\n            Provides a data source for a data theory, with the data coming a Microsoft SQL Server.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.SqlServerDataAttribute.#ctor(System.String,System.String,System.String)\">\n            <summary>\n            Creates a new instance of <see cref=\"T:Xunit.Extensions.SqlServerDataAttribute\"/>, using a trusted connection.\n            </summary>\n            <param name=\"serverName\">The server name of the Microsoft SQL Server</param>\n            <param name=\"databaseName\">The database name</param>\n            <param name=\"selectStatement\">The SQL SELECT statement to return the data for the data theory</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.SqlServerDataAttribute.#ctor(System.String,System.String,System.String,System.String,System.String)\">\n            <summary>\n            Creates a new instance of <see cref=\"T:Xunit.Extensions.SqlServerDataAttribute\"/>, using the provided username and password.\n            </summary>\n            <param name=\"serverName\">The server name of the Microsoft SQL Server</param>\n            <param name=\"databaseName\">The database name</param>\n            <param name=\"username\">The username for the server</param>\n            <param name=\"password\">The password for the server</param>\n            <param name=\"selectStatement\">The SQL SELECT statement to return the data for the data theory</param>\n        </member>\n        <member name=\"T:Xunit.Extensions.ExcelDataAttribute\">\n            <summary>\n            Provides a data source for a data theory, with the data coming a Microsoft Excel (.xls) spreadsheet.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.ExcelDataAttribute.#ctor(System.String,System.String)\">\n            <summary>\n            Creates a new instance of <see cref=\"T:Xunit.Extensions.ExcelDataAttribute\"/>.\n            </summary>\n            <param name=\"filename\">The filename of the XLS spreadsheet file; if the filename provided\n            is relative, then it is relative to the location of xunit.extensions.dll.</param>\n            <param name=\"selectStatement\">The SELECT statement that returns the data for the theory</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.ExcelDataAttribute.ConvertParameter(System.Object,System.Type)\">\n            <inheritdoc/>\n        </member>\n        <member name=\"T:Xunit.Extensions.Clock\">\n            <summary>\n            A wrapper around the static operations on <see cref=\"T:System.DateTime\"/> which allows time\n            to be frozen using the <see cref=\"T:Xunit.Extensions.FreezeClockAttribute\"/>. The clock begins in the\n            thawed state; that is, calls to <see cref=\"P:Xunit.Extensions.Clock.Now\"/>, <see cref=\"P:Xunit.Extensions.Clock.Today\"/>, and\n            <see cref=\"P:Xunit.Extensions.Clock.UtcNow\"/> return current (non-frozen) values.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.Clock.Freeze\">\n            <summary>\n            Freezes the clock with the current time.\n            Until <see cref=\"M:Xunit.Extensions.Clock.Thaw\"/> is called, all calls to <see cref=\"P:Xunit.Extensions.Clock.Now\"/>, <see cref=\"P:Xunit.Extensions.Clock.Today\"/>, and\n            <see cref=\"P:Xunit.Extensions.Clock.UtcNow\"/> will return the exact same values.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.Clock.FreezeLocal(System.DateTime)\">\n            <summary>\n            Freezes the clock with the given date and time, considered to be local time.\n            Until <see cref=\"M:Xunit.Extensions.Clock.Thaw\"/> is called, all calls to <see cref=\"P:Xunit.Extensions.Clock.Now\"/>, <see cref=\"P:Xunit.Extensions.Clock.Today\"/>, and\n            <see cref=\"P:Xunit.Extensions.Clock.UtcNow\"/> will return the exact same values.\n            </summary>\n            <param name=\"localDateTime\">The local date and time to freeze to</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.Clock.FreezeUtc(System.DateTime)\">\n            <summary>\n            Freezes the clock with the given date and time, considered to be Coordinated Universal Time (UTC).\n            Until <see cref=\"M:Xunit.Extensions.Clock.Thaw\"/> is called, all calls to <see cref=\"P:Xunit.Extensions.Clock.Now\"/>, <see cref=\"P:Xunit.Extensions.Clock.Today\"/>, and\n            <see cref=\"P:Xunit.Extensions.Clock.UtcNow\"/> will return the exact same values.\n            </summary>\n            <param name=\"utcDateTime\">The UTC date and time to freeze to</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.Clock.Thaw\">\n            <summary>\n            Thaws the clock so that <see cref=\"P:Xunit.Extensions.Clock.Now\"/>, <see cref=\"P:Xunit.Extensions.Clock.Today\"/>, and <see cref=\"P:Xunit.Extensions.Clock.UtcNow\"/>\n            return normal values.\n            </summary>\n        </member>\n        <member name=\"P:Xunit.Extensions.Clock.Now\">\n            <summary>\n            Gets a <see cref=\"T:System.DateTime\"/> object that is set to the current date and time on this computer,\n            expressed as the local time.\n            </summary>\n        </member>\n        <member name=\"P:Xunit.Extensions.Clock.Today\">\n            <summary>\n            Gets the current date.\n            </summary>\n        </member>\n        <member name=\"P:Xunit.Extensions.Clock.UtcNow\">\n            <summary>\n            Gets a <see cref=\"T:System.DateTime\"/> object that is set to the current date and time on this computer,\n            expressed as the Coordinated Universal Time (UTC).\n            </summary>\n        </member>\n        <member name=\"T:Xunit.Extensions.FreezeClockAttribute\">\n            <summary>\n            Apply this attribute to your test method to freeze the time represented by the\n            <see cref=\"T:Xunit.Extensions.Clock\"/> class.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.FreezeClockAttribute.#ctor\">\n            <summary>\n            Freeze the clock with the current date and time.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.FreezeClockAttribute.#ctor(System.Int32,System.Int32,System.Int32)\">\n            <summary>\n            Freeze the clock with the given date, considered to be local time.\n            </summary>\n            <param name=\"year\">The frozen year</param>\n            <param name=\"month\">The frozen month</param>\n            <param name=\"day\">The frozen day</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.FreezeClockAttribute.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)\">\n            <summary>\n            Freeze the clock with the given date and time, considered to be in local time.\n            </summary>\n            <param name=\"year\">The frozen year</param>\n            <param name=\"month\">The frozen month</param>\n            <param name=\"day\">The frozen day</param>\n            <param name=\"hour\">The frozen hour</param>\n            <param name=\"minute\">The frozen minute</param>\n            <param name=\"second\">The frozen second</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.FreezeClockAttribute.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.DateTimeKind)\">\n            <summary>\n            Freeze the clock with the given date and time, with the given kind of time.\n            </summary>\n            <param name=\"year\">The frozen year</param>\n            <param name=\"month\">The frozen month</param>\n            <param name=\"day\">The frozen day</param>\n            <param name=\"hour\">The frozen hour</param>\n            <param name=\"minute\">The frozen minute</param>\n            <param name=\"second\">The frozen second</param>\n            <param name=\"kind\">The frozen time kind</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.FreezeClockAttribute.After(System.Reflection.MethodInfo)\">\n            <summary>\n            Thaws the clock.\n            </summary>\n            <param name=\"methodUnderTest\">The method under test</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.FreezeClockAttribute.Before(System.Reflection.MethodInfo)\">\n            <summary>\n            Freezes the clock.\n            </summary>\n            <param name=\"methodUnderTest\">The method under test</param>\n        </member>\n        <member name=\"T:Xunit.Extensions.TheoryAttribute\">\n            <summary>\n            Marks a test method as being a data theory. Data theories are tests which are fed\n            various bits of data from a data source, mapping to parameters on the test method.\n            If the data source contains multiple rows, then the test method is executed\n            multiple times (once with each data row).\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.TheoryAttribute.EnumerateTestCommands(Xunit.Sdk.IMethodInfo)\">\n            <summary>\n            Creates instances of <see cref=\"T:Xunit.Extensions.TheoryCommand\"/> which represent individual intended\n            invocations of the test method, one per data row in the data source.\n            </summary>\n            <param name=\"method\">The method under test</param>\n            <returns>An enumerator through the desired test method invocations</returns>\n        </member>\n        <member name=\"T:Xunit.Extensions.TheoryCommand\">\n            <summary>\n            Represents a single invocation of a data theory test method.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.TheoryCommand.#ctor(Xunit.Sdk.IMethodInfo,System.Object[])\">\n            <summary>\n            Creates a new instance of <see cref=\"T:Xunit.Extensions.TheoryCommand\"/>.\n            </summary>\n            <param name=\"testMethod\">The method under test</param>\n            <param name=\"parameters\">The parameters to be passed to the test method</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.TheoryCommand.Execute(System.Object)\">\n            <inheritdoc/>\n        </member>\n        <member name=\"P:Xunit.Extensions.TheoryCommand.Parameters\">\n            <summary>\n            Gets the parameter values that are passed to the test method.\n            </summary>\n        </member>\n        <member name=\"T:Xunit.Extensions.TraceAttribute\">\n            <summary>\n            Apply to a test method to trace the method begin and end.\n            </summary>\n        </member>\n        <member name=\"M:Xunit.Extensions.TraceAttribute.Before(System.Reflection.MethodInfo)\">\n            <summary>\n            This method is called before the test method is executed.\n            </summary>\n            <param name=\"methodUnderTest\">The method under test</param>\n        </member>\n        <member name=\"M:Xunit.Extensions.TraceAttribute.After(System.Reflection.MethodInfo)\">\n            <summary>\n            This method is called after the test method is executed.\n            </summary>\n            <param name=\"methodUnderTest\">The method under test</param>\n        </member>\n    </members>\n</doc>\n"
  },
  {
    "path": "Telerik.RazorConverter/Document.cs",
    "content": "﻿namespace Telerik.RazorConverter\n{\n    public class Document<TNode> : IDocument<TNode>\n    {\n        public TNode RootNode \n        { \n            get;\n            private set;\n        }\n\n        public Document(TNode root)\n        {\n            RootNode = root;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/IDocument.cs",
    "content": "﻿namespace Telerik.RazorConverter\n{\n    public interface IDocument<TNode>\n    {\n        TNode RootNode { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/INodeConverter.cs",
    "content": "﻿namespace Telerik.RazorConverter\n{\n    using System.Collections.Generic;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public interface INodeConverter<TOut>\n    {\n        IList<TOut> ConvertNode(IWebFormsNode node);\n        bool CanConvertNode(IWebFormsNode node);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/IOrderMetadata.cs",
    "content": "﻿namespace Telerik.RazorConverter\n{\n    using System.ComponentModel;\n\n    public interface IOrderMetadata\n    {\n        [DefaultValue(int.MaxValue)]\n        int Order { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/IRenderer.cs",
    "content": "﻿namespace Telerik.RazorConverter\n{\n    public interface IRenderer<TNode>\n    {\n        string Render(IDocument<TNode> document);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/IWebFormsConverter.cs",
    "content": "﻿namespace Telerik.RazorConverter\n{\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public interface IWebFormsConverter<TNode>\n    {\n        IDocument<TNode> Convert(IDocument<IWebFormsNode> rootNode);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/IWebFormsParser.cs",
    "content": "﻿namespace Telerik.RazorConverter\n{\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public interface IWebFormsParser\n    {\n        IDocument<IWebFormsNode> Parse(string input);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Properties/AssemblyInfo.cs",
    "content": "﻿using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Information about an assembly is controlled through the following \n// set of attributes. Change these attribute values to modify the information\n// associated with an assembly.\n[assembly: AssemblyTitle(\"RazorConverter\")]\n[assembly: AssemblyDescription(\"\")]\n[assembly: AssemblyConfiguration(\"\")]\n[assembly: AssemblyCompany(\"Microsoft\")]\n[assembly: AssemblyProduct(\"RazorConverter\")]\n[assembly: AssemblyCopyright(\"Copyright © Microsoft 2010\")]\n[assembly: AssemblyTrademark(\"\")]\n[assembly: AssemblyCulture(\"\")]\n\n// Setting ComVisible to false makes the types in this assembly not visible \n// to COM components.  If you need to access a type in this assembly from \n// COM, set the ComVisible attribute to true on that type.\n[assembly: ComVisible(false)]\n\n// The following GUID is for the ID of the typelib if this project is exposed to COM\n[assembly: Guid(\"1213bf5a-cfd6-46b5-9dba-483e72babf0d\")]\n\n// Version information for an assembly consists of the following four values:\n//\n//      Major Version\n//      Minor Version \n//      Build Number\n//      Revision\n//\n// You can specify all the values or you can default the Build and Revision Numbers \n// by using the '*' as shown below:\n// [assembly: AssemblyVersion(\"1.0.*\")]\n[assembly: AssemblyVersion(\"1.0.0.0\")]\n[assembly: AssemblyFileVersion(\"1.0.0.0\")]\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/CodeBlockConverter.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    using System.Collections.Generic;\n    using System.Text.RegularExpressions;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public class CodeBlockConverter : INodeConverter<IRazorNode>\n    {\n        private IRazorCodeNodeFactory CodeNodeFactory\n        {\n            get;\n            set;\n        }\n\n        public CodeBlockConverter(IRazorCodeNodeFactory nodeFactory)\n        {\n            CodeNodeFactory = nodeFactory;\n        }\n\n        public IList<IRazorNode> ConvertNode(IWebFormsNode node)\n        {\n            var srcNode = node as IWebFormsCodeBlockNode;\n            var requiresPrefix = srcNode.BlockType == CodeBlockNodeType.Complete || srcNode.BlockType == CodeBlockNodeType.Opening;\n\n            // Not implemented: Detection requires analysis of the C# code to determine if it contains more than one statement\n            // See CodeBlockConverterTests.Should_require_block_for_multi_statement_code_block\n            var requiresBlock = false;\n\n            var code = srcNode.Code;\n            code = ReplaceRenderPartial(code);\n\n            if (code.TrimStart().StartsWith(\"@\"))\n            {\n                requiresPrefix = false;\n            }\n\n            var codeNode = CodeNodeFactory.CreateCodeNode(code, requiresPrefix, requiresBlock);\n\n            return new IRazorNode[] { codeNode };\n        }\n\n        public bool CanConvertNode(IWebFormsNode node)\n        {\n            return node is IWebFormsCodeBlockNode;\n        }\n\n        private string ReplaceRenderPartial(string input)\n        {\n            var searchRegex = new Regex(@\"Html.RenderPartial\\((?<page>.*?)\\);\", RegexOptions.Singleline | RegexOptions.Multiline);\n            return searchRegex.Replace(input, m =>\n            {\n                return string.Format(\"@Html.Partial({0})\", m.Groups[\"page\"].Value.Trim());\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/CodeGroupConverter.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    using System.Collections.Generic;\n    using Telerik.RazorConverter;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public class CodeGroupConverter : INodeConverter<IRazorNode>\n    {\n        private IRazorNodeConverterProvider NodeConverterProvider\n        {\n            get;\n            set;\n        }\n\n        public CodeGroupConverter(IRazorNodeConverterProvider converterProvider)\n        {\n            NodeConverterProvider = converterProvider;\n        }\n\n        public IList<IRazorNode> ConvertNode(IWebFormsNode node)\n        {\n            var result = new List<IRazorNode>();\n\n            foreach (var childNode in node.Children)\n            {\n                foreach (var converter in NodeConverterProvider.NodeConverters)\n                {\n                    if (converter.CanConvertNode(childNode))\n                    {\n                        foreach (var convertedChildNode in converter.ConvertNode(childNode))\n                        {\n                            result.Add(convertedChildNode);\n                        }\n                    }\n                }\n            }\n\n            return result;\n        }\n\n        public bool CanConvertNode(IWebFormsNode node)\n        {\n            return node as IWebFormsCodeGroupNode != null;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/CommentNodeConverter.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    using System.Collections.Generic;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public class CommentNodeConverter : INodeConverter<IRazorNode>\n    {\n        private IRazorCommentNodeFactory CommentNodeFactory\n        {\n            get;\n            set;\n        }\n\n        public CommentNodeConverter(IRazorCommentNodeFactory nodeFactory)\n        {\n            CommentNodeFactory = nodeFactory;\n        }\n        \n        public IList<IRazorNode> ConvertNode(IWebFormsNode node)\n        {\n            var srcNode = node as IWebFormsCommentNode;\n            var destNode = CommentNodeFactory.CreateCommentNode(srcNode.Text);\n            return new IRazorNode[] { destNode };\n        }\n\n        public bool CanConvertNode(IWebFormsNode node)\n        {\n            return node is IWebFormsCommentNode;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/ContentTagConverter.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\r\n{\r\n    using System;\r\n    using System.Collections.Generic;\r\n    using Telerik.RazorConverter;\r\n    using Telerik.RazorConverter.Razor.DOM;\r\n    using Telerik.RazorConverter.WebForms.DOM;\r\n\r\n    public class ContentTagConverter : INodeConverter<IRazorNode>\r\n    {\r\n        private IRazorNodeConverterProvider NodeConverterProvider\r\n        {\r\n            get;\r\n            set;\r\n        }\r\n\r\n        private IRazorSectionNodeFactory SectionNodeFactory\r\n        {\r\n            get;\r\n            set;\r\n        }\r\n\r\n        private IContentTagConverterConfiguration Configuration\r\n        {\r\n            get;\r\n            set;\r\n        }\r\n\r\n        public ContentTagConverter( IRazorNodeConverterProvider converterProvider,\r\n                                    IRazorSectionNodeFactory sectionFactory,\r\n                                    IContentTagConverterConfiguration converterConfiguration)\r\n        {\r\n            NodeConverterProvider = converterProvider;\r\n            SectionNodeFactory = sectionFactory;\r\n            Configuration = converterConfiguration;\r\n        }\r\n\r\n        public IList<IRazorNode> ConvertNode(IWebFormsNode node)\r\n        {\r\n            var contentTag = node as IWebFormsServerControlNode;\r\n            var shouldRender = false;\r\n            var contentPlaceHolderID = string.Empty; \r\n            var convertedChildren = new List<IRazorNode>();\r\n\r\n            if (contentTag.Attributes.ContainsKey(\"ID\") && contentTag.TagName.ToLower() == \"asp:contentplaceholder\")\r\n            {\r\n                shouldRender = true;\r\n            }\r\n            else\r\n            {\r\n                contentPlaceHolderID = contentTag.Attributes[\"ContentPlaceHolderID\"];\r\n            }\r\n\r\n            Action<IEnumerable<IRazorNode>, IRazorNode> iterateOverChildrens = (childrens, parentNode) =>\r\n            {\r\n                foreach (var convertedNode in childrens)\r\n                {\r\n                    parentNode.Children.Add(convertedNode);\r\n                }\r\n            };\r\n\r\n            foreach (var childNode in node.Children)\r\n            {\r\n                foreach (var converter in NodeConverterProvider.NodeConverters)\r\n                {\r\n                    if (converter.CanConvertNode(childNode))\r\n                    {\r\n                        convertedChildren.AddRange(converter.ConvertNode(childNode));\r\n                    }\r\n                }\r\n            }\r\n\r\n            IRazorSectionNode sectionNode = null;\r\n\r\n            if (shouldRender)\r\n            {\r\n                sectionNode = SectionNodeFactory.CreateSectionNode(contentTag.Attributes[\"ID\"], true);\r\n\r\n                iterateOverChildrens(convertedChildren, sectionNode);\r\n            }\r\n            else if (string.Compare(contentPlaceHolderID, Configuration.BodyContentPlaceHolderID, true) != 0)\r\n            {\r\n                sectionNode = SectionNodeFactory.CreateSectionNode(contentPlaceHolderID);\r\n\r\n                iterateOverChildrens(convertedChildren, sectionNode);\r\n            }\r\n            \r\n            if (sectionNode != null) \r\n            {\r\n                return new IRazorSectionNode[] { sectionNode };\r\n            }\r\n            else\r\n            {\r\n                return convertedChildren;\r\n            }\r\n        }\r\n\r\n        public bool CanConvertNode(IWebFormsNode node)\r\n        {\r\n            var serverControlNode = node as IWebFormsServerControlNode;\r\n\r\n            if (serverControlNode != null)\r\n            {\r\n                var tagName = serverControlNode.TagName.ToLowerInvariant();\r\n                return (tagName == \"asp:content\" || tagName == \"asp:contentplaceholder\");\r\n            }\r\n            else\r\n            {\r\n                return false;\r\n            }\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/ContentTagConverterConfiguration.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    using System.ComponentModel.Composition;\n\n    [Export(typeof(IContentTagConverterConfiguration))]\n    public class ContentTagConverterConfiguration : IContentTagConverterConfiguration\n    {\n        public string BodyContentPlaceHolderID\n        {\n            get;\n            set;\n        }\n\n        public ContentTagConverterConfiguration()\n        {\n            BodyContentPlaceHolderID = \"MainContent\";\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/DirectiveConverter.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    using System.Collections.Generic;\n    using System.Text.RegularExpressions;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public class DirectiveConverter : INodeConverter<IRazorNode>\n    {\n        private IRazorDirectiveNodeFactory DirectiveNodeFactory\n        {\n            get;\n            set;\n        }\n\n        public DirectiveConverter(IRazorDirectiveNodeFactory nodeFactory)\n        {\n            DirectiveNodeFactory = nodeFactory;\n        }\n\n        public IList<IRazorNode> ConvertNode(IWebFormsNode node)\n        {\n            var result = new List<IRazorNode>();\n\n            var directiveNode = node as IWebFormsDirectiveNode;\n\n            if (directiveNode != null)\n            {\n                if (directiveNode.Attributes.ContainsKey(\"inherits\"))\n                {\n                    var inheritsFrom = directiveNode.Attributes[\"inherits\"];\n                    var viewPageGenericType = new Regex(\"System.Web.Mvc.(?:ViewPage|ViewUserControl)<(?<type>.*)>\");\n                    var typeMatch = viewPageGenericType.Match(inheritsFrom);\n                    if (typeMatch.Success)\n                    {\n                        result.Add(DirectiveNodeFactory.CreateDirectiveNode(\"model\", typeMatch.Result(\"${type}\")));\n                    }\n                    else if (inheritsFrom != \"System.Web.Mvc.ViewPage\" && inheritsFrom != \"System.Web.Mvc.ViewUserControl\")\n                    {\n                        result.Add(DirectiveNodeFactory.CreateDirectiveNode(\"inherits\", directiveNode.Attributes[\"inherits\"]));\n                    }\n                }\n                else if (directiveNode.Attributes.ContainsKey(\"namespace\") &&\n                         directiveNode.Directive == DirectiveType.Import)\n                {\n                    var imports = directiveNode.Attributes[\"namespace\"];\n\n                    if (!string.IsNullOrEmpty(imports))\n                    {\n                        result.Add(DirectiveNodeFactory.CreateDirectiveNode(\"using\", directiveNode.Attributes[\"namespace\"]));\n                    }\n                }\n            }\n\n            return result;\n        }\n\n        public bool CanConvertNode(IWebFormsNode node)\n        {\n            return node as IWebFormsDirectiveNode != null;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/ExpressionBlockConverter.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    using System.Collections.Generic;\n    using System.Text.RegularExpressions;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public class ExpressionBlockConverter : INodeConverter<IRazorNode>\n    {\n        private IRazorExpressionNodeFactory ExpressionNodeFactory\n        {\n            get;\n            set;\n        }\n\n        public ExpressionBlockConverter(IRazorExpressionNodeFactory nodeFactory)\n        {\n            ExpressionNodeFactory = nodeFactory;\n        }\n\n        public IList<IRazorNode> ConvertNode(IWebFormsNode node)\n        {\n            var srcNode = node as IWebFormsExpressionBlockNode;\n            var isMultiline = srcNode.Expression.Contains(\"\\r\") || srcNode.Expression.Contains(\"\\n\");\n            var expression = srcNode.Expression.Trim(new char[] { ' ', '\\t' });\n            expression = expression.Replace(\"ResolveUrl\", \"Url.Content\");\n            expression = RemoveHtmlEncode(expression);\n            expression = WrapHtmlDecode(expression);\n            return new IRazorNode[] \n            {\n                ExpressionNodeFactory.CreateExpressionNode(expression, isMultiline)\n            };\n        }\n\n        public bool CanConvertNode(IWebFormsNode node)\n        {\n            return node is IWebFormsExpressionBlockNode;\n        }\n\n        private string RemoveHtmlEncode(string input)\n        {\n            var searchRegex = new Regex(@\"(Html\\.Encode|HttpUtility\\.HtmlEncode)\\s*\\((?<statement>(?>[^()]+|\\((?<Depth>)|\\)(?<-Depth>))*(?(Depth)(?!)))\\)\", RegexOptions.Singleline | RegexOptions.Multiline);\n            var stringCastRegex = new Regex(@\"^\\(\\s*string\\s*\\)\\s*\", RegexOptions.IgnoreCase);\n            return searchRegex.Replace(input, m =>\n            {\n                return stringCastRegex.Replace(m.Groups[\"statement\"].Value.Trim(), \"\");\n            });\n        }\n\n        private string WrapHtmlDecode(string input)\n        {\n            var searchRegex = new Regex(@\"HttpUtility.HtmlDecode\\((?<statement>.*)\\)\", RegexOptions.Singleline | RegexOptions.Multiline);\n            return searchRegex.Replace(input, m =>\n            {\n                return string.Format(\"Html.Raw(HttpUtility.HtmlDecode({0}))\", m.Groups[\"statement\"].Value.Trim());\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/IContentTagConverterConfiguration.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    public interface IContentTagConverterConfiguration\n    {\n        string BodyContentPlaceHolderID { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/IRazorNodeConverterProvider.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    using System.Collections.Generic;\n    using Telerik.RazorConverter.Razor.DOM;\n\n    public interface IRazorNodeConverterProvider\n    {\n        IList<INodeConverter<IRazorNode>> NodeConverters { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/RazorNodeConverterProvider.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    using System.Collections.Generic;\n    using System.ComponentModel.Composition;\n    using Telerik.RazorConverter;\n    using Telerik.RazorConverter.Razor.DOM;\n\n    [Export(typeof(IRazorNodeConverterProvider))]\n    public class RazorNodeConverterProvider : IRazorNodeConverterProvider\n    {\n        [ImportingConstructor]\n        public RazorNodeConverterProvider(  IRazorDirectiveNodeFactory directiveNodeFactory,\n                                            IRazorSectionNodeFactory sectionNodeFactory,\n                                            IRazorCodeNodeFactory codeNodeFactory,\n                                            IRazorTextNodeFactory textNodeFactory,\n                                            IRazorCommentNodeFactory commentNodeFactory,\n                                            IRazorExpressionNodeFactory expressionNodeFactory,\n                                            IContentTagConverterConfiguration contentTagConverterConfig)\n        {\n            NodeConverters = new INodeConverter<IRazorNode>[] {\n                new DirectiveConverter(directiveNodeFactory),\n                new ContentTagConverter(this, sectionNodeFactory, contentTagConverterConfig),\n                new CodeGroupConverter(this),\n                new CodeBlockConverter(codeNodeFactory),\n                new TextNodeConverter(textNodeFactory),\n                new CommentNodeConverter(commentNodeFactory),\n                new ExpressionBlockConverter(expressionNodeFactory)\n            };\n        }\n\n        public IList<INodeConverter<IRazorNode>> NodeConverters\n        {\n            get;\n            private set;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/TextNodeConverter.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    using System.Collections.Generic;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public class TextNodeConverter : INodeConverter<IRazorNode>\n    {\n        private IRazorTextNodeFactory TextNodeFactory\n        {\n            get;\n            set;\n        }\n\n        public TextNodeConverter(IRazorTextNodeFactory nodeFactory)\n        {\n            TextNodeFactory = nodeFactory;\n        }\n        \n        public IList<IRazorNode> ConvertNode(IWebFormsNode node)\n        {\n            var srcNode = node as IWebFormsTextNode;\n            var destNode = TextNodeFactory.CreateTextNode(srcNode.Text);\n            return new IRazorNode[] { destNode };\n        }\n\n        public bool CanConvertNode(IWebFormsNode node)\n        {\n            return node is IWebFormsTextNode;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Converters/WebFormsToRazorConverter.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Converters\n{\n    using System.ComponentModel.Composition;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    [Export(typeof(IWebFormsConverter<IRazorNode>))]\n    public class WebFormsToRazorConverter : IWebFormsConverter<IRazorNode>\n    {\n        private IRazorNodeConverterProvider NodeConverterProvider\n        {\n            get;\n            set;\n        }\n\n        [ImportingConstructor]\n        public WebFormsToRazorConverter(IRazorNodeConverterProvider converterProvider)\n        {\n            NodeConverterProvider = converterProvider;\n        }\n\n        public IDocument<IRazorNode> Convert(IDocument<IWebFormsNode> srcDoc)\n        {\n            var rootNode = new RazorNode();\n\n            foreach (var srcNode in srcDoc.RootNode.Children)\n            {\n                foreach (var converter in NodeConverterProvider.NodeConverters)\n                {\n                    if (converter.CanConvertNode(srcNode))\n                    {\n                        foreach (var dstNode in converter.ConvertNode(srcNode))\n                        {\n                            rootNode.Children.Add(dstNode);\n                        }\n                    }\n                }\n            }\n\n            return new Document<IRazorNode>(rootNode);\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorCodeNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorCodeNode : IRazorNode\n    {\n        string Code { get; }\n        bool RequiresPrefix { get; }\n        bool RequiresBlock { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorCodeNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorCodeNodeFactory\n    {\n        IRazorCodeNode CreateCodeNode(string code, bool requiresPrefix, bool requiresBlock);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorCommentNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorCommentNode : IRazorNode\n    {\n        string Text { get; }        \n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorCommentNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorCommentNodeFactory\n    {\n        IRazorCommentNode CreateCommentNode(string text);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorDirectiveNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorDirectiveNode : IRazorNode\n    {\n        string Directive { get; }\n        string Parameters { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorDirectiveNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorDirectiveNodeFactory\n    {\n        IRazorDirectiveNode CreateDirectiveNode(string directive, string parameters);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorExpressionNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorExpressionNode : IRazorNode\n    {\n        string Expression { get; }\n        bool IsMultiline { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorExpressionNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorExpressionNodeFactory\n    {\n        IRazorExpressionNode CreateExpressionNode(string expression, bool isMultiline);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    using System.Collections.Generic;\n\n    public interface IRazorNode\n    {\n        IRazorNode Parent { get; set;  }\n        IList<IRazorNode> Children { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorSectionNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorSectionNode : IRazorNode\n    {\n        string Name { get; }\r\n        bool ShouldRender { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorSectionNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorSectionNodeFactory\n    {\n        IRazorSectionNode CreateSectionNode(string name, bool shouldRender = false);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorTextNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorTextNode : IRazorNode\n    {\n        string Text { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/IRazorTextNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public interface IRazorTextNodeFactory\n    {\n        IRazorTextNode CreateTextNode(string text);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorCodeNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public class RazorCodeNode : RazorNode, IRazorCodeNode\n    {\n        public string Code\n        {\n            get;\n            set;\n        }\n\n        public bool RequiresPrefix\n        {\n            get;\n            set;\n        }\n\n        public bool RequiresBlock\n        {\n            get;\n            set;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorCodeNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    using System.ComponentModel.Composition;\n\n    [Export(typeof(IRazorCodeNodeFactory))]\n    public class RazorCodeNodeFactory : IRazorCodeNodeFactory\n    {\n        public IRazorCodeNode CreateCodeNode(string code, bool requiresPrefix, bool requiresBlock)\n        {\n            return new RazorCodeNode { Code = code, RequiresPrefix = requiresPrefix, RequiresBlock = requiresBlock };\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorCommentNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public class RazorCommentNode : RazorNode, IRazorCommentNode\n    {\n        public string Text\n        {\n            get;\n            set;\n        }\n\n        public RazorCommentNode()\n        {\n        }\n\n        public RazorCommentNode(string text)\n        {\n            Text = text;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorCommentNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    using System.ComponentModel.Composition;\n\n    [Export(typeof(IRazorCommentNodeFactory))]\n    public class RazorCommentNodeFactory : IRazorCommentNodeFactory\n    {\n        public IRazorCommentNode CreateCommentNode(string text)\n        {\n            return new RazorCommentNode { Text = text };\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorDirectiveNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public class RazorDirectiveNode : RazorNode, IRazorDirectiveNode\n    {\n        public string Directive\n        {\n            get;\n            set;\n        }\n\n        public string Parameters\n        {\n            get;\n            set;\n        }\n\n        public RazorDirectiveNode()\n        {\n        }\n\n        public RazorDirectiveNode(string directive, string parameters)\n        {\n            Directive = directive;\n            Parameters = parameters;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorDirectiveNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    using System.ComponentModel.Composition;\n\n    [Export(typeof(IRazorDirectiveNodeFactory))]\n    public class RazorDirectiveNodeFactory : IRazorDirectiveNodeFactory\n    {\n        public IRazorDirectiveNode CreateDirectiveNode(string directive, string parameters)\n        {\n            return new RazorDirectiveNode { Directive = directive, Parameters = parameters };\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorExpressionNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public class RazorExpressionNode : RazorNode, IRazorExpressionNode\n    {\n        public string Expression\n        {\n            get;\n            set;\n        }\n\n        public bool IsMultiline\n        {\n            get;\n            set;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorExpressionNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    using System.ComponentModel.Composition;\n\n    [Export(typeof(IRazorExpressionNodeFactory))]\n    public class RazorExpressionNodeFactory : IRazorExpressionNodeFactory\n    {\n        public IRazorExpressionNode CreateExpressionNode(string expression, bool isMultiline)\n        {\n            return new RazorExpressionNode { Expression = expression, IsMultiline = isMultiline };\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    using System.Collections.Generic;\n    using System.Collections.ObjectModel;\n    using System.Collections.Specialized;\n\n    public class RazorNode : IRazorNode\n    {\n        public IRazorNode Parent\n        {\n            get;\n            set;\n        }\n\n        public IList<IRazorNode> Children\n        {\n            get;\n            set;\n        }\n        \n        public RazorNode()\n        {\n            Children = new ObservableCollection<IRazorNode>();\n            ((ObservableCollection<IRazorNode>) Children).CollectionChanged += OnChildrenCollectionChanged;\n        }\n\n        protected virtual void OnChildrenCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)\n        {\n            if (e.Action == NotifyCollectionChangedAction.Add)\n            {\n                foreach (IRazorNode childNode in e.NewItems)\n                {\n                    childNode.Parent = this;\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorSectionNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public class RazorSectionNode : RazorNode, IRazorSectionNode\n    {\n        public string Name\n        {\n            get;\n            set;\n        }\r\n\r\n        public bool ShouldRender \n        { \n            get; \n            set; \n        }\n\n        public RazorSectionNode()\n        {\n        }\n\n        public RazorSectionNode(string sectionName, bool shouldRender)\n        {\n            Name = sectionName;\r\n            ShouldRender = shouldRender;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorSectionNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    using System.ComponentModel.Composition;\n\n    [Export(typeof(IRazorSectionNodeFactory))]\n    public class RazorSectionNodeFactory : IRazorSectionNodeFactory\n    {\n        public IRazorSectionNode CreateSectionNode(string sectionName, bool shouldRender = false)\n        {\n            return new RazorSectionNode(sectionName, shouldRender);\n        }\r\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorTextNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    public class RazorTextNode : RazorNode, IRazorTextNode\n    {\n        public string Text\n        {\n            get;\n            set;\n        }\n\n        public RazorTextNode()\n        {\n        }\n\n        public RazorTextNode(string text)\n        {\n            Text = text;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/DOM/RazorTextNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.DOM\n{\n    using System.ComponentModel.Composition;\n\n    [Export(typeof(IRazorTextNodeFactory))]\n    public class RazorTextNodeFactory : IRazorTextNodeFactory\n    {\n        public IRazorTextNode CreateTextNode(string text)\n        {\n            return new RazorTextNode { Text = text };\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Rendering/CodeNodeRenderer.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Rendering\n{\n    using Telerik.RazorConverter.Razor.DOM;\n\n    public class CodeNodeRenderer : IRazorNodeRenderer\n    {\n        public string RenderNode(IRazorNode node)\n        {\n            var srcNode = node as IRazorCodeNode;\n            var prefix = \"\";\n            var code = srcNode.Code;\n\n            if (srcNode.RequiresBlock)\n            {\n                code = \"{\\r\\n\" + code + \"\\r\\n}\";\n            }\n\n            if (srcNode.RequiresPrefix || srcNode.RequiresBlock)\n            {\n                prefix = \"@\";\n                code = code.TrimStart();\n            }\n\n            return prefix + code;\n        }\n\n        public bool CanRenderNode(IRazorNode node)\n        {\n            return node is IRazorCodeNode;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Rendering/CommentNodeRenderer.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Rendering\n{\n    using Telerik.RazorConverter.Razor.DOM;\n\n    public class CommentNodeRenderer : IRazorNodeRenderer\n    {\n        public string RenderNode(IRazorNode node)\n        {\n            var commentNode = node as IRazorCommentNode;\n            return \"@*\" + commentNode.Text + \"*@\";\n        }\n\n        public bool CanRenderNode(IRazorNode node)\n        {\n            return node is IRazorCommentNode;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Rendering/DirectiveNodeRenderer.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Rendering\n{\n    using Telerik.RazorConverter.Razor.DOM;\n\n    public class DirectiveNodeRenderer : IRazorNodeRenderer\n    {\n        public string RenderNode(IRazorNode node)\n        {\n            var directiveNode = node as IRazorDirectiveNode;\n            return string.Format(\"@{0} {1}\", directiveNode.Directive, directiveNode.Parameters).Trim();\n        }\n\n        public bool CanRenderNode(IRazorNode node)\n        {\n            return node is IRazorDirectiveNode;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Rendering/ExpressionNodeRenderer.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Rendering\n{\n    using Telerik.RazorConverter.Razor.DOM;\n\n    public class ExpressionNodeRenderer : IRazorNodeRenderer\n    {\n        public string RenderNode(IRazorNode node)\n        {\n            var srcNode = node as IRazorExpressionNode;\n            var formatString = \"@{0}\";\n            var expression = srcNode.Expression;\n\n            if (srcNode.IsMultiline)\n            {\n                formatString = \"@({0})\";\n            }\n\n            return string.Format(formatString, expression);\n        }\n\n        public bool CanRenderNode(IRazorNode node)\n        {\n            return node is IRazorExpressionNode;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Rendering/IRazorNodeRenderer.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Rendering\n{\n    using Telerik.RazorConverter.Razor.DOM;\n\n    public interface IRazorNodeRenderer\n    {\n        string RenderNode(IRazorNode node);\n        bool CanRenderNode(IRazorNode node);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Rendering/IRazorNodeRendererProvider.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Rendering\n{\n    using System.Collections.Generic;\n\n    public interface IRazorNodeRendererProvider\n    {\n        IList<IRazorNodeRenderer> NodeRenderers { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Rendering/RazorNodeRendererProvider.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Rendering\n{\n    using System.Collections.Generic;\n    using System.ComponentModel.Composition;\n\n    [Export(typeof(IRazorNodeRendererProvider))]\n    public class RazorNodeRendererProvider : IRazorNodeRendererProvider\n    {\n        public IList<IRazorNodeRenderer> NodeRenderers \n        { \n            get;\n            private set;\n        }\n\n        public RazorNodeRendererProvider()\n        {\n            NodeRenderers = new List<IRazorNodeRenderer>\n            {\n                new DirectiveNodeRenderer(),\n                new CodeNodeRenderer(),\n                new ExpressionNodeRenderer(),\n                new TextNodeRenderer(),\n                new CommentNodeRenderer(),\n                new SectionNodeRenderer(this)\n            };\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Rendering/RazorViewRenderer.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Rendering\n{\n    using System.ComponentModel.Composition;\n    using System.Text;\n    using Telerik.RazorConverter;\n    using Telerik.RazorConverter.Razor.DOM;\n\n    [Export(typeof(IRenderer<IRazorNode>))]\n    public class RazorViewRenderer : IRenderer<IRazorNode>\n    {\n        private IRazorNodeRendererProvider RendererProvider\n        {\n            get;\n            set;\n        }\n\n        [ImportingConstructor]\n        public RazorViewRenderer(IRazorNodeRendererProvider NodeRendererProvider)\n        {\n            RendererProvider = NodeRendererProvider;\n        }\n\n        public string Render(IDocument<IRazorNode> document)\n        {\n            var sb = new StringBuilder();\n            foreach (var node in document.RootNode.Children)\n            {\n                foreach (var renderer in RendererProvider.NodeRenderers)\n                {\n                    if (renderer.CanRenderNode(node))\n                    {\n                        sb.Append(renderer.RenderNode(node));\n                        break;\n                    }\n                }\n            }\n            sb.AppendLine();\n            return sb.ToString();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Rendering/SectionNodeRenderer.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Rendering\r\n{\r\n    using System.Text;\r\n    using Telerik.RazorConverter.Razor.DOM;\r\n\r\n    public class SectionNodeRenderer : IRazorNodeRenderer\r\n    {\r\n        private IRazorNodeRendererProvider RendererProvider\r\n        {\r\n            get;\r\n            set;\r\n        }\r\n\r\n        public SectionNodeRenderer(IRazorNodeRendererProvider NodeRendererProvider)\r\n        {\r\n            RendererProvider = NodeRendererProvider;\r\n        }\r\n\r\n        public string RenderNode(IRazorNode node)\r\n        {\r\n            var sectionNode = node as IRazorSectionNode;\r\n            string childContent = null;\r\n            \r\n            childContent = RenderChildren(node);\r\n\r\n            return (\r\n                sectionNode.ShouldRender ?\r\n                    string.Format(\"@RenderSection(\\\"{0}\\\", optional: true)\\n{1}\", sectionNode.Name, childContent) :\r\n                    string.Format(\"@section {0} {{\\r\\n{1}}}\", sectionNode.Name, childContent) \r\n            );\r\n        }\r\n\r\n        private string RenderChildren(IRazorNode node)\r\n        {\r\n            var sb = new StringBuilder();\r\n            foreach (var childNode in node.Children)\r\n            {\r\n                foreach (var renderer in RendererProvider.NodeRenderers)\r\n                {\r\n                    if (renderer.CanRenderNode(childNode))\r\n                    {\r\n                        sb.Append(renderer.RenderNode(childNode));\r\n                        break;\r\n                    }\r\n                }\r\n            }\r\n            sb.AppendLine();\r\n            return sb.ToString();\r\n        }\r\n\r\n        public bool CanRenderNode(IRazorNode node)\r\n        {\r\n            return node is IRazorSectionNode;\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "Telerik.RazorConverter/Razor/Rendering/TextNodeRenderer.cs",
    "content": "﻿namespace Telerik.RazorConverter.Razor.Rendering\n{\n    using Telerik.RazorConverter.Razor.DOM;\n\n    public class TextNodeRenderer : IRazorNodeRenderer\n    {\n        public string RenderNode(IRazorNode node)\n        {\n            var textNode = node as IRazorTextNode;\n            return textNode.Text;\n        }\n\n        public bool CanRenderNode(IRazorNode node)\n        {\n            return node is IRazorTextNode;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/Telerik.RazorConverter.csproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup>\r\n    <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>\r\n    <Platform Condition=\" '$(Platform)' == '' \">AnyCPU</Platform>\r\n    <ProductVersion>8.0.30703</ProductVersion>\r\n    <SchemaVersion>2.0</SchemaVersion>\r\n    <ProjectGuid>{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}</ProjectGuid>\r\n    <OutputType>Library</OutputType>\r\n    <AppDesignerFolder>Properties</AppDesignerFolder>\r\n    <RootNamespace>Telerik.RazorConverter</RootNamespace>\r\n    <AssemblyName>Telerik.RazorConverter</AssemblyName>\r\n    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>\r\n    <FileAlignment>512</FileAlignment>\r\n    <SccProjectName>\r\n    </SccProjectName>\r\n    <SccLocalPath>\r\n    </SccLocalPath>\r\n    <SccAuxPath>\r\n    </SccAuxPath>\r\n    <SccProvider>\r\n    </SccProvider>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' \">\r\n    <DebugSymbols>true</DebugSymbols>\r\n    <DebugType>full</DebugType>\r\n    <Optimize>false</Optimize>\r\n    <OutputPath>bin\\Debug\\</OutputPath>\r\n    <DefineConstants>DEBUG;TRACE</DefineConstants>\r\n    <ErrorReport>prompt</ErrorReport>\r\n    <WarningLevel>4</WarningLevel>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' \">\r\n    <DebugType>pdbonly</DebugType>\r\n    <Optimize>true</Optimize>\r\n    <OutputPath>bin\\Release\\</OutputPath>\r\n    <DefineConstants>TRACE</DefineConstants>\r\n    <ErrorReport>prompt</ErrorReport>\r\n    <WarningLevel>4</WarningLevel>\r\n  </PropertyGroup>\r\n  <ItemGroup>\r\n    <Reference Include=\"System\" />\r\n    <Reference Include=\"System.ComponentModel.Composition\" />\r\n    <Reference Include=\"System.Core\" />\r\n    <Reference Include=\"System.Web.RegularExpressions\" />\r\n    <Reference Include=\"System.Xml.Linq\" />\r\n    <Reference Include=\"System.Data.DataSetExtensions\" />\r\n    <Reference Include=\"Microsoft.CSharp\" />\r\n    <Reference Include=\"System.Data\" />\r\n    <Reference Include=\"System.Xml\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Compile Include=\"Razor\\Converters\\CodeGroupConverter.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\ContentTagConverterConfiguration.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\CommentNodeConverter.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\IContentTagConverterConfiguration.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\RazorNodeConverterProvider.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\IRazorNodeConverterProvider.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\CodeBlockConverter.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\ExpressionBlockConverter.cs\" />\r\n    <Compile Include=\"IOrderMetadata.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorCommentNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorCommentNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorCommentNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorCommentNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorSectionNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorSectionNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorSectionNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorSectionNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorExpressionNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorExpressionNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorExpressionNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorExpressionNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorTextNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorTextNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorCodeNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorCodeNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorDirectiveNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorDirectiveNodeFactory.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorDirectiveNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorDirectiveNode.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\CodeNodeRenderer.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\TextNodeConverter.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorCodeNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorCodeNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorTextNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorTextNode.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\CommentNodeRenderer.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\RazorNodeRendererProvider.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\IRazorNodeRendererProvider.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\SectionNodeRenderer.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\ExpressionNodeRenderer.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\TextNodeRenderer.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\ContentTagConverter.cs\" />\r\n    <Compile Include=\"IRenderer.cs\" />\r\n    <Compile Include=\"IWebFormsConverter.cs\" />\r\n    <Compile Include=\"IDocument.cs\" />\r\n    <Compile Include=\"IWebFormsParser.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\DirectiveNodeRenderer.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorNode.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\IRazorNode.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\RazorViewRenderer.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\IRazorNodeRenderer.cs\" />\r\n    <Compile Include=\"Properties\\AssemblyInfo.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\WebFormsToRazorConverter.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\WebFormsCodeBlockNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\CommentNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\CodeBlockNodeType.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsContentNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\WebFormsCodeGroupNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\WebFormsCodeGroupFactory.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsCodeGroupNodeFactory.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsCodeGroupNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\DirectiveNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\DirectiveType.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\ExpressionBlockNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsCodeBlockNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsCommentNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsDirectiveNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsExpressionBlockNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsServerControlNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsTextNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\WebFormsNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\NodeType.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\ServerControlNode.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\TextNode.cs\" />\r\n    <Compile Include=\"Document.cs\" />\r\n    <Compile Include=\"WebForms\\Filters\\CodeBlockGroupingFilter.cs\" />\r\n    <Compile Include=\"WebForms\\Filters\\AddBlockBracesFilter.cs\" />\r\n    <Compile Include=\"WebForms\\Filters\\WrapNestedTemplatesFilter.cs\" />\r\n    <Compile Include=\"WebForms\\Filters\\IWebFormsNodeFilter.cs\" />\r\n    <Compile Include=\"WebForms\\Filters\\IWebFormsNodeFilterProvider.cs\" />\r\n    <Compile Include=\"WebForms\\Filters\\WebFormsNodeFilterProvider.cs\" />\r\n    <Compile Include=\"WebForms\\Parsing\\AttributesReader.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\DirectiveConverter.cs\" />\r\n    <Compile Include=\"WebForms\\Parsing\\IAttributesReader.cs\" />\r\n    <Compile Include=\"INodeConverter.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\IWebFormsNodeFactory.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\WebFormsNodeFactory.cs\" />\r\n    <Compile Include=\"WebForms\\Parsing\\WebFormsParser.cs\" />\r\n    <Compile Include=\"WebForms\\Parsing\\RunatServerTagRegex.cs\" />\r\n  </ItemGroup>\r\n  <ItemGroup />\r\n  <Import Project=\"$(MSBuildToolsPath)\\Microsoft.CSharp.targets\" />\r\n  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \n       Other similar extension points exist, see Microsoft.Common.targets.\n  <Target Name=\"BeforeBuild\">\n  </Target>\n  <Target Name=\"AfterBuild\">\n  </Target>\n  -->\r\n</Project>"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/CodeBlockNodeType.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public enum CodeBlockNodeType\n    {\n        Complete,\n        Opening,\n        Continued,\n        Closing\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/CommentNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public class CommentNode : WebFormsNode, IWebFormsCommentNode\n    {\n        public string Text\n        {\n            get;\n            set;\n        }\n\n        string IWebFormsContentNode.Content\n        {\n            get\n            {\n                return Text;\n            }\n\n            set\n            {\n                Text = value;\n            }\n        }\n\n        public CommentNode()\n        {\n            Type = NodeType.Comment;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/DirectiveNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public class DirectiveNode : WebFormsNode, IWebFormsDirectiveNode\n    {\n        public DirectiveType Directive\n        {\n            get;\n            set;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/DirectiveType.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public enum DirectiveType\n    {\n        Page,\n        Control,\n        Import,\n        Unknown\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/ExpressionBlockNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public class ExpressionBlockNode : WebFormsNode, IWebFormsExpressionBlockNode\n    {\n        public string Expression\n        {\n            get;\n            set;\n        }\n\n        string IWebFormsContentNode.Content\n        {\n            get\n            {\n                return Expression;\n            }\n\n            set\n            {\n                Expression = value;\n            }\n        }\n\n        public ExpressionBlockNode()\n        {\n            Type = NodeType.ExpressionBlock;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsCodeBlockNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public interface IWebFormsCodeBlockNode : IWebFormsContentNode\n    {\n        string Code { get; set; }\n        CodeBlockNodeType BlockType { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsCodeGroupNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public interface IWebFormsCodeGroupNode : IWebFormsContentNode\n    {\n\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsCodeGroupNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public interface IWebFormsCodeGroupNodeFactory\n    {\n        IWebFormsCodeGroupNode CreatCodeGroupNode(IWebFormsCodeBlockNode firstCodeNode);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsCommentNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public interface IWebFormsCommentNode : IWebFormsContentNode\n    {\n        string Text { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsContentNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public interface IWebFormsContentNode : IWebFormsNode\n    {\n        string Content { get; set; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsDirectiveNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public interface IWebFormsDirectiveNode : IWebFormsNode\n    {\n        DirectiveType Directive { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsExpressionBlockNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public interface IWebFormsExpressionBlockNode : IWebFormsContentNode\n    {\n        string Expression { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    using System.Collections.Generic;\n\n    public interface IWebFormsNode\n    {\n        NodeType Type { get; }\n        IWebFormsNode Parent { get; set;  }\n        IList<IWebFormsNode> Children { get; }\n        IDictionary<string, string> Attributes { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Parsing\n{\n    using System.Text.RegularExpressions;\n    using Telerik.RazorConverter.WebForms.DOM;   \n\n    public interface IWebFormsNodeFactory\n    {\n        IWebFormsNode CreateNode(Match match, NodeType type);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsServerControlNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public interface IWebFormsServerControlNode : IWebFormsNode\n    {\n        string TagName { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/IWebFormsTextNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public interface IWebFormsTextNode : IWebFormsContentNode\n    {\n        string Text { get; set; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/NodeType.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public enum NodeType\n    {\n        Document,\n        Directive,\n        CodeBlock,\n        ExpressionBlock,\n        EncodedExpressionBlock,\n        ServerControl,\n        Text,\n        Comment\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/ServerControlNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public class ServerControlNode : WebFormsNode, IWebFormsServerControlNode\n    {\n        public string TagName\n        {\n            get;\n            set;\n        }\n\n        public ServerControlNode()\n        {\n            Type = NodeType.ServerControl;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/TextNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public class TextNode : WebFormsNode, IWebFormsTextNode\n    {\n        public string Text\n        {\n            get;\n            set;\n        }\n\n        string IWebFormsContentNode.Content\n        {\n            get\n            {\n                return Text;\n            }\n\n            set\n            {\n                Text = value;\n            }\n        }\n\n        public TextNode()\n        {\n            Type = NodeType.Text;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/WebFormsCodeBlockNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    public class WebFormsCodeBlockNode : WebFormsNode, IWebFormsCodeBlockNode\n    {\n        public string Code\n        {\n            get;\n            set;\n        }\n\n        string IWebFormsContentNode.Content\n        {\n            get\n            {\n                return Code;\n            }\n\n            set\n            {\n                Code = value;\n            }\n        }\n\n        public CodeBlockNodeType BlockType\n        {\n            get;\n            set;\n        }\n\n        public WebFormsCodeBlockNode()\n        {\n            Type = NodeType.CodeBlock;\n            BlockType = CodeBlockNodeType.Complete;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/WebFormsCodeGroupFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    using System.ComponentModel.Composition;\n\n    [Export(typeof(IWebFormsCodeGroupNodeFactory))]\n    public class WebFormsCodeGroupFactory : IWebFormsCodeGroupNodeFactory\n    {\n        public IWebFormsCodeGroupNode CreatCodeGroupNode(IWebFormsCodeBlockNode firstCodeNode)\n        {\n            var groupNode = new WebFormsCodeGroupNode();\n            groupNode.Children.Add(firstCodeNode);\n\n            return groupNode;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/WebFormsCodeGroupNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    using System;\n    using System.Collections.Specialized;\n    using System.Linq;\n\n    public class WebFormsCodeGroupNode : WebFormsNode, IWebFormsCodeGroupNode\n    {\n        public const string Boundary = \"----$$\";\n\n        public string Content\n        {\n            get\n            {\n                return string.Join(Boundary, Children.Select(c => ((IWebFormsContentNode) c).Content));\n            }\n\n            set\n            {\n                ReplaceContent(value);\n            }\n        }\n\n        private void ReplaceContent(string content)\n        {\n            var parts = content.Split(new string[] { Boundary }, StringSplitOptions.None);\n            if (parts.Length != Children.Count)\n            {\n                throw new InvalidOperationException(\"Replacement string parts do no match number of child nodes\");\n            }\n\n            for (var i = 0; i < parts.Length; i++)\n            {\n                var node = (IWebFormsContentNode) Children[i];\n                node.Content = parts[i];\n            }\n        }\n\n        protected override void OnChildrenCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)\n        {\n            base.OnChildrenCollectionChanged(sender, e);\n\n            if (e.Action == NotifyCollectionChangedAction.Add)\n            {\n                foreach (var newItem in e.NewItems)\n                {\n                    if (!(newItem is IWebFormsContentNode))\n                    {\n                        throw new InvalidOperationException(\"Can only add child notes implementing IWebFormsContentNode\");\n                    }\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/WebFormsNode.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.DOM\n{\n    using System;\n    using System.Collections.Generic;\n    using System.Collections.ObjectModel;\n    using System.Collections.Specialized;\n\n    public class WebFormsNode : IWebFormsNode\n    {\n        public NodeType Type \n        { \n            get; \n            set;\n        }\n\n        public IWebFormsNode Parent \n        { \n            get;\n            set;\n        }\n\n        public IList<IWebFormsNode> Children\n        {\n            get;\n            private set;\n        }\n\n        public IDictionary<string, string> Attributes\n        {\n            get;\n            private set;\n        }\n\n        public WebFormsNode()\n        {\n            Children = new ObservableCollection<IWebFormsNode>();\n            ((ObservableCollection<IWebFormsNode>) Children).CollectionChanged += OnChildrenCollectionChanged;\n\n            Attributes = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);\n        }\n\n        protected virtual void OnChildrenCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)\n        {\n            if (e.Action == NotifyCollectionChangedAction.Add)\n            {\n                foreach (IWebFormsNode childItem in e.NewItems)\n                {\n                    childItem.Parent = this;\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/DOM/WebFormsNodeFactory.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Parsing\n{\n    using System;\n    using System.Collections.Generic;\n    using System.ComponentModel.Composition;\n    using System.Linq;\n    using System.Text.RegularExpressions;\n    using Telerik.RazorConverter.WebForms.DOM;   \n\n    [Export(typeof(IWebFormsNodeFactory))]\n    public class WebFormsNodeFactory : IWebFormsNodeFactory\n    {\n        private IAttributesReader attributesReader;\n\n        public IDictionary<NodeType, Func<Match, IWebFormsNode>> NodeBuilders\n        { \n            get; \n            private set;\n        }\n\n        public WebFormsNodeFactory()\n        {\n            attributesReader = new AttributesReader();\n            NodeBuilders = new Dictionary<NodeType, Func<Match, IWebFormsNode>>();\n            NodeBuilders.Add(NodeType.Directive, DirectiveNodeBuilder);\n            NodeBuilders.Add(NodeType.Text, TextNodeBuilder);\n            NodeBuilders.Add(NodeType.Comment, CommentNodeBuilder);\n            NodeBuilders.Add(NodeType.ServerControl, ServerControlNodeBuilder);\n            NodeBuilders.Add(NodeType.CodeBlock, CodeBlockNodeBuilder);\n            NodeBuilders.Add(NodeType.ExpressionBlock, ExpressionBlockNodeBuilder);\n            NodeBuilders.Add(NodeType.EncodedExpressionBlock, ExpressionBlockNodeBuilder);\n        }\n\n        public IWebFormsNode CreateNode(Match match, NodeType type)\n        {\n            Func<Match, IWebFormsNode> builder;\n            if (NodeBuilders.TryGetValue(type, out builder))\n            {\n                return builder(match);\n            }\n            else\n            {\n                var genericNode = new WebFormsNode { Type = type };\n                attributesReader.ReadAttributes(match, genericNode.Attributes);\n                return genericNode;\n            }\n        }\n\n        private IWebFormsNode DirectiveNodeBuilder(Match match)\n        {\n            var node = new DirectiveNode { \n                Directive = DirectiveType.Unknown,\n                Type = NodeType.Directive\n            };\n\n            attributesReader.ReadAttributes(match, node.Attributes);\n\n            if (match.Groups.Count > 1 && match.Groups[1].Captures.Count > 0)\n            {\n                string directiveType= match.Groups[1].Captures[0].Value.ToLowerInvariant();\n                if (directiveType.Contains(\"page\"))\n                {\n                    node.Directive = DirectiveType.Page;\n                }\n                else if (directiveType.Contains(\"control\"))\n                {\n                    node.Directive = DirectiveType.Control;\n                }\n                else if (directiveType.Contains(\"import\"))\n                {\n                    node.Directive = DirectiveType.Import;\n                }\n            }\n\n            return node;\n        }\n\n        private IWebFormsNode TextNodeBuilder(Match match)\n        {\n            var node = new TextNode { Text = match.Value };\n            attributesReader.ReadAttributes(match, node.Attributes);\n            return node;\n        }\n\n        private IWebFormsNode CommentNodeBuilder(Match match)\n        {\n            var node = new CommentNode { Text = match.Groups[\"comment\"].Value };\n            attributesReader.ReadAttributes(match, node.Attributes);\n            return node;\n        }\n\n        private IWebFormsNode ServerControlNodeBuilder(Match match)\n        {\n            var node = new ServerControlNode();\n            attributesReader.ReadAttributes(match, node.Attributes);\n\n            if (match.Groups[\"tagname\"].Success)\n            {\n                node.TagName = match.Groups[\"tagname\"].Captures[0].Value;\n            }\n\n            if (match.Groups[\"attributes\"].Success)\n            {\n                var attributeRegex = new Regex(\n                    @\"((?<attrname>\\w[-\\w:]*)(\\s*=\\s*\\\"\"(?<attrval>[^\\\"\"]*)\\\"\"|\\s*=\\s*'(?<attrval>[^']*)'|\\s*=\\s*(?<attrval><%#.*?%>)|\\s*=\\s*(?<attrval>[^\\s=/>]*)|(?<attrval>\\s*?)))\",\n                    RegexOptions.Singleline | RegexOptions.Multiline);\n\n                var attributeMatch = attributeRegex.Match(match.Groups[\"attributes\"].Value);\n                while (attributeMatch.Success)\n                {\n                    node.Attributes[attributeMatch.Groups[\"attrname\"].Value] = attributeMatch.Groups[\"attrval\"].Value;\n                    attributeMatch = attributeMatch.NextMatch();\n                }\n            }\n\n            return node;\n        }\n\n        private IWebFormsNode CodeBlockNodeBuilder(Match match)\n        {\n            var node = new WebFormsCodeBlockNode();\n            attributesReader.ReadAttributes(match, node.Attributes);\n\n            if (match.Groups[\"code\"].Success)\n            {\n                node.Code = match.Groups[\"code\"].Captures[0].Value;\n            }\n\n            var openingBracesCount = match.Value.Count(c => c == '{');\n            var closingBracesCount = match.Value.Count(c => c == '}');\n            var closingBraceFirst = match.Value.IndexOf('}') < match.Value.IndexOf('{');\n\n            if (openingBracesCount > closingBracesCount)\n            {\n                node.BlockType = CodeBlockNodeType.Opening;\n            }\n            else if (openingBracesCount < closingBracesCount)\n            {\n                node.BlockType = CodeBlockNodeType.Closing;\n            }\n            else if (closingBraceFirst)\n            {\n                node.BlockType = CodeBlockNodeType.Continued;\n            }\n\n            return node;\n        }\n\n        private IWebFormsNode ExpressionBlockNodeBuilder(Match match)\n        {\n            var node = new ExpressionBlockNode();\n            attributesReader.ReadAttributes(match, node.Attributes);\n\n            if (match.Groups[\"code\"].Success)\n            {\n                node.Expression = match.Groups[\"code\"].Captures[0].Value;\n            }\n\n            return node;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/Filters/AddBlockBracesFilter.cs",
    "content": "namespace Telerik.RazorConverter.WebForms.Filters\n{\n    using System.Collections.Generic;\n    using System.Text.RegularExpressions;\n    using DOM;\n\n    public class AddBlockBracesFilter : IWebFormsNodeFilter\n    {\n        public IList<IWebFormsNode> Filter(IWebFormsNode node, IWebFormsNode previousFilteredNode)\n        {\n            var isCodeGroupNode = node is IWebFormsCodeGroupNode;\n            var isCompleteCodeNode = node is IWebFormsCodeBlockNode && ((IWebFormsCodeBlockNode)node).BlockType == CodeBlockNodeType.Complete;\n            if (isCodeGroupNode || isCompleteCodeNode)\n            {\n                var codeContentNode = node as IWebFormsContentNode;\n                if (codeContentNode != null && RequiresBlock(codeContentNode.Content))\n                {\n                    codeContentNode.Content = string.Format(\"{{{0}}}\", codeContentNode.Content).Replace(\"{{\", \"{\").Replace(\"}}\", \"}\");\n                }\n            }\n\n            return new[] { node };\n        }\n\n        private bool RequiresBlock(string code)\n        {\n            var statementRegex = new Regex(\n                @\"^\\s*(?<op>foreach|if|using|Html\\.RenderPartial)\\s*\n            (?<param>\\((?>[^()]+|\\((?<Depth>)|\\)(?<-Depth>))*(?(Depth)(?!))\\)){1}\\s*\n            (;)?\\s*\n            (?<block>\\{(?>[^{}]+|\\{(?<Depth>)|\\}(?<-Depth>))*(?(Depth)(?!))\\})?\\s*\n            (else\\s*\n                (?<elseblock>\\{(?>[^{}]+|\\{(?<Depth>)|\\}(?<-Depth>))*(?(Depth)(?!))\\})?\\s*\n            )?\\s*\n            (?<extra>\\S*) $\",\n                RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace);\n\n            var match = statementRegex.Match(code);\n            bool matchesOperator = match.Groups[\"op\"].Success;\n            bool hasExtraStatements = match.Groups[\"extra\"].Length > 0;\n            return !matchesOperator || (matchesOperator && hasExtraStatements);\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/Filters/CodeBlockGroupingFilter.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Filters\n{\n    using System.Collections.Generic;\n    using System.Linq;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public class CodeBlockGroupingFilter : IWebFormsNodeFilter\n    {\n        private IWebFormsCodeGroupNodeFactory MultiPartNodeFactory\n        {\n            get;\n            set;\n        }\n\n        public CodeBlockGroupingFilter(IWebFormsCodeGroupNodeFactory nodeFactory)\n        {\n            MultiPartNodeFactory = nodeFactory;\n        }\n\n        public IList<IWebFormsNode> Filter(IWebFormsNode node, IWebFormsNode previousFilteredNode)\n        {\n            var codeNode = node as IWebFormsCodeBlockNode;\n            var lastGroup = FindLastOpenGroup(previousFilteredNode);\n            var result = new List<IWebFormsNode>();\n\n            if (lastGroup != null)\n            {\n                lastGroup.Children.Add(node);\n            }\n            else\n            {\n                if (codeNode != null && codeNode.BlockType == CodeBlockNodeType.Opening)\n                {\n                    result.Add(MultiPartNodeFactory.CreatCodeGroupNode(codeNode));\n                }\n                else\n                {\n                    result.Add(node);\n                }\n            }\n\n            return result;\n        }\n\n        private IWebFormsCodeGroupNode FindLastOpenGroup(IWebFormsNode previousFilteredNode)\n        {\n            var groupNode = previousFilteredNode as IWebFormsCodeGroupNode;\n            if (groupNode != null)\n            {\n                var codeBlocks = groupNode.Children.Where(c => c is IWebFormsCodeBlockNode);\n                var openingBlocks = codeBlocks.Count(c => ((IWebFormsCodeBlockNode)c).BlockType == CodeBlockNodeType.Opening);\n                var closingBlocks = codeBlocks.Count(c => ((IWebFormsCodeBlockNode)c).BlockType == CodeBlockNodeType.Closing);\n\n                if (openingBlocks > 0 && openingBlocks != closingBlocks)\n                {\n                    return groupNode;\n                }\n            }\n\n            return null;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/Filters/IWebFormsNodeFilter.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Filters\n{\n    using System.Collections.Generic;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public interface IWebFormsNodeFilter\n    {\n        IList<IWebFormsNode> Filter(IWebFormsNode node, IWebFormsNode previousFilteredNode);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/Filters/IWebFormsNodeFilterProvider.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Filters\n{\n    using System.Collections.Generic;\n\n    public interface IWebFormsNodeFilterProvider\n    {\n        IList<IWebFormsNodeFilter> Filters { get; }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/Filters/WebFormsNodeFilterProvider.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Filters\n{\n    using System.Collections.Generic;\n    using System.ComponentModel.Composition;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    [Export(typeof(IWebFormsNodeFilterProvider))]\n    public class WebFormsNodeFilterProvider : IWebFormsNodeFilterProvider\n    {\n        [ImportingConstructor]\n        public WebFormsNodeFilterProvider(IWebFormsCodeGroupNodeFactory nodeFactory)\n        {\n            Filters = new IWebFormsNodeFilter[] {\n                new CodeBlockGroupingFilter(nodeFactory),\n                new AddBlockBracesFilter(),\n                new WrapNestedTemplatesFilter()\n            };\n        }\n\n        public IList<IWebFormsNodeFilter> Filters\n        {\n            get;\n            private set;\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/Filters/WrapNestedTemplatesFilter.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Filters\n{\n    using System.Collections.Generic;\n    using System.Text.RegularExpressions;\n    using Telerik.RazorConverter.WebForms.DOM;\n\n    public class WrapNestedTemplatesFilter : IWebFormsNodeFilter\n    {\n        public IList<IWebFormsNode> Filter(IWebFormsNode node, IWebFormsNode previousFilteredNode)\n        {\n            var isCodeGroupNode = node is IWebFormsCodeGroupNode;\n            if (isCodeGroupNode)\n            {\n                var codeContentNode = node as IWebFormsContentNode;\n                codeContentNode.Content = WrapNestedTemplates(codeContentNode.Content);\n            }\n\n            return new IWebFormsNode[] { node };\n        }\n\n        private string WrapNestedTemplates(string content)\n        {\n            var nestedTemplateRegex = new Regex(\n                @\"\\(\\)\\s*\\=\\>\\s*\\{(?<template>(?>[^{}]+|\\{(?<Depth>)|\\}(?<-Depth>))*(?(Depth)(?!)))\\}\", RegexOptions.Singleline);\n\n            return nestedTemplateRegex.Replace(content, m =>\n            {\n                return string.Format(\"@<text>{0}</text>\", m.Groups[\"template\"].Value);\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/Parsing/AttributesReader.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Parsing\n{\n    using System.Collections.Generic;\n    using System.Text.RegularExpressions;   \n\n    public class AttributesReader : IAttributesReader\n    {\n        public void ReadAttributes(Match match, IDictionary<string, string> attributes)\n        {\n            var nameCaptures = match.Groups[\"attrname\"].Captures;\n            var valueCaptures = match.Groups[\"attrval\"].Captures;\n\n            for (var i = 0; i < nameCaptures.Count; i++)\n            {\n                var name = nameCaptures[i].ToString().ToLowerInvariant();\n                var value = valueCaptures[i].ToString();\n\n                attributes.Add(name, value);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/Parsing/IAttributesReader.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Parsing\n{\n    using System.Collections.Generic;\n    using System.Text.RegularExpressions;   \n\n    public interface IAttributesReader\n    {\n        void ReadAttributes(Match match, IDictionary<string, string> attributes);\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/Parsing/RunatServerTagRegex.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Parsing\n{\n    using System.Text.RegularExpressions;\n\n    class RunatServerTagRegex : Regex\n    {\n        public RunatServerTagRegex() : base(\n            @\"\\G<(?<tagname>[\\w:\\.]+)(?<attributes>[^>]*?(?:runat\\W*server){1}[^>]*?)(?<empty>/)?>\",\n            RegexOptions.Singleline | RegexOptions.Multiline | RegexOptions.Compiled)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter/WebForms/Parsing/WebFormsParser.cs",
    "content": "﻿namespace Telerik.RazorConverter.WebForms.Parsing\r\n{\r\n    using System;\r\n    using System.Collections.Generic;\r\n    using System.ComponentModel.Composition;\r\n    using System.Linq;\r\n    using System.Text.RegularExpressions;\r\n    using System.Web.RegularExpressions;\r\n    using Telerik.RazorConverter.WebForms.DOM;\r\n    using Telerik.RazorConverter.WebForms.Filters;\r\n\r\n    [Export(typeof(IWebFormsParser))]\r\n    public class WebFormsParser : IWebFormsParser\r\n    {\r\n        private static Regex directiveRegex;\r\n        private static Regex commentRegex;\r\n        private static Regex startTagOpeningBracketRegex;\r\n        private static Regex endTagRegex;\r\n        private static Regex aspCodeRegex;\r\n        private static Regex aspExprRegex;\r\n        private static Regex aspEncodedExprRegex;\r\n        private static Regex textRegex;\r\n        private static Regex runatServerTagRegex;\r\n        private static Regex scriptRegex;\r\n        private static Regex doctypeRegex;\r\n\r\n        static WebFormsParser()\r\n        {\r\n            startTagOpeningBracketRegex = new Regex(@\"\\G<[^%\\/]\", RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.IgnoreCase);\r\n            directiveRegex = new DirectiveRegex();\r\n            commentRegex = new Regex(@\"\\G<%--(?<comment>.*?)--%>\", RegexOptions.Multiline | RegexOptions.Singleline);\r\n            endTagRegex = new EndTagRegex();\r\n            aspCodeRegex = new AspCodeRegex();\r\n            aspExprRegex = new AspExprRegex();\r\n            aspEncodedExprRegex = new AspEncodedExprRegex();\r\n            textRegex = new TextRegex();\r\n            runatServerTagRegex = new RunatServerTagRegex();\r\n            scriptRegex = new Regex(@\"\\G\\s*\\<script.*?\\>.*?\\<\\/script\\>\\s*\", RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.IgnoreCase);\r\n            doctypeRegex = new Regex(@\"\\G\\s*\\<!DOCTYPE.*?\\>\\s*\", RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.IgnoreCase);\r\n        }\r\n\r\n        private IWebFormsNodeFilterProvider NodeFilterProvider\r\n        {\r\n            get;\r\n            set;\r\n        }\r\n\r\n        private IWebFormsNodeFactory NodeFactory\r\n        {\r\n            get;\r\n            set;\r\n        }\r\n\r\n        [ImportingConstructor]\r\n        public WebFormsParser(IWebFormsNodeFactory factory, IWebFormsNodeFilterProvider postprocessingFilterProvider)\r\n        {\r\n            NodeFactory = factory;\r\n            NodeFilterProvider = postprocessingFilterProvider;\r\n        }\r\n\r\n        public IDocument<IWebFormsNode> Parse(string input)\r\n        {\r\n            Match match;\r\n            int startAt = 0;\r\n\r\n            var root = new WebFormsNode { Type = NodeType.Document };\r\n            IWebFormsNode parentNode = root;\r\n\r\n            do\r\n            {\r\n                if ((match = textRegex.Match(input, startAt)).Success)\r\n                {\r\n                    AppendTextNode(parentNode, match);\r\n                    startAt = match.Index + match.Length;\r\n                }\r\n\r\n                if (startAt != input.Length)\r\n                {\r\n                    if ((match = directiveRegex.Match(input, startAt)).Success)\r\n                    {\r\n                        var directiveNode = NodeFactory.CreateNode(match, NodeType.Directive);\r\n                        parentNode.Children.Add(directiveNode);\r\n                    }\r\n                    else if ((match = commentRegex.Match(input, startAt)).Success)\r\n                    {\r\n                        var commentNode = NodeFactory.CreateNode(match, NodeType.Comment);\r\n                        parentNode.Children.Add(commentNode);\r\n                    }\r\n                    else if ((match = runatServerTagRegex.Match(input, startAt)).Success)\r\n                    {\r\n                        var serverControlNode = NodeFactory.CreateNode(match, NodeType.ServerControl);\r\n                        parentNode.Children.Add(serverControlNode);\r\n\t\t\t\t\t\tif(!match.Value.EndsWith(\"/>\"))\r\n\t\t\t\t\t\t{\r\n\t                        parentNode = serverControlNode;\r\n\t\t\t\t\t\t}\r\n                    }\r\n                    else if ((match = doctypeRegex.Match(input, startAt)).Success)\r\n                    {\r\n                        AppendTextNode(parentNode, match);\r\n                    }\r\n                    else if ((match = startTagOpeningBracketRegex.Match(input, startAt)).Success)\r\n                    {\r\n                        AppendTextNode(parentNode, match);\r\n                    }\r\n                    else if ((match = endTagRegex.Match(input, startAt)).Success)\r\n                    {\r\n                        var tagName = match.Groups[\"tagname\"].Captures[0].Value;\r\n                        var serverControlParent = parentNode as IWebFormsServerControlNode;\r\n                        if (serverControlParent != null && tagName.ToLowerInvariant() == serverControlParent.TagName.ToLowerInvariant())\r\n                        {\r\n                            parentNode = parentNode.Parent;\r\n                        }\r\n                        else\r\n                        {\r\n                            AppendTextNode(parentNode, match);\r\n                        }\r\n                    }\r\n                    else if ((match = aspExprRegex.Match(input, startAt)).Success || (match = aspEncodedExprRegex.Match(input, startAt)).Success)\r\n                    {\r\n                        var expressionBlockNode = NodeFactory.CreateNode(match, NodeType.ExpressionBlock);\r\n                        parentNode.Children.Add(expressionBlockNode);\r\n                    }\r\n                    else if ((match = aspCodeRegex.Match(input, startAt)).Success)\r\n                    {\r\n                        var codeBlockNode = NodeFactory.CreateNode(match, NodeType.CodeBlock);\r\n                        parentNode.Children.Add(codeBlockNode);\r\n                    }\r\n                    else if ((match = scriptRegex.Match(input, startAt)).Success) // Relocated to enable processing of <% %> tags within the script block.\r\n                    {\r\n                        AppendTextNode(parentNode, match);\r\n                    }\r\n                    else\r\n                    {\r\n                        throw new Exception(\r\n                            string.Format(\"Unrecognized page element: {0}...\", input.Substring(startAt, 20)));\r\n                    }\r\n\r\n                    startAt = match.Index + match.Length;\r\n                }\r\n            }\r\n            while (startAt != input.Length);\r\n\r\n            ApplyPostprocessingFilters(root);\r\n\r\n            return new Document<IWebFormsNode>(root);\r\n        }\r\n\r\n        private void ApplyPostprocessingFilters(IWebFormsNode rootNode)\r\n        {\r\n            foreach (var filter in NodeFilterProvider.Filters)\r\n            {\r\n                FilterChildNodes(rootNode, filter);\r\n            }\r\n        }\r\n\r\n        private void FilterChildNodes(IWebFormsNode rootNode, IWebFormsNodeFilter filter)\r\n        {\r\n            if (rootNode.Children.Count > 0)\r\n            {\r\n                var filterOutput = new List<IWebFormsNode>();\r\n                foreach (var childNode in rootNode.Children)\r\n                {\r\n                    FilterChildNodes(childNode, filter);\r\n                    filterOutput.AddRange(filter.Filter(childNode, filterOutput.LastOrDefault()));\r\n                }\r\n\r\n                rootNode.Children.Clear();\r\n                foreach (var filteredNode in filterOutput)\r\n                {\r\n                    rootNode.Children.Add(filteredNode);\r\n                }\r\n            }\r\n        }\r\n\r\n        private void AppendTextNode(IWebFormsNode parentNode, Match match)\r\n        {\r\n            var currentTextNode = parentNode.Children.LastOrDefault() as IWebFormsTextNode;\r\n            if (currentTextNode == null)\r\n            {\r\n                currentTextNode = (IWebFormsTextNode) NodeFactory.CreateNode(match, NodeType.Text);\r\n                parentNode.Children.Add(currentTextNode);\r\n            }\r\n            else\r\n            {\r\n                currentTextNode.Text += match.Value;\r\n            }\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Properties/AssemblyInfo.cs",
    "content": "﻿using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Information about an assembly is controlled through the following \n// set of attributes. Change these attribute values to modify the information\n// associated with an assembly.\n[assembly: AssemblyTitle(\"RazorConverter.Core.Tests\")]\n[assembly: AssemblyDescription(\"\")]\n[assembly: AssemblyConfiguration(\"\")]\n[assembly: AssemblyCompany(\"Microsoft\")]\n[assembly: AssemblyProduct(\"RazorConverter.Core.Tests\")]\n[assembly: AssemblyCopyright(\"Copyright © Microsoft 2010\")]\n[assembly: AssemblyTrademark(\"\")]\n[assembly: AssemblyCulture(\"\")]\n\n// Setting ComVisible to false makes the types in this assembly not visible \n// to COM components.  If you need to access a type in this assembly from \n// COM, set the ComVisible attribute to true on that type.\n[assembly: ComVisible(false)]\n\n// The following GUID is for the ID of the typelib if this project is exposed to COM\n[assembly: Guid(\"132ec67d-0a33-4dcc-ade0-396a0b7df867\")]\n\n// Version information for an assembly consists of the following four values:\n//\n//      Major Version\n//      Minor Version \n//      Build Number\n//      Revision\n//\n// You can specify all the values or you can default the Build and Revision Numbers \n// by using the '*' as shown below:\n// [assembly: AssemblyVersion(\"1.0.*\")]\n[assembly: AssemblyVersion(\"1.0.0.0\")]\n[assembly: AssemblyFileVersion(\"1.0.0.0\")]\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Converters/CodeBlockConverterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Converters\n{\n    using Moq;\n    using Telerik.RazorConverter.Razor.Converters;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Xunit;\n\n    public class CodeBlockConverterTests\n    {\n        private readonly CodeBlockConverter converter;\n        private readonly Mock<IWebFormsCodeBlockNode> codeBlockMock;\n        private readonly Mock<IRazorCodeNodeFactory> nodeFactoryMock;\n\n        public CodeBlockConverterTests()\n        {\n            nodeFactoryMock = new Mock<IRazorCodeNodeFactory>();\n            converter = new CodeBlockConverter(nodeFactoryMock.Object);\n            codeBlockMock = new Mock<IWebFormsCodeBlockNode>();\n        }\n\n        [Fact]\n        public void Should_be_able_to_convert_codeblock_node()\n        {\n            converter.CanConvertNode(codeBlockMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_not_be_able_to_convert_generic_node()\n        {\n            converter.CanConvertNode(new Mock<IWebFormsNode>().Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_require_prefix_for_complete_code_block()\n        {\n            codeBlockMock.Setup(cb => cb.Code).Returns(\"if (true) { doSomething(); }\");\n            codeBlockMock.Setup(cb => cb.BlockType).Returns(CodeBlockNodeType.Complete);\n            nodeFactoryMock.Setup(f => f.CreateCodeNode(\"if (true) { doSomething(); }\", true, false)).Verifiable();\n\n            converter.ConvertNode(codeBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_require_prefix_for_opening_code_block()\n        {\n            codeBlockMock.Setup(cb => cb.Code).Returns(\"if (true) {\");\n            codeBlockMock.Setup(cb => cb.BlockType).Returns(CodeBlockNodeType.Opening);\n            nodeFactoryMock.Setup(f => f.CreateCodeNode(\"if (true) {\", true, false)).Verifiable();\n\n            converter.ConvertNode(codeBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_not_require_prefix_for_continued_code_block()\n        {\n            codeBlockMock.Setup(cb => cb.Code).Returns(\"} else {\");\n            codeBlockMock.Setup(cb => cb.BlockType).Returns(CodeBlockNodeType.Continued);\n            nodeFactoryMock.Setup(f => f.CreateCodeNode(\"} else {\", false, false)).Verifiable();\n\n            converter.ConvertNode(codeBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_not_require_prefix_for_closing_code_block()\n        {\n            codeBlockMock.Setup(cb => cb.Code).Returns(\"}\");\n            codeBlockMock.Setup(cb => cb.BlockType).Returns(CodeBlockNodeType.Closing);\n            nodeFactoryMock.Setup(f => f.CreateCodeNode(\"}\", false, false)).Verifiable();\n\n            converter.ConvertNode(codeBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_transform_RenderPartial_to_RenderPage()\n        {\n            codeBlockMock.Setup(cb => cb.Code).Returns(@\"Html.RenderPartial(\"\"AccessibilityValidation\"\");\");\n\n            codeBlockMock.Setup(cb => cb.BlockType).Returns(CodeBlockNodeType.Complete);\n            nodeFactoryMock.Setup(f => f.CreateCodeNode(@\"@Html.Partial(\"\"AccessibilityValidation\"\")\", false, false)).Verifiable();\n\n            converter.ConvertNode(codeBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Converters/CodeGroupConverterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Converters\n{\n    using Moq;\n    using Telerik.RazorConverter;\n    using Telerik.RazorConverter.Razor.Converters;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Xunit;\n\n    public class CodeGroupConverterTests\n    {\n        private readonly CodeGroupConverter converter;\n        private readonly Mock<IRazorNodeConverterProvider> nodeConverterProviderMock;\n        private readonly Mock<INodeConverter<IRazorNode>> childNodeConverterMock;\n        private readonly Mock<IWebFormsCodeGroupNode> codeGroupNodeMock;\n\n        public CodeGroupConverterTests()\n        {\n            childNodeConverterMock = new Mock<INodeConverter<IRazorNode>>();\n            nodeConverterProviderMock = new Mock<IRazorNodeConverterProvider>();\n            nodeConverterProviderMock.SetupGet(p => p.NodeConverters)\n                .Returns(new INodeConverter<IRazorNode>[] { childNodeConverterMock.Object });\n\n            converter = new CodeGroupConverter(nodeConverterProviderMock.Object);\n            codeGroupNodeMock = new Mock<IWebFormsCodeGroupNode>();\n        }\n\n        [Fact]\n        public void Should_be_able_to_convert_code_block_group_node()\n        {\n            converter.CanConvertNode(codeGroupNodeMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_drop_code_block_group_node_when_it_has_no_child_nodes()\n        {\n            codeGroupNodeMock.SetupGet(cg => cg.Children).Returns(new IWebFormsNode[] { });\n            converter.ConvertNode(codeGroupNodeMock.Object).Count.ShouldEqual(0);\n        }\n\n        [Fact]\n        public void Should_use_provided_converters_for_child_nodes()\n        {\n            var childNode = new TextNode { Text = \"TEXT\" };\n            codeGroupNodeMock.SetupGet(cg => cg.Children).Returns(new IWebFormsNode[] {childNode });\n            childNodeConverterMock.Setup(c => c.CanConvertNode(childNode)).Returns(true).Verifiable();\n            childNodeConverterMock.Setup(c => c.ConvertNode(childNode)).Returns(new IRazorNode[] { new RazorTextNode() });\n\n            var result = converter.ConvertNode(codeGroupNodeMock.Object);\n\n            result.Count.ShouldEqual(1);\n            result[0].ShouldBeType(typeof(RazorTextNode));\n            childNodeConverterMock.Verify();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Converters/CommentNodeConverterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Converters\n{\n    using Moq;\n    using Telerik.RazorConverter.Razor.Converters;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Xunit;\n\n    public class CommentNodeConverterTests\n    {\n        private readonly CommentNodeConverter converter;\n        private readonly Mock<IWebFormsCommentNode> commentNodeMock;\n        private readonly Mock<IRazorCommentNodeFactory> nodeFactoryMock;\n\n        public CommentNodeConverterTests()\n        {\n            nodeFactoryMock = new Mock<IRazorCommentNodeFactory>();\n            converter = new CommentNodeConverter(nodeFactoryMock.Object);\n            commentNodeMock = new Mock<IWebFormsCommentNode>();\n        }               \n\n        [Fact]\n        public void Should_be_able_to_convert_comment_node()\n        {\n            converter.CanConvertNode(commentNodeMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_not_be_able_to_convert_generic_node()\n        {\n            converter.CanConvertNode(new Mock<IWebFormsNode>().Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_convert_text_as_it_is()\n        {\n            commentNodeMock.Setup(n => n.Text).Returns(\" TEXT \");\n            nodeFactoryMock.Setup(f => f.CreateCommentNode(\" TEXT \")).Verifiable();\n\n            converter.ConvertNode(commentNodeMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Converters/ContentPlaceHolderTagConverterTest.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Converters\r\n{\r\n    using Moq;\r\n    using System.Collections.Generic;\r\n    using Telerik.RazorConverter;\r\n    using Telerik.RazorConverter.Razor.Converters;\r\n    using Telerik.RazorConverter.Razor.DOM;\r\n    using Telerik.RazorConverter.WebForms.DOM;\r\n    using Xunit;\r\n\r\n    public class ContentPlaceHolderTagConverterTest\r\n    {\r\n        private readonly ContentTagConverter converter;\n        private readonly Mock<IRazorNodeConverterProvider> nodeConverterProviderMock;\n        private readonly Mock<IRazorSectionNodeFactory> sectionNodeFactoryMock;\n        private readonly Mock<INodeConverter<IRazorNode>> childNodeConverterMock;\n        private readonly Mock<IWebFormsServerControlNode> contentTagMock;\n        private readonly Dictionary<string, string> contentTagMockAttributes;\n        private readonly IList<IWebFormsNode> contentTagChildren;\r\n\r\n        public ContentPlaceHolderTagConverterTest()\n        {\n            childNodeConverterMock = new Mock<INodeConverter<IRazorNode>>();\n            sectionNodeFactoryMock = new Mock<IRazorSectionNodeFactory>();\n            nodeConverterProviderMock = new Mock<IRazorNodeConverterProvider>();\n            nodeConverterProviderMock.SetupGet(p => p.NodeConverters)\n                .Returns(new INodeConverter<IRazorNode>[] { childNodeConverterMock.Object });\n\n            contentTagChildren = new List<IWebFormsNode>();\n            contentTagMockAttributes = new Dictionary<string, string>() { { \"ContentPlaceHolderID\", \"HeadContent\" } };\n\n            contentTagMock = new Mock<IWebFormsServerControlNode>();\n            contentTagMock.SetupGet(scn => scn.Type).Returns(NodeType.ServerControl);\n            contentTagMock.SetupGet(scn => scn.TagName).Returns(\"asp:Content\");\n            contentTagMock.SetupGet(scn => scn.Attributes).Returns(contentTagMockAttributes);\n            contentTagMock.SetupGet(scn => scn.Children).Returns(contentTagChildren);\n        }\n\n        [Fact]\n        public void Should_be_able_to_convert_content_tag_node()\n        {\n            converter.CanConvertNode(contentTagMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_not_be_able_to_convert_other_server_control_nodes()\n        {\n            var serverControlMock = new Mock<IWebFormsServerControlNode>();\n            serverControlMock.SetupGet(scn => scn.Type).Returns(NodeType.ServerControl);\n            serverControlMock.SetupGet(scn => scn.TagName).Returns(\"asp:Something\");\n            converter.CanConvertNode(serverControlMock.Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_not_be_able_to_convert_other_nodes()\n        {\n            var serverControlMock = new Mock<IWebFormsNode>();\n            serverControlMock.SetupGet(scn => scn.Type).Returns(NodeType.Text);\n            converter.CanConvertNode(serverControlMock.Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_convert_content_placeholders_to_sections()\n        {\n            converter.ConvertNode(contentTagMock.Object);\n\n            sectionNodeFactoryMock.Verify(f => f.CreateSectionNode(\"HeadContent\", false));\n        }\n\n        [Fact]\n        public void Should_use_chid_converter_for_child_nodes()\n        {\n            var childNodeMock = new Mock<IWebFormsTextNode>();\n            childNodeMock.SetupGet(c => c.Text).Returns(\"TEXT\");\n            contentTagChildren.Add(childNodeMock.Object);\n            childNodeConverterMock.Setup(c => c.CanConvertNode(childNodeMock.Object)).Returns(true).Verifiable();\n            childNodeConverterMock.Setup(c => c.ConvertNode(childNodeMock.Object)).Returns(new IRazorNode[] { new RazorTextNode() });\n\n            var sectionNodeMock = new Mock<IRazorSectionNode>();\n            sectionNodeMock.SetupGet(n => n.Children).Returns(new List<IRazorNode>());\n            sectionNodeFactoryMock.Setup(f => f.CreateSectionNode(It.IsAny<string>(), false)).Returns(sectionNodeMock.Object);\n\n            var result = converter.ConvertNode(contentTagMock.Object);\n\n            result[0].Children[0].ShouldBeType(typeof(RazorTextNode));\n            childNodeConverterMock.Verify();\n        }\n\n        [Fact]\n        public void Should_unwrap_child_nodes_from_main_placeholder()\n        {\n            contentTagMockAttributes[\"ContentPlaceHolderID\"] = \"MainContent\";\n\n            var childNodeMock = new Mock<IWebFormsTextNode>();\n            contentTagChildren.Add(childNodeMock.Object);\n\n            childNodeConverterMock.Setup(c => c.CanConvertNode(It.IsAny<IWebFormsNode>())).Returns(true);\n            childNodeConverterMock.Setup(c => c.ConvertNode(It.IsAny<IWebFormsNode>()))\n                .Returns(new IRazorNode[] { new Mock<IRazorTextNode>().Object });\n\n            var result = converter.ConvertNode(contentTagMock.Object);\n\n            (result[0] is IRazorTextNode).ShouldBeTrue();\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Converters/ContentTagConverterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Converters\n{\n    using Moq;\n    using System.Collections.Generic;\n    using Telerik.RazorConverter;\n    using Telerik.RazorConverter.Razor.Converters;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Xunit;\n\n    public class ContentTagConverterTests\n    {\n        private readonly ContentTagConverter converter;\n        private readonly Mock<IRazorNodeConverterProvider> nodeConverterProviderMock;\n        private readonly Mock<IRazorSectionNodeFactory> sectionNodeFactoryMock;\n        private readonly Mock<IContentTagConverterConfiguration> configurationMock;\n        private readonly Mock<INodeConverter<IRazorNode>> childNodeConverterMock;\r\n        private readonly Mock<IWebFormsServerControlNode> contentTagMock;\r\n        private readonly Dictionary<string, string> contentTagMockAttributes;\r\n        private readonly Mock<IWebFormsServerControlNode> contentPlaceHolderTagMock;\r\n        private readonly Dictionary<string, string> contentPlaceHolderTagMockAttributes;\n        private readonly IList<IWebFormsNode> contentTagChildren;\n\n        public ContentTagConverterTests()\n        {\n            childNodeConverterMock = new Mock<INodeConverter<IRazorNode>>();\n            sectionNodeFactoryMock = new Mock<IRazorSectionNodeFactory>();\n            nodeConverterProviderMock = new Mock<IRazorNodeConverterProvider>();\n            nodeConverterProviderMock.SetupGet(p => p.NodeConverters)\n                .Returns(new INodeConverter<IRazorNode>[] { childNodeConverterMock.Object });\n\n            configurationMock = new Mock<IContentTagConverterConfiguration>();\n            configurationMock.SetupGet(c => c.BodyContentPlaceHolderID).Returns(\"MainContent\");\n\n            converter = new ContentTagConverter(nodeConverterProviderMock.Object, sectionNodeFactoryMock.Object, configurationMock.Object);\n\n            contentTagChildren = new List<IWebFormsNode>();\n            contentTagMockAttributes = new Dictionary<string, string>() { { \"ContentPlaceHolderID\", \"HeadContent\" } };\n\n            contentTagMock = new Mock<IWebFormsServerControlNode>();\n            contentTagMock.SetupGet(scn => scn.Type).Returns(NodeType.ServerControl);\n            contentTagMock.SetupGet(scn => scn.TagName).Returns(\"asp:Content\");\n            contentTagMock.SetupGet(scn => scn.Attributes).Returns(contentTagMockAttributes);\n            contentTagMock.SetupGet(scn => scn.Children).Returns(contentTagChildren);\r\n\r\n            contentPlaceHolderTagMockAttributes = new Dictionary<string, string>() { { \"ID\", \"HeadContent\" } };\r\n            contentPlaceHolderTagMock = new Mock<IWebFormsServerControlNode>();\r\n            contentPlaceHolderTagMock.SetupGet(scn => scn.Type).Returns(NodeType.ServerControl);\r\n            contentPlaceHolderTagMock.SetupGet(scn => scn.TagName).Returns(\"asp:contentplaceholder\");\r\n            contentPlaceHolderTagMock.SetupGet(scn => scn.Attributes).Returns(contentPlaceHolderTagMockAttributes);\n        }\n\n        [Fact]\n        public void Should_be_able_to_convert_content_tag_node()\n        {\n            converter.CanConvertNode(contentTagMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_not_be_able_to_convert_other_server_control_nodes()\n        {\n            var serverControlMock = new Mock<IWebFormsServerControlNode>();\n            serverControlMock.SetupGet(scn => scn.Type).Returns(NodeType.ServerControl);\n            serverControlMock.SetupGet(scn => scn.TagName).Returns(\"asp:Something\");\n            converter.CanConvertNode(serverControlMock.Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_not_be_able_to_convert_other_nodes()\n        {\n            var serverControlMock = new Mock<IWebFormsNode>();\n            serverControlMock.SetupGet(scn => scn.Type).Returns(NodeType.Text);\n            converter.CanConvertNode(serverControlMock.Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_convert_content_placeholders_to_sections()\n        {\n            converter.ConvertNode(contentTagMock.Object);\n\n            sectionNodeFactoryMock.Verify(f => f.CreateSectionNode(\"HeadContent\", false));\n        }\n\n        [Fact]\n        public void Should_use_chid_converter_for_child_nodes()\n        {\n            var childNodeMock = new Mock<IWebFormsTextNode>();\n            childNodeMock.SetupGet(c => c.Text).Returns(\"TEXT\");\n            contentTagChildren.Add(childNodeMock.Object);\n            childNodeConverterMock.Setup(c => c.CanConvertNode(childNodeMock.Object)).Returns(true).Verifiable();\n            childNodeConverterMock.Setup(c => c.ConvertNode(childNodeMock.Object)).Returns(new IRazorNode[] { new RazorTextNode() });\n\n            var sectionNodeMock = new Mock<IRazorSectionNode>();\n            sectionNodeMock.SetupGet(n => n.Children).Returns(new List<IRazorNode>());\n            sectionNodeFactoryMock.Setup(f => f.CreateSectionNode(It.IsAny<string>(), false)).Returns(sectionNodeMock.Object);\n\n            var result = converter.ConvertNode(contentTagMock.Object);\n\n            result[0].Children[0].ShouldBeType(typeof(RazorTextNode));\n            childNodeConverterMock.Verify();\n        }\n\n        [Fact]\n        public void Should_unwrap_child_nodes_from_main_placeholder()\n        {\n            contentTagMockAttributes[\"ContentPlaceHolderID\"] = \"MainContent\";\n\n            var childNodeMock = new Mock<IWebFormsTextNode>();\n            contentTagChildren.Add(childNodeMock.Object);\n\n            childNodeConverterMock.Setup(c => c.CanConvertNode(It.IsAny<IWebFormsNode>())).Returns(true);\n            childNodeConverterMock.Setup(c => c.ConvertNode(It.IsAny<IWebFormsNode>()))\n                .Returns(new IRazorNode[] { new Mock<IRazorTextNode>().Object });\n\n            var result = converter.ConvertNode(contentTagMock.Object);\n\n            (result[0] is IRazorTextNode).ShouldBeTrue();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Converters/DirectiveConverterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Converters\n{\n    using Moq;\n    using System;\n    using System.Collections.Generic;\n    using Telerik.RazorConverter.Razor.Converters;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Xunit;\n\n    public class DirectiveConverterTests\n    {\n        private readonly DirectiveConverter converter;\n        private readonly Mock<IRazorDirectiveNodeFactory> nodeFactoryMock;\n        private readonly Mock<IWebFormsDirectiveNode> pageDirectiveMock;\n        private readonly IDictionary<string, string> attributesDictionary;\n\n        public DirectiveConverterTests()\n        {\n            nodeFactoryMock = new Mock<IRazorDirectiveNodeFactory>();\n            converter = new DirectiveConverter(nodeFactoryMock.Object);\n            attributesDictionary = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);\n            pageDirectiveMock = new Mock<IWebFormsDirectiveNode>();\n            pageDirectiveMock.SetupGet(n => n.Attributes).Returns(attributesDictionary);\n        }\n\n        [Fact]\n        public void Should_be_able_to_convert_directive_node()\n        {\n            converter.CanConvertNode(pageDirectiveMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_drop_page_directive_when_no_base_type_is_specified()\n        {\n            pageDirectiveMock.SetupGet(d => d.Directive).Returns(DirectiveType.Page);\n            attributesDictionary.Add(\"Inherits\", \"System.Web.Mvc.ViewPage\");\n            var nodes = converter.ConvertNode(pageDirectiveMock.Object);\n            nodes.Count.ShouldEqual(0);\n        }\n\n        [Fact]\n        public void Should_convert_Page_directive_to_model_when_inheriting_from_generic_ViewPage()\n        {\n            pageDirectiveMock.SetupGet(d => d.Directive).Returns(DirectiveType.Page);\n            attributesDictionary.Add(\"Inherits\", \"System.Web.Mvc.ViewPage<IEnumerable<OrderDto>>\");\n            nodeFactoryMock.Setup(f => f.CreateDirectiveNode(\"model\", It.IsAny<string>())).Verifiable();            \n            converter.ConvertNode(pageDirectiveMock.Object);\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_extract_model_type_from_generic_ViewPage()\n        {\n            pageDirectiveMock.SetupGet(d => d.Directive).Returns(DirectiveType.Page);\n            attributesDictionary.Add(\"Inherits\", \"System.Web.Mvc.ViewPage<IEnumerable<OrderDto>>\");\n            nodeFactoryMock.Setup(f => f.CreateDirectiveNode(It.IsAny<string>(), \"IEnumerable<OrderDto>\")).Verifiable();\n            converter.ConvertNode(pageDirectiveMock.Object);\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_drop_control_directive_when_no_base_type_is_specified()\n        {\n            pageDirectiveMock.SetupGet(d => d.Directive).Returns(DirectiveType.Page);\n            attributesDictionary.Add(\"Inherits\", \"System.Web.Mvc.ViewUserControl\");\n            var nodes = converter.ConvertNode(pageDirectiveMock.Object);\n            nodes.Count.ShouldEqual(0);\n        }\n\n        [Fact]\n        public void Should_convert_Control_directive_to_model_when_inheriting_from_generic_ViewPage()\n        {\n            pageDirectiveMock.SetupGet(d => d.Directive).Returns(DirectiveType.Control);\n            attributesDictionary.Add(\"Inherits\", \"System.Web.Mvc.ViewUserControl<IEnumerable<OrderDto>>\");\n            nodeFactoryMock.Setup(f => f.CreateDirectiveNode(\"model\", It.IsAny<string>())).Verifiable();\n            converter.ConvertNode(pageDirectiveMock.Object);\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_extract_model_type_from_generic_ViewUserControl()\n        {\n            pageDirectiveMock.SetupGet(d => d.Directive).Returns(DirectiveType.Control);\n            attributesDictionary.Add(\"Inherits\", \"System.Web.Mvc.ViewUserControl<IEnumerable<OrderDto>>\");\n            nodeFactoryMock.Setup(f => f.CreateDirectiveNode(It.IsAny<string>(), \"IEnumerable<OrderDto>\")).Verifiable();\n            converter.ConvertNode(pageDirectiveMock.Object);\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_convert_Page_directive_to_inherit_when_inheriting_from_unknown_type()\n        {\n            pageDirectiveMock.SetupGet(d => d.Directive).Returns(DirectiveType.Page);\n            attributesDictionary.Add(\"Inherits\", \"MyViewPageType\");\n            nodeFactoryMock.Setup(f => f.CreateDirectiveNode(\"inherits\", It.IsAny<string>())).Verifiable();\n            converter.ConvertNode(pageDirectiveMock.Object);\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_extract_custom_model_type()\n        {\n            pageDirectiveMock.SetupGet(d => d.Directive).Returns(DirectiveType.Page);\n            attributesDictionary.Add(\"Inherits\", \"MyViewPageType\");\n            nodeFactoryMock.Setup(f => f.CreateDirectiveNode(It.IsAny<string>(), \"MyViewPageType\")).Verifiable();\n            converter.ConvertNode(pageDirectiveMock.Object);\n            nodeFactoryMock.Verify();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Converters/ExpressionBlockConverterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Converters\n{\n    using Moq;\n    using Telerik.RazorConverter.Razor.Converters;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Xunit;\n\n    public class ExpressionBlockConverterTests\n    {\n        private readonly ExpressionBlockConverter converter;\n        private readonly Mock<IWebFormsExpressionBlockNode> expressionBlockMock;\n        private readonly Mock<IRazorExpressionNodeFactory> nodeFactoryMock;\n\n        public ExpressionBlockConverterTests()\n        {\n            nodeFactoryMock = new Mock<IRazorExpressionNodeFactory>();\n            converter = new ExpressionBlockConverter(nodeFactoryMock.Object);\n\n            expressionBlockMock = new Mock<IWebFormsExpressionBlockNode>();\n        }\n\n        [Fact]\n        public void Should_be_able_to_convert_expressionlock_node()\n        {\n            Assert.True(converter.CanConvertNode(expressionBlockMock.Object));\n        }\n\n        [Fact]\n        public void Should_extract_expression()\n        {\n            expressionBlockMock.Setup(cb => cb.Expression).Returns(\"DateTime.Now\");\n            nodeFactoryMock.Setup(f => f.CreateExpressionNode(\"DateTime.Now\", false)).Verifiable();\n\n            converter.ConvertNode(expressionBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_trim_expression_whitespace()\n        {\n            expressionBlockMock.Setup(cb => cb.Expression).Returns(\"\\t DateTime.Now \");\n            nodeFactoryMock.Setup(f => f.CreateExpressionNode(\"DateTime.Now\", false)).Verifiable();\n\n            converter.ConvertNode(expressionBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_preserve_expression_newlines()\n        {\n            expressionBlockMock.Setup(cb => cb.Expression).Returns(\" DateTime.Now\\r\\n\");\n            nodeFactoryMock.Setup(f => f.CreateExpressionNode(\"DateTime.Now\\r\\n\", true)).Verifiable();\n\n            converter.ConvertNode(expressionBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_recognize_multiline_expression_block()\n        {\n            expressionBlockMock.Setup(cb => cb.Expression).Returns(\"Html.Telerik().Grid(Model)\\r\\n.Name(\\\"Grid\\\")\");\n            nodeFactoryMock.Setup(f => f.CreateExpressionNode(\"Html.Telerik().Grid(Model)\\r\\n.Name(\\\"Grid\\\")\", true)).Verifiable();\n\n            converter.ConvertNode(expressionBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_convert_ResolveUrl_to_UrlContent()\n        {\n            expressionBlockMock.Setup(cb => cb.Expression).Returns(\"ResolveUrl(\\\"x\\\")\");\n            nodeFactoryMock.Setup(f => f.CreateExpressionNode(\"Url.Content(\\\"x\\\")\", false)).Verifiable();\n\n            converter.ConvertNode(expressionBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_wrap_HtmlDecode_in_Raw()\n        {\n            expressionBlockMock.Setup(cb => cb.Expression).Returns(\"HttpUtility.HtmlDecode(\\\"x()\\\")\");\n            nodeFactoryMock.Setup(f => f.CreateExpressionNode(\"Html.Raw(HttpUtility.HtmlDecode(\\\"x()\\\"))\", false)).Verifiable();\n\n            converter.ConvertNode(expressionBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_remove_HtmlEncode()\n        {\n            expressionBlockMock.Setup(cb => cb.Expression).Returns(\"Html.Encode(\\\"x\\\")\");\n            nodeFactoryMock.Setup(f => f.CreateExpressionNode(\"\\\"x\\\"\", false)).Verifiable();\n\n            converter.ConvertNode(expressionBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_remove_HttpUtility_HtmlEncode()\n        {\n            expressionBlockMock.Setup(cb => cb.Expression).Returns(\"HttpUtility.HtmlEncode(\\\"x\\\")\");\n            nodeFactoryMock.Setup(f => f.CreateExpressionNode(\"\\\"x\\\"\", false)).Verifiable();\n\n            converter.ConvertNode(expressionBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n\n        [Fact]\n        public void Should_remove_cast_to_string_while_removing_HttpUtility_HtmlEncode()\n        {\n            expressionBlockMock.Setup(cb => cb.Expression).Returns(\"HttpUtility.HtmlEncode((string)\\\"x\\\")\");\n            nodeFactoryMock.Setup(f => f.CreateExpressionNode(\"\\\"x\\\"\", false)).Verifiable();\n\n            converter.ConvertNode(expressionBlockMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Converters/TextNodeConverterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Converters\n{\n    using Moq;\n    using Telerik.RazorConverter.Razor.Converters;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Xunit;\n\n    public class TextNodeConverterTests\n    {\n        private readonly TextNodeConverter converter;\n        private readonly Mock<IWebFormsTextNode> textNodeMock;\n        private readonly Mock<IRazorTextNodeFactory> nodeFactoryMock;\n\n        public TextNodeConverterTests()\n        {\n            nodeFactoryMock = new Mock<IRazorTextNodeFactory>();\n            converter = new TextNodeConverter(nodeFactoryMock.Object);\n            textNodeMock = new Mock<IWebFormsTextNode>();\n        }               \n\n        [Fact]\n        public void Should_be_able_to_convert_text_node()\n        {\n            converter.CanConvertNode(textNodeMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_not_be_able_to_convert_generic_node()\n        {\n            converter.CanConvertNode(new Mock<IWebFormsNode>().Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_convert_text_as_it_is()\n        {\n            textNodeMock.Setup(n => n.Text).Returns(\" TEXT \");\n            nodeFactoryMock.Setup(f => f.CreateTextNode(\" TEXT \")).Verifiable();\n\n            converter.ConvertNode(textNodeMock.Object);\n\n            nodeFactoryMock.Verify();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Converters/WebFormsToRazorConverterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Converters\n{\n    using Moq;\n    using Telerik.RazorConverter;\n    using Telerik.RazorConverter.Razor.Converters;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Xunit;\n    \n    public class WebFormsToRazorConverterTests\n    {\n        private readonly WebFormsToRazorConverter converter;\n        private readonly Mock<IDocument<IWebFormsNode>> documentMock;\n        private readonly Mock<IWebFormsNode> childNodeMock;\n        private readonly Mock<IRazorNodeConverterProvider> converterProviderMock;\n        private readonly Mock<INodeConverter<IRazorNode>> firstNodeConverter;\n\n        public WebFormsToRazorConverterTests()\n        {\n            firstNodeConverter = new Mock<INodeConverter<IRazorNode>>();\n\n            converterProviderMock = new Mock<IRazorNodeConverterProvider>();\n            converterProviderMock.SetupGet(c => c.NodeConverters)\n                .Returns(new INodeConverter<IRazorNode>[] { firstNodeConverter.Object });\n            converter = new WebFormsToRazorConverter(converterProviderMock.Object);\n\n            childNodeMock = new Mock<IWebFormsNode>();\n            var rootNodeMock = new Mock<IWebFormsNode>();\n            rootNodeMock.SetupGet(n => n.Children).Returns(new IWebFormsNode[] { childNodeMock.Object });\n            documentMock = new Mock<IDocument<IWebFormsNode>>();\n            documentMock.SetupGet(d => d.RootNode).Returns(rootNodeMock.Object);        \n        }\n\n        [Fact]\n        public void Should_check_if_converter_supports_child_node()\n        {\n            firstNodeConverter.Setup(c => c.CanConvertNode(childNodeMock.Object)).Verifiable();\n            converter.Convert(documentMock.Object);\n            firstNodeConverter.Verify();\n        }\n\n        [Fact]\n        public void Should_call_converter_if_supports_child_node()\n        {\n            firstNodeConverter.Setup(c => c.CanConvertNode(childNodeMock.Object)).Returns(true);\n            firstNodeConverter.Setup(c => c.ConvertNode(childNodeMock.Object))\n                .Returns(new IRazorNode[] { new Mock<IRazorNode>().Object })\n                .Verifiable();\n            converter.Convert(documentMock.Object);\n            firstNodeConverter.Verify();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/DOM/RazorCodeNodeFactoryTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.DOM\n{\n    using Telerik.RazorConverter.Razor.DOM;\n    using Xunit;\n\n    public class RazorCodeNodeFactoryTests\n    {\n        private readonly RazorCodeNodeFactory razorCodeNodeFactory;\n\n        public RazorCodeNodeFactoryTests()\n        {\n            razorCodeNodeFactory = new RazorCodeNodeFactory();\n        }\n\n        [Fact]\n        public void Should_set_code()\n        {\n            var codeNode = razorCodeNodeFactory.CreateCodeNode(\" CODE \", true, false);\n            codeNode.Code.ShouldEqual(\" CODE \");\n        }\n\n        [Fact]\n        public void Should_set_requires_prefix()\n        {\n            var codeNode = razorCodeNodeFactory.CreateCodeNode(\"\", true, false);\n            codeNode.RequiresPrefix.ShouldEqual(true);\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/DOM/RazorCommentNodeFactoryTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.DOM\n{\n    using Telerik.RazorConverter.Razor.DOM;\n    using Xunit;\n\n    public class RazorCommentNodeFactoryTests\n    {\n        private readonly RazorCommentNodeFactory razorCommentNodeFactory;\n\n        public RazorCommentNodeFactoryTests()\n        {\n            razorCommentNodeFactory = new RazorCommentNodeFactory();\n        }\n\n        [Fact]\n        public void Should_set_text()\n        {\n            var commentNode = razorCommentNodeFactory.CreateCommentNode(\"text\");\n            commentNode.Text.ShouldEqual(\"text\");\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/DOM/RazorDirectiveNodeFactoryTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.DOM\n{\n    using Telerik.RazorConverter.Razor.DOM;\n    using Xunit;\n\n    public class RazorDirectiveNodeFactoryTests\n    {\n        private readonly RazorDirectiveNodeFactory razorDirectiveNodeFactory;\n\n        public RazorDirectiveNodeFactoryTests()\n        {\n            razorDirectiveNodeFactory = new RazorDirectiveNodeFactory();\n        }\n\n        [Fact]\n        public void Should_set_directive()\n        {\n            var codeNode = razorDirectiveNodeFactory.CreateDirectiveNode(\"directive\", \"\");\n            codeNode.Directive.ShouldEqual(\"directive\");\n        }\n\n        [Fact]\n        public void Should_set_parameters()\n        {\n            var codeNode = razorDirectiveNodeFactory.CreateDirectiveNode(\"\", \" params \");\n            codeNode.Parameters.ShouldEqual(\" params \");\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/DOM/RazorNodeTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.DOM\n{\n    using Telerik.RazorConverter.Razor.DOM;\n    using Xunit;\n\n    public class RazorNodeTests\n    {\n        private readonly RazorNode razorNode;\n\n        public RazorNodeTests()\n        {\n            razorNode = new RazorNode();\n        }\n\n        [Fact]\n        public void Should_set_parent_upon_adding()\n        {\n            var childNode = new RazorNode();\n            razorNode.Children.Add(childNode);\n\n            childNode.Parent.ShouldBeSameAs(razorNode);\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/DOM/RazorTextNodeFactoryTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.DOM\n{\n    using Telerik.RazorConverter.Razor.DOM;\n    using Xunit;\n\n    public class RazorTextNodeFactoryTests\n    {\n        private readonly RazorTextNodeFactory razorTextNodeFactory;\n\n        public RazorTextNodeFactoryTests()\n        {\n            razorTextNodeFactory = new RazorTextNodeFactory();\n        }\n\n        [Fact]\n        public void Should_set_text()\n        {\n            var codeNode = razorTextNodeFactory.CreateTextNode(\"text\");\n            codeNode.Text.ShouldEqual(\"text\");\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Rendering/CodeNodeRendererTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Rendering\n{\n    using Moq;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.Razor.Rendering;\n    using Xunit;\n\n    public class CodeNodeRendererTests\n    {\n        private readonly CodeNodeRenderer renderer;\n        private readonly Mock<IRazorCodeNode> codeNodeMock;\n\n        public CodeNodeRendererTests()\n        {\n            renderer = new CodeNodeRenderer();\n            codeNodeMock = new Mock<IRazorCodeNode>();\n        }\n\n        [Fact]\n        public void Should_support_code_node()\n        {\n            renderer.CanRenderNode(codeNodeMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_not_support_other_nodes()\n        {\n            renderer.CanRenderNode(new Mock<IRazorNode>().Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_prefix_code()\n        {\n            codeNodeMock.SetupGet(n => n.Code).Returns(\"if (true) { doSomething(); }\");\n            codeNodeMock.SetupGet(n => n.RequiresPrefix).Returns(true);\n\n            renderer.RenderNode(codeNodeMock.Object).ShouldEqual(\"@if (true) { doSomething(); }\");\n        }\n\n        [Fact]\n        public void Should_trim_start_of_code_when_adding_prefix()\n        {\n            codeNodeMock.SetupGet(n => n.Code).Returns(\" if (true) { doSomething(); }\");\n            codeNodeMock.SetupGet(n => n.RequiresPrefix).Returns(true);\n\n            renderer.RenderNode(codeNodeMock.Object).ShouldEqual(\"@if (true) { doSomething(); }\");\n        }\n\n        [Fact]\n        public void Should_not_prefix_continued_code()\n        {\n            codeNodeMock.SetupGet(n => n.Code).Returns(\"} else {\");\n            codeNodeMock.SetupGet(n => n.RequiresPrefix).Returns(false);\n\n            renderer.RenderNode(codeNodeMock.Object).ShouldEqual(\"} else {\");\n        }\n\n        [Fact]\n        public void Should_not_trim_start_of_continued_code()\n        {\n            codeNodeMock.SetupGet(n => n.Code).Returns(\" }\");\n            codeNodeMock.SetupGet(n => n.RequiresPrefix).Returns(false);\n\n            renderer.RenderNode(codeNodeMock.Object).ShouldEqual(\" }\");\n        }\n\n        [Fact]\n        public void Should_add_block()\n        {\n            codeNodeMock.SetupGet(n => n.Code).Returns(\" code \");\n            codeNodeMock.SetupGet(n => n.RequiresBlock).Returns(true);\n\n            renderer.RenderNode(codeNodeMock.Object).ShouldEqual(\"@{\\r\\n code \\r\\n}\");\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Rendering/CommentNodeRendererTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor\n{\n    using Moq;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.Razor.Rendering;\n    using Xunit;\n\n    public class CommentNodeRendererTests\n    {\n        private readonly CommentNodeRenderer renderer;\n        private readonly Mock<IRazorCommentNode> nodeMock;\n\n        public CommentNodeRendererTests()\n        {\n            renderer = new CommentNodeRenderer();\n            nodeMock = new Mock<IRazorCommentNode>();\n        }\n\n        [Fact]\n        public void Should_support_comment_node()\n        {\n            renderer.CanRenderNode(nodeMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_not_support_generic_node()\n        {\n            renderer.CanRenderNode(new Mock<IRazorNode>().Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_render_comment_with_razor_syntax()\n        {\n            nodeMock.SetupGet(n => n.Text).Returns(\"TEXT\");\n\n            renderer.RenderNode(nodeMock.Object).ShouldEqual(\"@*TEXT*@\");\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Rendering/DirectiveNodeRendererTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor\n{\n    using Moq;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.Razor.Rendering;\n    using Xunit;\n\n    public class DirectiveNodeRendererTests\n    {\n        private readonly DirectiveNodeRenderer renderer;\n        private readonly Mock<IRazorDirectiveNode> directiveNodeMock;\n\n        public DirectiveNodeRendererTests()\n        {\n            renderer = new DirectiveNodeRenderer();\n            directiveNodeMock = new Mock<IRazorDirectiveNode>();\n        }\n\n        [Fact]\n        public void Should_be_able_to_render_directive_node()\n        {\n            renderer.CanRenderNode(directiveNodeMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_prefix_directive()\n        {\n            directiveNodeMock.SetupGet(n => n.Directive).Returns(\"inherits\");\n            renderer.RenderNode(directiveNodeMock.Object).ShouldEqual(\"@inherits\");\n        }\n\n        [Fact]\n        public void Should_render_parameters()\n        {\n            directiveNodeMock.SetupGet(n => n.Directive).Returns(\"inherits\");\n            directiveNodeMock.SetupGet(n => n.Parameters).Returns(\"MyViewDataType\");\n            renderer.RenderNode(directiveNodeMock.Object).ShouldEqual(\"@inherits MyViewDataType\");\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Rendering/ExpressionNodeRendererTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Rendering\n{\n    using Moq;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.Razor.Rendering;\n    using Xunit;\n\n    public class ExpressionNodeRendererTests\n    {\n        private readonly ExpressionNodeRenderer renderer;\n        private readonly Mock<IRazorExpressionNode> expressionNodeMock;\n\n        public ExpressionNodeRendererTests()\n        {\n            renderer = new ExpressionNodeRenderer();\n            expressionNodeMock = new Mock<IRazorExpressionNode>();\n        }\n\n        [Fact]\n        public void Should_support_expression_node()\n        {\n            renderer.CanRenderNode(expressionNodeMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_not_support_other_nodes()\n        {\n            renderer.CanRenderNode(new Mock<IRazorNode>().Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_prefix_expression()\n        {\n            expressionNodeMock.SetupGet(n => n.Expression).Returns(\"DateTime.Now\");\n\n            renderer.RenderNode(expressionNodeMock.Object).ShouldEqual(\"@DateTime.Now\");\n        }\n\n        [Fact]\n        public void Should_add_parentheses_for_multiline_expressions()\n        {\n            expressionNodeMock.SetupGet(n => n.Expression).Returns(\"Html.Telerik().Grid(orders)\\r\\n.Name(\\\"Grid 1\\\")\");\n            expressionNodeMock.SetupGet(n => n.IsMultiline).Returns(true);\n\n            renderer.RenderNode(expressionNodeMock.Object).ShouldEqual(\"@(Html.Telerik().Grid(orders)\\r\\n.Name(\\\"Grid 1\\\"))\");\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Rendering/RazorViewRendererTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor\n{\n    using Moq;\n    using System.Collections.Generic;\n    using Telerik.RazorConverter;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.Razor.Rendering;\n    using Xunit;\n\n    public class RazorViewRendererTests\n    {\n        private readonly RazorViewRenderer viewRenderer;\n        private readonly Mock<IDocument<IRazorNode>> documentMock;\n        private readonly Mock<IRazorNode> rootNodeMock;\n        private readonly Mock<IRazorNode> childNodeMock;\n        private readonly Mock<IRazorNodeRenderer> firstNodeRenderer;\n        private readonly Mock<IRazorNodeRenderer> secondNodeRenderer;\n        private readonly IList<IRazorNodeRenderer> renderers;\n        private readonly Mock<IRazorNodeRendererProvider> rendererProvider;\n\n        public RazorViewRendererTests()\n        {\n            firstNodeRenderer = new Mock<IRazorNodeRenderer>();\n            secondNodeRenderer = new Mock<IRazorNodeRenderer>();\n\n            renderers = new List<IRazorNodeRenderer> { firstNodeRenderer.Object, secondNodeRenderer.Object };\n            rendererProvider = new Mock<IRazorNodeRendererProvider>();\n            rendererProvider.SetupGet(p => p.NodeRenderers).Returns(renderers);\n\n            viewRenderer = new RazorViewRenderer(rendererProvider.Object);\n\n            rootNodeMock = new Mock<IRazorNode>();\n            childNodeMock = new Mock<IRazorNode>();\n            rootNodeMock.SetupGet(n => n.Children).Returns(new IRazorNode[] { childNodeMock.Object });\n\n            documentMock = new Mock<IDocument<IRazorNode>>();\n            documentMock.SetupGet(d => d.RootNode).Returns(rootNodeMock.Object);\n        }\n\n        [Fact]\n        public void Should_check_if_renderer_supports_child_node()\n        {\n            firstNodeRenderer.Setup(r => r.CanRenderNode(childNodeMock.Object)).Verifiable();\n            viewRenderer.Render(documentMock.Object);\n            firstNodeRenderer.Verify();\n        }\n\n        [Fact]\n        public void Should_call_renderer_if_supports_child_node()\n        {\n            firstNodeRenderer.Setup(r => r.CanRenderNode(childNodeMock.Object)).Returns(true);\n            firstNodeRenderer.Setup(r => r.RenderNode(childNodeMock.Object)).Verifiable();\n            viewRenderer.Render(documentMock.Object);\n            firstNodeRenderer.Verify();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Rendering/SectionNodeRendererTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor.Rendering\r\n{\r\n    using Moq;\r\n    using System.Collections.Generic;\r\n    using System.Text.RegularExpressions;\r\n    using Telerik.RazorConverter.Razor.DOM;\r\n    using Telerik.RazorConverter.Razor.Rendering;\r\n    using Xunit;\r\n\r\n    public class SectionNodeRendererTests\r\n    {\r\n        private readonly SectionNodeRenderer renderer;\r\n        private readonly Mock<IRazorNodeRenderer> nodeRendererMock;\r\n        private readonly IList<IRazorNodeRenderer> nodeRenderers;\r\n        private readonly Mock<IRazorNodeRendererProvider> rendererProviderMock;\r\n        private readonly Mock<IRazorSectionNode> sectionNodeMock;\r\n\r\n        public SectionNodeRendererTests()\r\n        {\r\n            nodeRendererMock = new Mock<IRazorNodeRenderer>();\r\n            nodeRenderers = new List<IRazorNodeRenderer> { nodeRendererMock.Object };\r\n            rendererProviderMock = new Mock<IRazorNodeRendererProvider>();\r\n            rendererProviderMock.SetupGet(p => p.NodeRenderers).Returns(nodeRenderers);\r\n            renderer = new SectionNodeRenderer(rendererProviderMock.Object);\r\n            sectionNodeMock = new Mock<IRazorSectionNode>();\r\n            sectionNodeMock.SetupGet(n => n.Name).Returns(\"HeadContent\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Should_support_code_node()\r\n        {\r\n            renderer.CanRenderNode(sectionNodeMock.Object).ShouldBeTrue();\r\n        }\r\n\r\n        [Fact]\r\n        public void Should_not_support_other_nodes()\r\n        {\r\n            renderer.CanRenderNode(new Mock<IRazorNode>().Object).ShouldBeFalse();\r\n        }\r\n\r\n        [Fact]\r\n        public void Should_render_empty_section()\r\n        {\r\n            sectionNodeMock.SetupGet(n => n.Children).Returns(new IRazorNode[] {});\r\n\r\n            string output = renderer.RenderNode(sectionNodeMock.Object);\r\n            Regex.Replace(output, @\"\\s+\", \" \").ShouldEqual(\"@section HeadContent { }\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Should_render_children_in_section()\r\n        {\r\n            nodeRendererMock.Setup(r => r.CanRenderNode(It.IsAny<IRazorNode>())).Returns(true);\r\n            nodeRendererMock.Setup(r => r.RenderNode(It.IsAny<IRazorNode>())).Returns(\"Text\");\r\n\r\n            sectionNodeMock.SetupGet(n => n.Children).Returns(new IRazorNode[] { new Mock<IRazorNode>().Object });\r\n\r\n            string output = renderer.RenderNode(sectionNodeMock.Object);\r\n            Regex.Replace(output, @\"\\s+\", \" \").ShouldEqual(\"@section HeadContent { Text }\");\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Razor/Rendering/TextNodeRendererTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.Razor\n{\n    using Moq;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Telerik.RazorConverter.Razor.Rendering;\n    using Xunit;\n\n    public class TextNodeRendererTests\n    {\n        private readonly TextNodeRenderer renderer;\n        private readonly Mock<IRazorTextNode> nodeMock;\n\n        public TextNodeRendererTests()\n        {\n            renderer = new TextNodeRenderer();\n            nodeMock = new Mock<IRazorTextNode>();\n        }\n\n        [Fact]\n        public void Should_support_text_node()\n        {\n            renderer.CanRenderNode(nodeMock.Object).ShouldBeTrue();\n        }\n\n        [Fact]\n        public void Should_not_support_generic_node()\n        {\n            renderer.CanRenderNode(new Mock<IRazorNode>().Object).ShouldBeFalse();\n        }\n\n        [Fact]\n        public void Should_render_text_as_it_is()\n        {\n            nodeMock.SetupGet(n => n.Text).Returns(\"TEXT\");\n\n            renderer.RenderNode(nodeMock.Object).ShouldEqual(\"TEXT\");\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/Telerik.RazorConverter.Tests.csproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup>\r\n    <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>\r\n    <Platform Condition=\" '$(Platform)' == '' \">AnyCPU</Platform>\r\n    <ProductVersion>8.0.30703</ProductVersion>\r\n    <SchemaVersion>2.0</SchemaVersion>\r\n    <ProjectGuid>{2445EA5B-53A9-4522-B0B8-342C1241A13A}</ProjectGuid>\r\n    <OutputType>Library</OutputType>\r\n    <AppDesignerFolder>Properties</AppDesignerFolder>\r\n    <RootNamespace>Telerik.RazorConverter.Tests</RootNamespace>\r\n    <AssemblyName>Telerik.RazorConverter.Tests</AssemblyName>\r\n    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>\r\n    <FileAlignment>512</FileAlignment>\r\n    <SccProjectName>\r\n    </SccProjectName>\r\n    <SccLocalPath>\r\n    </SccLocalPath>\r\n    <SccAuxPath>\r\n    </SccAuxPath>\r\n    <SccProvider>\r\n    </SccProvider>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' \">\r\n    <DebugSymbols>true</DebugSymbols>\r\n    <DebugType>full</DebugType>\r\n    <Optimize>false</Optimize>\r\n    <OutputPath>bin\\Debug\\</OutputPath>\r\n    <DefineConstants>DEBUG;TRACE</DefineConstants>\r\n    <ErrorReport>prompt</ErrorReport>\r\n    <WarningLevel>4</WarningLevel>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' \">\r\n    <DebugType>pdbonly</DebugType>\r\n    <Optimize>true</Optimize>\r\n    <OutputPath>bin\\Release\\</OutputPath>\r\n    <DefineConstants>TRACE</DefineConstants>\r\n    <ErrorReport>prompt</ErrorReport>\r\n    <WarningLevel>4</WarningLevel>\r\n  </PropertyGroup>\r\n  <ItemGroup>\r\n    <Reference Include=\"Moq\">\r\n      <HintPath>..\\References\\Moq.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"System\" />\r\n    <Reference Include=\"System.ComponentModel.Composition\" />\r\n    <Reference Include=\"System.Core\" />\r\n    <Reference Include=\"System.Xml.Linq\" />\r\n    <Reference Include=\"System.Data.DataSetExtensions\" />\r\n    <Reference Include=\"Microsoft.CSharp\" />\r\n    <Reference Include=\"System.Data\" />\r\n    <Reference Include=\"System.Xml\" />\r\n    <Reference Include=\"xunit\">\r\n      <HintPath>..\\References\\xunit.dll</HintPath>\r\n    </Reference>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Compile Include=\"Razor\\Converters\\CodeGroupConverterTests.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\CommentNodeConverterTests.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorCommentNodeFactoryTests.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\CodeNodeRendererTests.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorTextNodeFactoryTests.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorDirectiveNodeFactoryTests.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorCodeNodeFactoryTests.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\CommentNodeRendererTests.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\SectionNodeRendererTests.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\RazorViewRendererTests.cs\" />\r\n    <Compile Include=\"Razor\\DOM\\RazorNodeTests.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\ExpressionNodeRendererTests.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\TextNodeRendererTests.cs\" />\r\n    <Compile Include=\"Razor\\Rendering\\DirectiveNodeRendererTests.cs\" />\r\n    <Compile Include=\"Properties\\AssemblyInfo.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\CodeBlockConverterTests.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\ExpressionBlockConverterTests.cs\" />\r\n    <Compile Include=\"WebForms\\Filters\\AddBlockBracesFilterTests.cs\" />\r\n    <Compile Include=\"WebForms\\Filters\\WrapNestedTemplatesFilterTests.cs\" />\r\n    <Compile Include=\"WebForms\\WebFormsParserFilteringTests.cs\" />\r\n    <Compile Include=\"WebForms\\DOM\\WebFormsCodeGroupNodeTests.cs\" />\r\n    <Compile Include=\"WebForms\\Filters\\CodeBlockGroupingFilterTests.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\TextNodeConverterTests.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\ContentTagConverterTests.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\WebFormsToRazorConverterTests.cs\" />\r\n    <Compile Include=\"Razor\\Converters\\DirectiveConverterTests.cs\" />\r\n    <Compile Include=\"WebForms\\WebFormsParserTests.cs\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ProjectReference Include=\"..\\Telerik.RazorConverter.Tests.Common\\Telerik.RazorConverter.Tests.Common.csproj\">\r\n      <Project>{B30D861F-7D12-436A-BC5A-930D48291037}</Project>\r\n      <Name>Telerik.RazorConverter.Tests.Common</Name>\r\n    </ProjectReference>\r\n    <ProjectReference Include=\"..\\Telerik.RazorConverter\\Telerik.RazorConverter.csproj\">\r\n      <Project>{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}</Project>\r\n      <Name>Telerik.RazorConverter</Name>\r\n    </ProjectReference>\r\n  </ItemGroup>\r\n  <ItemGroup />\r\n  <Import Project=\"$(MSBuildToolsPath)\\Microsoft.CSharp.targets\" />\r\n  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \n       Other similar extension points exist, see Microsoft.Common.targets.\n  <Target Name=\"BeforeBuild\">\n  </Target>\n  <Target Name=\"AfterBuild\">\n  </Target>\n  -->\r\n</Project>"
  },
  {
    "path": "Telerik.RazorConverter.Tests/WebForms/DOM/WebFormsCodeGroupNodeTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.WebForms.DOM\n{\n    using Moq;\n    using System;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Xunit;\n\n    public class WebFormsCodeGroupNodeTests\n    {\n        private Mock<IWebFormsCodeBlockNode> openingCodeNode;\n        private Mock<IWebFormsTextNode> innerTextNode;\n        private Mock<IWebFormsCodeBlockNode> closingCodeNode;\n        private WebFormsCodeGroupNode node;\n\n        public WebFormsCodeGroupNodeTests()\n        {\n            openingCodeNode = new Mock<IWebFormsCodeBlockNode>();\n            openingCodeNode.SetupGet(n => n.BlockType).Returns(CodeBlockNodeType.Opening);\n            innerTextNode = new Mock<IWebFormsTextNode>();\n            closingCodeNode = new Mock<IWebFormsCodeBlockNode>();\n            closingCodeNode.SetupGet(n => n.BlockType).Returns(CodeBlockNodeType.Closing);\n            node = new WebFormsCodeGroupNode();\n            node.Children.Add(openingCodeNode.Object);\n            node.Children.Add(innerTextNode.Object);\n            node.Children.Add(closingCodeNode.Object);\n        }\n\n        [Fact]\n        public void Should_combine_content_of_children()\n        {\n            openingCodeNode.SetupGet(n => n.Content).Returns(\"if(true){\");\n            innerTextNode.SetupGet(n => n.Content).Returns(\"<span>Hello</span>\");\n            closingCodeNode.SetupGet(n => n.Content).Returns(\"}\");\n\n            node.Content.ShouldEqual(\"if(true){----$$<span>Hello</span>----$$}\");\n        }\n\n        [Fact]\n        public void Should_replace_content_of_individual_nodes()\n        {\n            openingCodeNode.SetupSet(n => n.Content = \"@if(true){\").Verifiable();\n            innerTextNode.SetupSet(n => n.Content = \"<span>Hello</span>\").Verifiable();\n            closingCodeNode.SetupSet(n => n.Content = \"}\").Verifiable();\n\n            node.Content = \"@if(true){----$$<span>Hello</span>----$$}\";\n\n            openingCodeNode.Verify();\n            innerTextNode.Verify();\n            closingCodeNode.Verify();\n        }\n\n        [Fact]\n        public void Should_throw_exception_when_adding_non_content_node()\n        {\n            var genericNode = new Mock<IWebFormsNode>().Object;\n            Assert.Throws<InvalidOperationException>(() => node.Children.Add(genericNode));\n        }\n\n        [Fact]\n        public void Should_throw_exception_when_trying_to_replace_with_fewer_parts()\n        {\n            Assert.Throws<InvalidOperationException>(() => node.Content = \"if(true){----$$<span>Hello</span>\");\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/WebForms/Filters/AddBlockBracesFilterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.WebForms.Filters\n{\n    using Moq;\n    using System.Collections.Generic;\n    using System.Linq;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Telerik.RazorConverter.WebForms.Filters;\n    using Xunit;\n\n    public class AddBlockBracesFilterTests\n    {\n        private Mock<IWebFormsCodeBlockNode> codeNodeMock;        \n        private Mock<IWebFormsCodeGroupNode> codeGroupNodeMock;\n\n        private AddBlockBracesFilter filter;\n\n        public AddBlockBracesFilterTests()\n        {\n            codeNodeMock = new Mock<IWebFormsCodeBlockNode>();\n            codeGroupNodeMock = new Mock<IWebFormsCodeGroupNode>();\n            filter = new AddBlockBracesFilter();\n        }\n\n        [Fact]\n        public void Should_not_transform_generic_block()\n        {\n            var textNode = new Mock<IWebFormsNode>();\n            \n            var filterResult = filter.Filter(textNode.Object, null);\n                        \n            filterResult[0].ShouldBeSameAs(textNode.Object);\n        }\n\n        [Fact]\n        public void Should_not_transform_opening_code_block()\n        {\n            codeNodeMock.SetupGet(cn => cn.BlockType).Returns(CodeBlockNodeType.Opening);\n            codeNodeMock.SetupGet(cn => cn.Content).Returns(\"if (true) {\");\n            \n            filter.Filter(codeNodeMock.Object, null);\n            \n            codeNodeMock.VerifySet(cb => cb.Content = It.IsAny<string>(), Times.Never());\n        }\n\n        [Fact]\n        public void Should_not_transform_continued_code_block()\n        {\n            codeNodeMock.SetupGet(cn => cn.BlockType).Returns(CodeBlockNodeType.Continued);\n            codeNodeMock.SetupGet(cn => cn.Content).Returns(\"} else {\");\n            \n            filter.Filter(codeNodeMock.Object, null);\n\n            codeNodeMock.VerifySet(cb => cb.Content = It.IsAny<string>(), Times.Never());\n        }\n\n        [Fact]\n        public void Should_not_transform_closing_code_block()\n        {\n            codeNodeMock.SetupGet(cn => cn.BlockType).Returns(CodeBlockNodeType.Closing);\n            codeNodeMock.SetupGet(cn => cn.Content).Returns(\"}\");\n            \n            filter.Filter(codeNodeMock.Object, null);\n\n            codeNodeMock.VerifySet(cb => cb.Content = It.IsAny<string>(), Times.Never());\n        }\n\n        [Fact]\n        public void Should_add_braces_to_non_keyword_statement()\n        {\n            codeNodeMock.SetupGet(cn => cn.BlockType).Returns(CodeBlockNodeType.Complete);\n            codeNodeMock.Setup(cb => cb.Content).Returns(@\"someCode();\");\n            codeNodeMock.SetupSet(cb => cb.Content = \"{someCode();}\").Verifiable();\n            \n            filter.Filter(codeNodeMock.Object, null);\n\n            codeNodeMock.Verify();\n        }\n\n        [Fact]\n        public void Should_not_add_braces_to_if_statement()\n        {\n            codeNodeMock.SetupGet(cn => cn.BlockType).Returns(CodeBlockNodeType.Complete);\n            codeNodeMock.Setup(cb => cb.Content).Returns(@\" if (true) { } \");\n\n            filter.Filter(codeNodeMock.Object, null);\n\n            codeNodeMock.VerifySet(cb => cb.Content = It.IsAny<string>(), Times.Never());\n        }\n\n        [Fact]\n        public void Should_not_add_braces_to_Html_RenderPartial_statement()\n        {\n            codeNodeMock.SetupGet(cn => cn.BlockType).Returns(CodeBlockNodeType.Complete);\n            codeNodeMock.Setup(cb => cb.Content).Returns(@\" Html.RenderPartial(\"\"AccessibilityValidation\"\"); \");\n\n            filter.Filter(codeNodeMock.Object, null);\n\n            codeNodeMock.VerifySet(cb => cb.Content = It.IsAny<string>(), Times.Never());\n        }\n\n        [Fact]\n        public void Should_add_braces_to_blocks_with_multiple_statements()\n        {\n            codeNodeMock.SetupGet(cn => cn.BlockType).Returns(CodeBlockNodeType.Complete);\n            codeNodeMock.Setup(cb => cb.Content).Returns(\"if (true) { }\\r\\nHtml.Telerik().Grid(data);\");\n            codeNodeMock.SetupSet(cb => cb.Content = \"{if (true) { }\\r\\nHtml.Telerik().Grid(data);}\").Verifiable();\n\n            filter.Filter(codeNodeMock.Object, null);\n\n            codeNodeMock.Verify();\n        }\n\n        [Fact]\n        public void Should_add_braces_to_code_group()\n        {\n            codeGroupNodeMock.SetupGet(g => g.Content)\n                .Returns(\"ScriptRegistrar().OnDocumentReady(----$$@<text>alert(1);</text>----$$)\");\n\n            codeGroupNodeMock\n                .SetupSet(g => g.Content = \"{ScriptRegistrar().OnDocumentReady(----$$@<text>alert(1);</text>----$$)}\").Verifiable();\n\n            filter.Filter(codeGroupNodeMock.Object, null);\n\n            codeGroupNodeMock.Verify();\n        }\n    }\n}\n\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/WebForms/Filters/CodeBlockGroupingFilterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.WebForms.Filters\n{\n    using Moq;\n    using System.Collections.Generic;\n    using System.Linq;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Telerik.RazorConverter.WebForms.Filters;\n    using Xunit;\n\n    public class CodeBlockGroupingFilterTests\n    {\n        private Mock<IWebFormsNode> parentNode;\n        private List<IWebFormsNode> children;\n        private Mock<IWebFormsTextNode> outerTextNodeBefore;\n        private Mock<IWebFormsCodeBlockNode> openingCodeNode;\n        private Mock<IWebFormsTextNode> innerTextNode;\n        private Mock<IWebFormsCodeBlockNode> contCodeNode;\n\n        private Mock<IWebFormsCodeBlockNode> closingCodeNode;\n        private Mock<IWebFormsTextNode> outerTextNodeAfter;\n\n        private IWebFormsCodeGroupNodeFactory nodeFactory;\n        private CodeBlockGroupingFilter filter;\n\n        public CodeBlockGroupingFilterTests()\n        {\n            parentNode = new Mock<IWebFormsNode>();\n            children = new List<IWebFormsNode>();\n            parentNode.SetupGet(p => p.Children).Returns(children);\n\n            outerTextNodeBefore = new Mock<IWebFormsTextNode>();\n            openingCodeNode = new Mock<IWebFormsCodeBlockNode>();\n            openingCodeNode.SetupGet(n => n.BlockType).Returns(CodeBlockNodeType.Opening);\n            contCodeNode = new Mock<IWebFormsCodeBlockNode>();\n            contCodeNode.SetupGet(n => n.BlockType).Returns(CodeBlockNodeType.Continued);\n            innerTextNode = new Mock<IWebFormsTextNode>();\n            closingCodeNode = new Mock<IWebFormsCodeBlockNode>();\n            closingCodeNode.SetupGet(n => n.BlockType).Returns(CodeBlockNodeType.Closing);\n            outerTextNodeAfter = new Mock<IWebFormsTextNode>();\n            \n            nodeFactory = new WebFormsCodeGroupFactory();\n            filter = new CodeBlockGroupingFilter(nodeFactory);\n        }\n\n        [Fact]\n        public void Should_not_transform_noncode_block()\n        {\n            var textNode = new Mock<IWebFormsNode>();\n\n            filter.Filter(textNode.Object, null)[0].ShouldBeSameAs(textNode.Object);\n        }\n\n        [Fact]\n        public void Should_preserve_surrounding_noncode_blocks()\n        {\n            children.Add(outerTextNodeBefore.Object);\n            children.Add(openingCodeNode.Object);\n            children.Add(closingCodeNode.Object);\n            children.Add(outerTextNodeAfter.Object); \n\n            var filteredChildren = GetFilteredChildren();\n\n            filteredChildren[0].ShouldBeSameAs(outerTextNodeBefore.Object);\n            filteredChildren[2].ShouldBeSameAs(outerTextNodeAfter.Object);\n        }\n\n        [Fact]\n        public void Should_not_transform_complete_code_block()\n        {\n            var codeNode = new Mock<IWebFormsCodeBlockNode>();\n            codeNode.SetupGet(c => c.BlockType).Returns(CodeBlockNodeType.Complete);\n\n            filter.Filter(codeNode.Object, null)[0].ShouldBeSameAs(codeNode.Object);\n        }\n\n        [Fact]\n        public void Should_add_opening_code_block_to_group()\n        {\n            children.Add(openingCodeNode.Object);\n            children.Add(closingCodeNode.Object);\n\n            IList<IWebFormsNode> groupedNodes = GetGroupedNodes();\n\n            groupedNodes[0].ShouldBeSameAs(openingCodeNode.Object);\n        }\n\n        [Fact]\n        public void Should_add_inner_text_block_to_group()\n        {\n            children.Add(openingCodeNode.Object);\n            children.Add(innerTextNode.Object);\n            children.Add(closingCodeNode.Object);\n\n            IList<IWebFormsNode> groupedNodes = GetGroupedNodes();\n\n            groupedNodes[1].ShouldBeSameAs(innerTextNode.Object);\n        }\n\n        [Fact]\n        public void Should_add_continued_code_block_to_group()\n        {\n            children.Add(openingCodeNode.Object);\n            children.Add(contCodeNode.Object);\n            children.Add(closingCodeNode.Object);\n\n            IList<IWebFormsNode> groupedNodes = GetGroupedNodes();\n\n            groupedNodes[1].ShouldBeSameAs(contCodeNode.Object);\n        }\n\n        [Fact]\n        public void Should_add_closing_code_block_to_group()\n        {\n            children.Add(openingCodeNode.Object);\n            children.Add(closingCodeNode.Object);\n\n            IList<IWebFormsNode> groupedNodes = GetGroupedNodes();\n\n            groupedNodes[1].ShouldBeSameAs(closingCodeNode.Object);\n        }\n\n        [Fact]\n        public void Should_not_add_outer_text_block_to_group()\n        {\n            children.Add(outerTextNodeBefore.Object);\n            children.Add(openingCodeNode.Object);\n            children.Add(closingCodeNode.Object);\n            children.Add(outerTextNodeAfter.Object); \n\n            IList<IWebFormsNode> groupedNodes = GetGroupedNodes();\n\n            groupedNodes.Count.ShouldEqual(2);\n        }\n\n        [Fact]\n        public void Should_group_nested_code_block()\n        {\n            var nestedOpeningCodeNode = new Mock<IWebFormsCodeBlockNode>();\n            nestedOpeningCodeNode.SetupGet(n => n.BlockType).Returns(CodeBlockNodeType.Opening);\n            var nestedClosingCodeNode = new Mock<IWebFormsCodeBlockNode>();\n            nestedClosingCodeNode.SetupGet(n => n.BlockType).Returns(CodeBlockNodeType.Closing);\n\n            children.Add(openingCodeNode.Object);\n            children.Add(nestedOpeningCodeNode.Object);\n            children.Add(nestedClosingCodeNode.Object);\n            children.Add(closingCodeNode.Object);\n\n            IList<IWebFormsNode> groupedNodes = GetGroupedNodes();\n\n            (groupedNodes.Count).ShouldEqual(4);\n        }\n\n        private IList<IWebFormsNode> GetFilteredChildren()\n        {\n            var filterOutput = new List<IWebFormsNode>();\n            foreach (var childNode in children)\n            {\n                filterOutput.AddRange(filter.Filter(childNode, filterOutput.LastOrDefault()));\n            }\n\n            return filterOutput;\n        }\n\n        private IList<IWebFormsNode> GetGroupedNodes()\n        {\n            return GetFilteredChildren().First(n => n is IWebFormsCodeGroupNode).Children;\n        }\n    }\n}\n\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/WebForms/Filters/WrapNestedTemplatesFilterTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.WebForms.Filters\n{\n    using Moq;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Telerik.RazorConverter.WebForms.Filters;\n    using Xunit;\n\n    public class WrapNestedTemplatesFilterTests\n    {\n        private Mock<IWebFormsCodeGroupNode> codeGroupNodeMock;\n\n        private WrapNestedTemplatesFilter filter;\n\n        public WrapNestedTemplatesFilterTests()\n        {\n            codeGroupNodeMock = new Mock<IWebFormsCodeGroupNode>();\n            filter = new WrapNestedTemplatesFilter();\n        }\n\n        [Fact]\n        public void Should_not_transform_generic_block()\n        {\n            var textNode = new Mock<IWebFormsNode>();\n            \n            var filterResult = filter.Filter(textNode.Object, null);\n                        \n            filterResult[0].ShouldBeSameAs(textNode.Object);\n        }\n\n        [Fact]\n        public void Should_wrap_nested_template()\n        {\n            codeGroupNodeMock.SetupGet(g => g.Content)\n                .Returns(@\"ScriptRegistrar().OnDocumentReady(() => {----$$alert(1);----$$});\");\n\n            codeGroupNodeMock\n                .SetupSet(g => g.Content = It.IsAny<string>())\n                .Callback<string>(content => content.ShouldEqual(\"ScriptRegistrar().OnDocumentReady(@<text>----$$alert(1);----$$</text>);\"));\n\n            filter.Filter(codeGroupNodeMock.Object, null);\n\n            codeGroupNodeMock.Verify();\n        }\n    }\n}\n\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/WebForms/WebFormsParserFilteringTests.cs",
    "content": "﻿namespace Telerik.RazorConverter.Tests.WebForms\n{\n    using Moq;\n    using System.Collections.Generic;\n    using Telerik.RazorConverter.WebForms.DOM;\n    using Telerik.RazorConverter.WebForms.Filters;\n    using Telerik.RazorConverter.WebForms.Parsing;\n    using Xunit;\n    \n    public class WebFormsParserFilteringTests\n    {\n        private readonly Mock<IWebFormsNodeFilterProvider> filterProviderMock;\n        private readonly IList<IWebFormsNodeFilter> postprocessingFilters;\n        private readonly Mock<IWebFormsNodeFilter> filterMock;\n        private readonly WebFormsParser parser;\n\n        public WebFormsParserFilteringTests()\n        {\n            filterProviderMock = new Mock<IWebFormsNodeFilterProvider>();\n            postprocessingFilters = new List<IWebFormsNodeFilter>();\n            filterProviderMock.Setup(fp => fp.Filters).Returns(postprocessingFilters);\n            filterMock = new Mock<IWebFormsNodeFilter>();\n            postprocessingFilters.Add(filterMock.Object);\n            parser = new WebFormsParser(new WebFormsNodeFactory(), filterProviderMock.Object);\n        }\n\n        [Fact]\n        public void Should_executes_postprocessing_filters()\n        {\n            filterMock.Setup(f => f.Filter(It.IsAny<IWebFormsDirectiveNode>(), null))\n                .Returns<IWebFormsNode, IWebFormsNode>((node, prevNode) => new IWebFormsNode[] { node })\n                .Verifiable();\n\n            parser.Parse(@\"<%@ Page %>\");\n\n            filterMock.Verify();\n        }\n\n        [Fact]\n        public void Should_replace_nodes_with_filter_output()\n        {\n            var textNodeMock = new Mock<IWebFormsTextNode>();\n            textNodeMock.SetupGet(n => n.Text).Returns(\"Text\");\n            \n            filterMock.Setup(f => f.Filter(It.IsAny<IWebFormsDirectiveNode>(), null))\n                .Returns(new IWebFormsNode[] { textNodeMock.Object });\n\n            var document = parser.Parse(@\"<%@ Page %>\");\n\n            ((IWebFormsTextNode)document.RootNode.Children[0]).Text.ShouldEqual(\"Text\");\n            document.RootNode.Children.Count.ShouldEqual(1);\n        }\n\n        [Fact]\n        public void Should_apply_filters_recursively()\n        {\n            filterMock.Setup(f => f.Filter(It.IsAny<IWebFormsServerControlNode>(), null))\n                .Returns<IWebFormsNode, IWebFormsNode>((node, prevNode) => new IWebFormsNode[] { node })\n                .Verifiable();\n\n            filterMock.Setup(f => f.Filter(It.IsAny<IWebFormsTextNode>(), It.IsAny<IWebFormsServerControlNode>()))\n                .Returns<IWebFormsNode, IWebFormsNode>((node, prevNode) => new IWebFormsNode[] { node })\n                .Verifiable();\n\n            parser.Parse(@\"<asp:Content runat=\"\"server\"\">xxx</asp:Content>\");\n\n            filterMock.Verify();\n        }\n    }\n}\n\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests/WebForms/WebFormsParserTests.cs",
    "content": "﻿namespace RazorConverter.WebForms.Test\r\n{\r\n    using Moq;\r\n    using Telerik.RazorConverter.WebForms.DOM;\r\n    using Telerik.RazorConverter.WebForms.Filters;\r\n    using Telerik.RazorConverter.WebForms.Parsing;\r\n    using Xunit;\r\n    \r\n    public class WebFormsParserTests\r\n    {\r\n        private readonly Mock<IWebFormsNodeFilterProvider> filterProviderMock;\r\n        private readonly WebFormsParser parser;\r\n\r\n        public WebFormsParserTests()\r\n        {\r\n            filterProviderMock = new Mock<IWebFormsNodeFilterProvider>();\r\n            filterProviderMock.Setup(fp => fp.Filters).Returns(new IWebFormsNodeFilter[] { });\r\n            parser = new WebFormsParser(new WebFormsNodeFactory(), filterProviderMock.Object);\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_return_Document_node()\r\n        {\r\n            var document = parser.Parse(@\"<%@ Page %>\");\r\n            Assert.Equal(NodeType.Document, document.RootNode.Type);\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_recognize_page_as_directive()\r\n        {\r\n            var document = parser.Parse(@\"<%@ Page %>\");\r\n            Assert.Equal(NodeType.Directive, document.RootNode.Children[0].Type);\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_page_directive_type()\r\n        {\r\n            var document = parser.Parse(@\"<%@ Page %>\");\r\n            Assert.Equal(DirectiveType.Page, ((IWebFormsDirectiveNode)document.RootNode.Children[0]).Directive);\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_page_directive_attributes()\r\n        {\r\n            var document = parser.Parse(@\"<%@ Page Language=\"\"C#\"\" Inherits=\"\"System.Web.Mvc.ViewPage<IEnumerable<OrderDto>>\"\"%>\");\r\n            Assert.Equal(\"C#\", document.RootNode.Children[0].Attributes[\"Language\"]);\r\n            Assert.Equal(\"System.Web.Mvc.ViewPage<IEnumerable<OrderDto>>\", document.RootNode.Children[0].Attributes[\"Inherits\"]);\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_control_directive_type()\r\n        {\r\n            var document = parser.Parse(@\"<%@ Control %>\");\r\n            Assert.Equal(DirectiveType.Control, ((IWebFormsDirectiveNode)document.RootNode.Children[0]).Directive);\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_control_directive_attributes()\r\n        {\r\n            var document = parser.Parse(@\"<%@ Control Language=\"\"C#\"\" Inherits=\"\"System.Web.Mvc.ViewPage<IEnumerable<OrderDto>>\"\"%>\");\r\n            Assert.Equal(\"C#\", document.RootNode.Children[0].Attributes[\"Language\"]);\r\n            Assert.Equal(\"System.Web.Mvc.ViewPage<IEnumerable<OrderDto>>\", document.RootNode.Children[0].Attributes[\"Inherits\"]);\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_text_before_page_directive()\r\n        {\r\n            var document = parser.Parse(\"TEXT TEXT<%@ Page %>\");\r\n            ((IWebFormsTextNode)document.RootNode.Children[0]).Text.ShouldEqual(\"TEXT TEXT\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_comments()\r\n        {\r\n            var document = parser.Parse(\"TEXT TEXT<%-- COMMENT --%>TEXT TEXT\");\r\n            ((IWebFormsCommentNode)document.RootNode.Children[1]).Text.ShouldEqual(\" COMMENT \");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_comments_with_dashes()\r\n        {\r\n            var document = parser.Parse(\"TEXT TEXT<%-- COMM-ENT --%>TEXT TEXT\");\r\n            ((IWebFormsCommentNode)document.RootNode.Children[1]).Text.ShouldEqual(\" COMM-ENT \");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_server_control_tagName()\r\n        {\r\n            var document = parser.Parse(@\"<asp:Content runat=\"\"server\"\">xxx</asp:Content>\");\r\n            ((IWebFormsServerControlNode)document.RootNode.Children[0]).TagName.ShouldEqual(\"asp:Content\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_server_control_with_additional_attributes()\r\n        {\r\n            var document = parser.Parse(@\"<asp:Content contentplaceholderid=\"\"maincontent\"\" runat=\"\"server\"\">xxx</asp:Content>\");\r\n            ((IWebFormsServerControlNode)document.RootNode.Children[0]).TagName.ShouldEqual(\"asp:Content\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_server_control_attributes()\r\n        {\r\n            var document = parser.Parse(@\"<asp:Content contentplaceholderid=\"\"maincontent\"\" runat=\"\"server\"\">xxx</asp:Content>\");\r\n            ((IWebFormsServerControlNode)document.RootNode.Children[0]).Attributes[\"ContentPlaceHolderID\"].ShouldEqual(\"maincontent\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_children_of_server_control()\r\n        {\r\n            var document = parser.Parse(@\"<asp:Content runat=\"\"server\"\">INNER TEXT</asp:Content>\");\r\n            ((IWebFormsTextNode)document.RootNode.Children[0].Children[0]).Text.ShouldEqual(\"INNER TEXT\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_treat_HTML_tags_nested_in_server_control_as_text()\r\n        {\r\n            var document = parser.Parse(@\"<asp:Content runat=\"\"server\"\"><span>INNER TEXT</span></asp:Content>\");\r\n            ((IWebFormsTextNode)document.RootNode.Children[0].Children[0]).Text.ShouldEqual(\"<span>INNER TEXT</span>\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_multiple_server_control_tags()\r\n        {\r\n            var document = parser.Parse(@\"<asp:Content runat=\"\"server\"\"><span>INNER TEXT 1</span></asp:Content><asp:Content runat=\"\"server\"\"><span>INNER TEXT 2</span></asp:Content>\");\r\n            (document.RootNode.Children[0] is IWebFormsServerControlNode).ShouldBeTrue();\r\n            (document.RootNode.Children[1] is IWebFormsServerControlNode).ShouldBeTrue();\r\n            ((IWebFormsTextNode)document.RootNode.Children[0].Children[0]).Text.ShouldEqual(\"<span>INNER TEXT 1</span>\");\r\n            ((IWebFormsTextNode)document.RootNode.Children[1].Children[0]).Text.ShouldEqual(\"<span>INNER TEXT 2</span>\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_text_after_server_control()\r\n        {\r\n            var document = parser.Parse(@\"<asp:Content runat=\"\"server\"\">INNER TEXT</asp:Content>TEXT AFTER SERVER CONTROL\");\r\n            ((IWebFormsTextNode)document.RootNode.Children[1]).Text.ShouldEqual(\"TEXT AFTER SERVER CONTROL\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_treat_HTML_tags_as_text()\r\n        {\r\n            var document = parser.Parse(@\"<div>INNER TEXT</div>\");\r\n            ((IWebFormsTextNode)document.RootNode.Children[0]).Text.ShouldEqual(\"<div>INNER TEXT</div>\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_expression_blocks()\r\n        {\r\n            var document = parser.Parse(@\"<%= Html.Telerik().Grid(Model).Name(\"\"Grid\"\") %>\");\r\n            ((IWebFormsExpressionBlockNode)document.RootNode.Children[0]).Expression.ShouldEqual(@\" Html.Telerik().Grid(Model).Name(\"\"Grid\"\") \");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_expression_blocks_within_tags()\r\n        {\r\n            var document = parser.Parse(@\"<link href=\"\"<%= ResolveUrl(\"\"~/favicon.ico\"\") %>\"\" type=\"\"image/x-icon\"\" rel=\"\"icon\"\" />\");\r\n            ((IWebFormsExpressionBlockNode)document.RootNode.Children[1])\r\n                .Expression.Trim().ShouldEqual(@\"ResolveUrl(\"\"~/favicon.ico\"\")\");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_encoded_expressions_as_expression_blocks()\r\n        {\r\n            var document = parser.Parse(@\"<%: Html.Telerik().Grid(Model).Name(\"\"Grid\"\") %>\");\r\n            ((IWebFormsExpressionBlockNode)document.RootNode.Children[0]).Expression.ShouldEqual(@\" Html.Telerik().Grid(Model).Name(\"\"Grid\"\") \");\r\n        }\r\n\r\n        [Fact]\r\n        public void Parse_should_parse_code_blocks()\r\n        {\r\n            var document = parser.Parse(@\"<% Html.Telerik().Grid(Model).Name(\"\"Grid\"\").Render(); %>\");\r\n            ((IWebFormsCodeBlockNode)document.RootNode.Children[0]).Code.ShouldEqual(@\" Html.Telerik().Grid(Model).Name(\"\"Grid\"\").Render(); \");\r\n        }\r\n\r\n        [Fact]\r\n        public void Should_mark_code_block_as_opening_when_ending_with_open_block()\r\n        {\r\n            var document = parser.Parse(@\"<% if (true) { %>\");\r\n            ((IWebFormsCodeBlockNode)document.RootNode.Children[0]).BlockType.ShouldEqual(CodeBlockNodeType.Opening);\r\n        }\r\n\r\n        [Fact]\r\n        public void Should_mark_code_block_as_continued_when_closing_previous_block_and_opening_new_one()\r\n        {\r\n            var document = parser.Parse(@\"<% } else { %>\");\r\n            ((IWebFormsCodeBlockNode)document.RootNode.Children[0]).BlockType.ShouldEqual(CodeBlockNodeType.Continued);\r\n        }\r\n\r\n        [Fact]\r\n        public void Should_mark_code_block_as_closing_when_closing_previous_block()\r\n        {\r\n            var document = parser.Parse(@\"<% } %>\");\r\n            ((IWebFormsCodeBlockNode)document.RootNode.Children[0]).BlockType.ShouldEqual(CodeBlockNodeType.Closing);\r\n        }\r\n\r\n        [Fact]\r\n        public void Should_mark_code_block_as_complete_when_all_blocks_are_closed()\r\n        {\r\n            var document = parser.Parse(@\"<% Html.Telerik().Grid(Model).Name(\"\"Grid\"\").Render(); %>\");\r\n            ((IWebFormsCodeBlockNode)document.RootNode.Children[0]).BlockType.ShouldEqual(CodeBlockNodeType.Complete);\r\n        }\r\n\r\n        [Fact]\r\n        public void Should_not_parse_script_content()\r\n        {\r\n            var script = @\"<script type=\"\"text/javascript\"\">alert('</a><img');</script>\";\r\n            var document = parser.Parse(@\"<asp:Content runat=\"\"server\"\">\" + script + @\"</asp:Content>\");\r\n            ((IWebFormsTextNode)document.RootNode.Children[0].Children[0]).Text.ShouldEqual(script);\r\n        }\r\n\r\n        [Fact]\r\n        public void Should_treat_doctype_as_text()\r\n        {\r\n            var docType = @\"<!DOCTYPE html PUBLIC   \"\"-//W3C//DTD XHTML 1.0 Strict//EN\"\"\r\n                                                    \"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"\">\";\r\n            var document = parser.Parse(docType);\r\n            ((IWebFormsTextNode)document.RootNode.Children[0]).Text.ShouldEqual(docType);\r\n        }\r\n\r\n\t\t[Fact]\r\n\t\tpublic void Parse_should_treat_adjacent_elements_as_siblings()\r\n\t\t{\r\n\t\t\tvar document = parser.Parse(@\"<asp:Label runat=\"\"server\"\" id=\"\"label1\"\"></asp:Label><asp:Label runat=\"\"server\"\" id=\"\"label2\"\"></asp:Label>\");\r\n\t\t\t(document.RootNode.Children[0] is IWebFormsServerControlNode).ShouldBeTrue();\r\n\t\t\t(document.RootNode.Children[1] is IWebFormsServerControlNode).ShouldBeTrue();\r\n\t\t\t((IWebFormsServerControlNode)document.RootNode.Children[0]).Attributes[\"id\"].ShouldEqual(\"label1\");\r\n\t\t\t((IWebFormsServerControlNode)document.RootNode.Children[1]).Attributes[\"id\"].ShouldEqual(\"label2\");\r\n\t\t}\r\n\r\n\t\t[Fact]\r\n\t\tpublic void Parse_should_treat_adjacent_elements_withshortcut_closing_as_siblings()\r\n\t\t{\r\n\t\t\tvar document = parser.Parse(@\"<asp:Label runat=\"\"server\"\" id=\"\"label1\"\"/><asp:Label runat=\"\"server\"\" id=\"\"label2\"\"/>\");\r\n\t\t\t(document.RootNode.Children[0] is IWebFormsServerControlNode).ShouldBeTrue();\r\n\t\t\t(document.RootNode.Children[1] is IWebFormsServerControlNode).ShouldBeTrue();\r\n\t\t\t((IWebFormsServerControlNode)document.RootNode.Children[0]).Attributes[\"id\"].ShouldEqual(\"label1\");\r\n\t\t\t((IWebFormsServerControlNode)document.RootNode.Children[1]).Attributes[\"id\"].ShouldEqual(\"label2\");\r\n\t\t}\r\n\r\n        [Fact]\r\n        public void Should_parse_javascript_nested_expressions()\r\n        {\r\n            var script = \"<script type=\\\"javascript\\\">var url = '<%= Url.Action(\\\"Test\\\", \\\"Controller\\\", null)%>';</script>\";\r\n            var document = parser.Parse(script);\r\n            document.RootNode.Children.Count.ShouldEqual(3);\r\n            ((IWebFormsTextNode)document.RootNode.Children[0]).Text.ShouldEqual(\"<script type=\\\"javascript\\\">var url = '\");\r\n            ((IWebFormsExpressionBlockNode)document.RootNode.Children[1]).Expression.ShouldEqual(\" Url.Action(\\\"Test\\\", \\\"Controller\\\", null)\");\r\n            ((IWebFormsTextNode)document.RootNode.Children[2]).Text.ShouldEqual(\"';</script>\");\r\n        }\r\n    }\r\n}\r\n\r\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Common/Properties/AssemblyInfo.cs",
    "content": "﻿using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Information about an assembly is controlled through the following \n// set of attributes. Change these attribute values to modify the information\n// associated with an assembly.\n[assembly: AssemblyTitle(\"RazorConverter.Tests.Common\")]\n[assembly: AssemblyDescription(\"\")]\n[assembly: AssemblyConfiguration(\"\")]\n[assembly: AssemblyCompany(\"Microsoft\")]\n[assembly: AssemblyProduct(\"RazorConverter.Tests.Common\")]\n[assembly: AssemblyCopyright(\"Copyright © Microsoft 2010\")]\n[assembly: AssemblyTrademark(\"\")]\n[assembly: AssemblyCulture(\"\")]\n\n// Setting ComVisible to false makes the types in this assembly not visible \n// to COM components.  If you need to access a type in this assembly from \n// COM, set the ComVisible attribute to true on that type.\n[assembly: ComVisible(false)]\n\n// The following GUID is for the ID of the typelib if this project is exposed to COM\n[assembly: Guid(\"23c3cb3b-1b86-4fb5-9d0e-fc9cbef054e4\")]\n\n// Version information for an assembly consists of the following four values:\n//\n//      Major Version\n//      Minor Version \n//      Build Number\n//      Revision\n//\n// You can specify all the values or you can default the Build and Revision Numbers \n// by using the '*' as shown below:\n// [assembly: AssemblyVersion(\"1.0.*\")]\n[assembly: AssemblyVersion(\"1.0.0.0\")]\n[assembly: AssemblyFileVersion(\"1.0.0.0\")]\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Common/Telerik.RazorConverter.Tests.Common.csproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <PropertyGroup>\n    <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>\n    <Platform Condition=\" '$(Platform)' == '' \">AnyCPU</Platform>\n    <ProductVersion>8.0.30703</ProductVersion>\n    <SchemaVersion>2.0</SchemaVersion>\n    <ProjectGuid>{B30D861F-7D12-436A-BC5A-930D48291037}</ProjectGuid>\n    <OutputType>Library</OutputType>\n    <AppDesignerFolder>Properties</AppDesignerFolder>\n    <RootNamespace>RazorConverter.Tests.Common</RootNamespace>\n    <AssemblyName>RazorConverter.Tests.Common</AssemblyName>\n    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>\n    <FileAlignment>512</FileAlignment>\n    <SccProjectName>\n    </SccProjectName>\n    <SccLocalPath>\n    </SccLocalPath>\n    <SccAuxPath>\n    </SccAuxPath>\n    <SccProvider>\n    </SccProvider>\n  </PropertyGroup>\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' \">\n    <DebugSymbols>true</DebugSymbols>\n    <DebugType>full</DebugType>\n    <Optimize>false</Optimize>\n    <OutputPath>bin\\Debug\\</OutputPath>\n    <DefineConstants>DEBUG;TRACE</DefineConstants>\n    <ErrorReport>prompt</ErrorReport>\n    <WarningLevel>4</WarningLevel>\n  </PropertyGroup>\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' \">\n    <DebugType>pdbonly</DebugType>\n    <Optimize>true</Optimize>\n    <OutputPath>bin\\Release\\</OutputPath>\n    <DefineConstants>TRACE</DefineConstants>\n    <ErrorReport>prompt</ErrorReport>\n    <WarningLevel>4</WarningLevel>\n  </PropertyGroup>\n  <ItemGroup>\n    <Reference Include=\"System\" />\n    <Reference Include=\"System.Core\" />\n    <Reference Include=\"System.Xml.Linq\" />\n    <Reference Include=\"System.Data.DataSetExtensions\" />\n    <Reference Include=\"Microsoft.CSharp\" />\n    <Reference Include=\"System.Data\" />\n    <Reference Include=\"System.Xml\" />\n    <Reference Include=\"xunit\">\n      <HintPath>..\\References\\xunit.dll</HintPath>\n    </Reference>\n  </ItemGroup>\n  <ItemGroup>\n    <Compile Include=\"Properties\\AssemblyInfo.cs\" />\n    <Compile Include=\"XunitExtensions\\BooleanAssertionExtensions.cs\" />\n    <Compile Include=\"XunitExtensions\\CollectionAssertionExtensions.cs\" />\n    <Compile Include=\"XunitExtensions\\ObjectAssertExtensions.cs\" />\n    <Compile Include=\"XunitExtensions\\StringAssertionExtensions.cs\" />\n  </ItemGroup>\n  <Import Project=\"$(MSBuildToolsPath)\\Microsoft.CSharp.targets\" />\n  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \n       Other similar extension points exist, see Microsoft.Common.targets.\n  <Target Name=\"BeforeBuild\">\n  </Target>\n  <Target Name=\"AfterBuild\">\n  </Target>\n  -->\n</Project>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Common/XunitExtensions/BooleanAssertionExtensions.cs",
    "content": "﻿namespace Xunit\n{\n    /// <summary>\n    /// Extensions which provide assertions to classes derived from <see cref=\"bool\"/>.\n    /// </summary>\n    public static class BooleanAssertionExtensions\n    {\n        /// <summary>\n        /// Verifies that the condition is false.\n        /// </summary>\n        /// <param name=\"condition\">The condition to be tested</param>\n        public static void ShouldBeFalse(this bool condition)\n        {\n            Assert.False(condition);\n        }\n\n        /// <summary>\n        /// Verifies that the condition is false.\n        /// </summary>\n        /// <param name=\"condition\">The condition to be tested</param>\n        /// <param name=\"userMessage\">The message to show when the condition is not false</param>\n        public static void ShouldBeFalse(this bool condition,\n                                         string userMessage)\n        {\n            Assert.False(condition, userMessage);\n        }\n\n        /// <summary>\n        /// Verifies that an expression is true.\n        /// </summary>\n        /// <param name=\"condition\">The condition to be inspected</param>\n        public static void ShouldBeTrue(this bool condition)\n        {\n            Assert.True(condition);\n        }\n\n        /// <summary>\n        /// Verifies that an expression is true.\n        /// </summary>\n        /// <param name=\"condition\">The condition to be inspected</param>\n        /// <param name=\"userMessage\">The message to be shown when the condition is false</param>\n        public static void ShouldBeTrue(this bool condition,\n                                        string userMessage)\n        {\n            Assert.True(condition, userMessage);\n        }\n    }\n}"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Common/XunitExtensions/CollectionAssertionExtensions.cs",
    "content": "﻿namespace Xunit\n{\n    using System.Collections;\n    using System.Collections.Generic;\n\n    /// <summary>\n    /// Extensions which provide assertions to classes derived from <see cref=\"IEnumerable\"/> and <see cref=\"IEnumerable&lt;T&gt;\"/>.\n    /// </summary>\n    public static class CollectionAssertExtensions\n    {\n        /// <summary>\n        /// Verifies that a collection is empty.\n        /// </summary>\n        /// <param name=\"collection\">The collection to be inspected</param>\n        /// <exception cref=\"ArgumentNullException\">Thrown when the collection is null</exception>\n        public static void ShouldBeEmpty(this IEnumerable collection)\n        {\n            Assert.Empty(collection);\n        }\n\n        /// <summary>\n        /// Verifies that a collection contains a given object.\n        /// </summary>\n        /// <typeparam name=\"T\">The type of the object to be verified</typeparam>\n        /// <param name=\"collection\">The collection to be inspected</param>\n        /// <param name=\"expected\">The object expected to be in the collection</param>\n        public static void ShouldContain<T>(this IEnumerable<T> collection,\n                                            T expected)\n        {\n            Assert.Contains(expected, collection);\n        }\n\n        /// <summary>\n        /// Verifies that a collection contains a given object, using a comparer.\n        /// </summary>\n        /// <typeparam name=\"T\">The type of the object to be verified</typeparam>\n        /// <param name=\"collection\">The collection to be inspected</param>\n        /// <param name=\"expected\">The object expected to be in the collection</param>\n        /// <param name=\"comparer\">The comparer used to equate objects in the collection with the expected object</param>\n        public static void ShouldContain<T>(this IEnumerable<T> collection,\n                                            T expected,\n                                            IEqualityComparer<T> comparer)\n        {\n            Assert.Contains(expected, collection, comparer);\n        }\n\n        /// <summary>\n        /// Verifies that a collection is not empty.\n        /// </summary>\n        /// <param name=\"collection\">The collection to be inspected</param>\n        /// <exception cref=\"ArgumentNullException\">Thrown when a null collection is passed</exception>\n        public static void ShouldNotBeEmpty(this IEnumerable collection)\n        {\n            Assert.NotEmpty(collection);\n        }\n\n        /// <summary>\n        /// Verifies that a collection does not contain a given object.\n        /// </summary>\n        /// <typeparam name=\"T\">The type of the object to be compared</typeparam>\n        /// <param name=\"expected\">The object that is expected not to be in the collection</param>\n        /// <param name=\"collection\">The collection to be inspected</param>\n        public static void ShouldNotContain<T>(this IEnumerable<T> collection,\n                                               T expected)\n        {\n            Assert.DoesNotContain(expected, collection);\n        }\n\n        /// <summary>\n        /// Verifies that a collection does not contain a given object, using a comparer.\n        /// </summary>\n        /// <typeparam name=\"T\">The type of the object to be compared</typeparam>\n        /// <param name=\"expected\">The object that is expected not to be in the collection</param>\n        /// <param name=\"collection\">The collection to be inspected</param>\n        /// <param name=\"comparer\">The comparer used to equate objects in the collection with the expected object</param>\n        public static void ShouldNotContain<T>(this IEnumerable<T> collection,\n                                               T expected,\n                                               IEqualityComparer<T> comparer)\n        {\n            Assert.DoesNotContain(expected, collection, comparer);\n        }\n    }\n}"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Common/XunitExtensions/ObjectAssertExtensions.cs",
    "content": "﻿namespace Xunit\n{\n    using System;\n    using System.Collections.Generic;\n\n    /// <summary>\n    /// Extensions which provide assertions to classes derived from <see cref=\"object\"/>.\n    /// </summary>\n    public static class ObjectAssertExtensions\n    {\n        /// <summary>\n        /// Verifies that a value is within a given range, using a comparer.\n        /// </summary>\n        /// <typeparam name=\"T\">The type of the value to be compared</typeparam>\n        /// <param name=\"actual\">The actual value to be evaluated</param>\n        /// <param name=\"low\">The (inclusive) low value of the range</param>\n        /// <param name=\"high\">The (inclusive) high value of the range</param>\n        /// <param name=\"comparer\">The comparer used to evaluate the value's range</param>\n        /// <exception cref=\"InRangeException\">Thrown when the value is not in the given range</exception>\n        public static void ShouldBeInRange<T>(this T actual,\n                                              T low,\n                                              T high,\n                                              IComparer<T> comparer)\n        {\n            Assert.InRange(actual, low, high, comparer);\n        }\n\n        /// <summary>\n        /// Verifies that an object reference is null.\n        /// </summary>\n        /// <param name=\"object\">The object to be inspected</param>\n        /// <exception cref=\"NullException\">Thrown when the object reference is not null</exception>\n        public static void ShouldBeNull(this object @object)\n        {\n            Assert.Null(@object);\n        }\n\n        /// <summary>\n        /// Verifies that two objects are the same instance.\n        /// </summary>\n        /// <param name=\"actual\">The actual object instance</param>\n        /// <param name=\"expected\">The expected object instance</param>\n        /// <exception cref=\"SameException\">Thrown when the objects are not the same instance</exception>\n        public static void ShouldBeSameAs(this object actual,\n                                          object expected)\n        {\n            Assert.Same(expected, actual);\n        }\n\n        /// <summary>\n        /// Verifies that an object is exactly the given type (and not a derived type).\n        /// </summary>\n        /// <typeparam name=\"T\">The type the object should be</typeparam>\n        /// <param name=\"object\">The object to be evaluated</param>\n        /// <returns>The object, casted to type T when successful</returns>\n        /// <exception cref=\"IsTypeException\">Thrown when the object is not the given type</exception>\n        public static T ShouldBeType<T>(this object @object)\n        {\n            return Assert.IsType<T>(@object);\n        }\n\n        /// <summary>\n        /// Verifies that an object is exactly the given type (and not a derived type).\n        /// </summary>\n        /// <param name=\"object\">The object to be evaluated</param>\n        /// <param name=\"expectedType\">The type the object should be</param>\n        /// <exception cref=\"IsTypeException\">Thrown when the object is not the given type</exception>\n        public static void ShouldBeType(this object @object,\n                                        Type expectedType)\n        {\n            Assert.IsType(expectedType, @object);\n        }\n\n        /// <summary>\n        /// Verifies that two objects are equal, using a default comparer.\n        /// </summary>\n        /// <typeparam name=\"T\">The type of the objects to be compared</typeparam>\n        /// <param name=\"actual\">The value to be compared against</param>\n        /// <param name=\"expected\">The expected value</param>\n        /// <exception cref=\"EqualException\">Thrown when the objects are not equal</exception>\n        public static void ShouldEqual<T>(this T actual,\n                                          T expected)\n        {\n            Assert.Equal(expected, actual);\n        }\n\n        /// <summary>\n        /// Verifies that two objects are equal, using a custom comparer.\n        /// </summary>\n        /// <typeparam name=\"T\">The type of the objects to be compared</typeparam>\n        /// <param name=\"actual\">The value to be compared against</param>\n        /// <param name=\"expected\">The expected value</param>\n        /// <param name=\"comparer\">The comparer used to compare the two objects</param>\n        /// <exception cref=\"EqualException\">Thrown when the objects are not equal</exception>\n        public static void ShouldEqual<T>(this T actual,\n                                          T expected,\n                                          IEqualityComparer<T> comparer)\n        {\n            Assert.Equal(expected, actual, comparer);\n        }        \n\n        /// <summary>\n        /// Verifies that a value is not within a given range, using a comparer.\n        /// </summary>\n        /// <typeparam name=\"T\">The type of the value to be compared</typeparam>\n        /// <param name=\"actual\">The actual value to be evaluated</param>\n        /// <param name=\"low\">The (inclusive) low value of the range</param>\n        /// <param name=\"high\">The (inclusive) high value of the range</param>\n        /// <param name=\"comparer\">The comparer used to evaluate the value's range</param>\n        /// <exception cref=\"NotInRangeException\">Thrown when the value is in the given range</exception>\n        public static void ShouldNotBeInRange<T>(this T actual,\n                                                 T low,\n                                                 T high,\n                                                 IComparer<T> comparer)\n        {\n            Assert.NotInRange(actual, low, high, comparer);\n        }\n\n        /// <summary>\n        /// Verifies that an object reference is not null.\n        /// </summary>\n        /// <param name=\"object\">The object to be validated</param>\n        /// <exception cref=\"NotNullException\">Thrown when the object is not null</exception>\n        public static void ShouldNotBeNull(this object @object)\n        {\n            Assert.NotNull(@object);\n        }\n\n        /// <summary>\n        /// Verifies that two objects are not the same instance.\n        /// </summary>\n        /// <param name=\"actual\">The actual object instance</param>\n        /// <param name=\"expected\">The expected object instance</param>\n        /// <exception cref=\"NotSameException\">Thrown when the objects are the same instance</exception>\n        public static void ShouldNotBeSameAs(this object actual,\n                                             object expected)\n        {\n            Assert.NotSame(expected, actual);\n        }\n\n        /// <summary>\n        /// Verifies that an object is not exactly the given type.\n        /// </summary>\n        /// <typeparam name=\"T\">The type the object should not be</typeparam>\n        /// <param name=\"object\">The object to be evaluated</param>\n        /// <exception cref=\"IsTypeException\">Thrown when the object is the given type</exception>\n        public static void ShouldNotBeType<T>(this object @object)\n        {\n            Assert.IsNotType<T>(@object);\n        }\n\n        /// <summary>\n        /// Verifies that an object is not exactly the given type.\n        /// </summary>\n        /// <param name=\"object\">The object to be evaluated</param>\n        /// <param name=\"expectedType\">The type the object should not be</param>\n        /// <exception cref=\"IsTypeException\">Thrown when the object is the given type</exception>\n        public static void ShouldNotBeType(this object @object,\n                                           Type expectedType)\n        {\n            Assert.IsNotType(expectedType, @object);\n        }\n\n        /// <summary>\n        /// Verifies that two objects are not equal, using a default comparer.\n        /// </summary>\n        /// <typeparam name=\"T\">The type of the objects to be compared</typeparam>\n        /// <param name=\"actual\">The actual object</param>\n        /// <param name=\"expected\">The expected object</param>\n        /// <exception cref=\"NotEqualException\">Thrown when the objects are equal</exception>\n        public static void ShouldNotEqual<T>(this T actual,\n                                             T expected)\n        {\n            Assert.NotEqual(expected, actual);\n        }\n\n        /// <summary>\n        /// Verifies that two objects are not equal, using a custom comparer.\n        /// </summary>\n        /// <typeparam name=\"T\">The type of the objects to be compared</typeparam>\n        /// <param name=\"actual\">The actual object</param>\n        /// <param name=\"expected\">The expected object</param>\n        /// <param name=\"comparer\">The comparer used to examine the objects</param>\n        /// <exception cref=\"NotEqualException\">Thrown when the objects are equal</exception>\n        public static void ShouldNotEqual<T>(this T actual,\n                                             T expected,\n                                             IEqualityComparer<T> comparer)\n        {\n            Assert.NotEqual(expected, actual, comparer);\n        }\n    }\n}"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Common/XunitExtensions/StringAssertionExtensions.cs",
    "content": "﻿namespace Xunit\n{\n    using System;\n\n    /// <summary>\n    /// Extensions which provide assertions to classes derived from <see cref=\"String\"/>.\n    /// </summary>\n    public static class StringAssertionExtensions\n    {\n        /// <summary>\n        /// Verifies that a string contains a given sub-string, using the current culture.\n        /// </summary>\n        /// <param name=\"actualString\">The string to be inspected</param>\n        /// <param name=\"expectedSubString\">The sub-string expected to be in the string</param>\n        public static void ShouldContain(this string actualString,\n                                         string expectedSubString)\n        {\n            Assert.Contains(expectedSubString, actualString);\n        }\n\n        /// <summary>\n        /// Verifies that a string contains a given sub-string, using the given comparison type.\n        /// </summary>\n        /// <param name=\"actualString\">The string to be inspected</param>\n        /// <param name=\"expectedSubString\">The sub-string expected to be in the string</param>\n        /// <param name=\"comparisonType\">The type of string comparison to perform</param>\n        public static void ShouldContain(this string actualString,\n                                         string expectedSubString,\n                                         StringComparison comparisonType)\n        {\n            Assert.Contains(expectedSubString, actualString, comparisonType);\n        }\n\n        /// <summary>\n        /// Verifies that a string does not contain a given sub-string, using the current culture.\n        /// </summary>\n        /// <param name=\"actualString\">The string to be inspected</param>\n        /// <param name=\"expectedSubString\">The sub-string which is expected not to be in the string</param>\n        public static void ShouldNotContain(this string actualString,\n                                            string expectedSubString)\n        {\n            Assert.DoesNotContain(expectedSubString, actualString);\n        }\n\n        /// <summary>\n        /// Verifies that a string does not contain a given sub-string, using the current culture.\n        /// </summary>\n        /// <param name=\"actualString\">The string to be inspected</param>\n        /// <param name=\"expectedSubString\">The sub-string which is expected not to be in the string</param>\n        /// <param name=\"comparisonType\">The type of string comparison to perform</param>\n        public static void ShouldNotContain(this string actualString,\n                                            string expectedSubString,\n                                            StringComparison comparisonType)\n        {\n            Assert.DoesNotContain(expectedSubString, actualString, comparisonType);\n        }\n    }\n}"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/IntegrationTests.cs",
    "content": "﻿namespace RazorConverter.Core.Tests\n{\n    using System;\n    using System.Collections.Generic;\n    using System.ComponentModel.Composition;\n    using System.ComponentModel.Composition.Hosting;\n    using System.IO;\n    using System.Linq;\n    using Telerik.RazorConverter;\n    using Telerik.RazorConverter.Razor.DOM;\n    using Xunit;\n    using Xunit.Extensions;\n\n    public class IntegrationTests\n    {\n        [Import]\n        private IWebFormsParser Parser\n        {\n            get;\n            set;\n        }\n\n        [Import]\n        private IWebFormsConverter<IRazorNode> Converter\n        {\n            get;\n            set;\n        }\n\n        [Import]\n        private IRenderer<IRazorNode> Renderer\n        {\n            get;\n            set;\n        }\n\n        public IntegrationTests()\n        {\n            var catalog = new AssemblyCatalog(typeof(IWebFormsParser).Assembly);\n            var container = new CompositionContainer(catalog);\n            container.ComposeParts(this);\n        }\n\n        public static IEnumerable<object[]> TestFiles\n        {\n            get\n            {\n                var testCasesFolder = new DirectoryInfo(\"..\\\\..\\\\TestCases\");\n                foreach (var inputFile in testCasesFolder.EnumerateFiles(\"*.aspx.txt\"))\n                {\n                    var referenceFileName = inputFile.FullName.Replace(\".aspx.txt\", \".cshtml\");\n                    yield return new object[] {\n                        inputFile.Name,\n                        File.ReadAllText(inputFile.FullName),\n                        File.ReadAllText(referenceFileName)\n                    };\n                }\n            }\n        }\n\n        [Theory]\n        [PropertyData(\"TestFiles\")]\n        public void Should_produce_expected_result(string caseName, string inputFile, string expectedResult)\n        {\n            var webFormsDocument = Parser.Parse(inputFile);\n            var razorDom = Converter.Convert(webFormsDocument);\n            var actualResult = Renderer.Render(razorDom);\n\n            // Compare only non-empty lines\n            var actualLines = GetNonEmptyLines(actualResult);\n            var referenceLines = GetNonEmptyLines(expectedResult);\n            for (int lineNum = 0; lineNum < actualLines.Count; lineNum++)\n            {\n                (lineNum > referenceLines.Count - 1)\n                    .ShouldBeFalse(\"Reference output is shorter than actual output\");\n\n                string annotatedFormatString = \"line #{0}:{1}\";\n                var annotatedActualLine = string.Format(annotatedFormatString, lineNum, actualLines[lineNum].Trim());\n                var annotatedReferenceLine = string.Format(annotatedFormatString, lineNum, referenceLines[lineNum].Trim());\n\n                annotatedActualLine.ShouldEqual(annotatedReferenceLine);                    \n            }\n\n            // Length verification done last in order to show line by line comparision first\n            actualLines.Count.ShouldEqual(referenceLines.Count);\n        }\n\n        private static IList<string> GetNonEmptyLines(string input)\n        {\n            return input.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)\n                        .Where(l => !string.IsNullOrWhiteSpace(l))\n                        .ToList();\n        }\n    }\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/Properties/AssemblyInfo.cs",
    "content": "﻿using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Information about an assembly is controlled through the following \n// set of attributes. Change these attribute values to modify the information\n// associated with an assembly.\n[assembly: AssemblyTitle(\"RazorConverter.IntegrationTests\")]\n[assembly: AssemblyDescription(\"\")]\n[assembly: AssemblyConfiguration(\"\")]\n[assembly: AssemblyCompany(\"Microsoft\")]\n[assembly: AssemblyProduct(\"RazorConverter.IntegrationTests\")]\n[assembly: AssemblyCopyright(\"Copyright © Microsoft 2010\")]\n[assembly: AssemblyTrademark(\"\")]\n[assembly: AssemblyCulture(\"\")]\n\n// Setting ComVisible to false makes the types in this assembly not visible \n// to COM components.  If you need to access a type in this assembly from \n// COM, set the ComVisible attribute to true on that type.\n[assembly: ComVisible(false)]\n\n// The following GUID is for the ID of the typelib if this project is exposed to COM\n[assembly: Guid(\"c90645fe-3901-4c8a-ae61-650ea5ddca41\")]\n\n// Version information for an assembly consists of the following four values:\n//\n//      Major Version\n//      Minor Version \n//      Build Number\n//      Revision\n//\n// You can specify all the values or you can default the Build and Revision Numbers \n// by using the '*' as shown below:\n// [assembly: AssemblyVersion(\"1.0.*\")]\n[assembly: AssemblyVersion(\"1.0.0.0\")]\n[assembly: AssemblyFileVersion(\"1.0.0.0\")]\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/Telerik.RazorConverter.Tests.Integration.csproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <PropertyGroup>\r\n    <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>\r\n    <Platform Condition=\" '$(Platform)' == '' \">AnyCPU</Platform>\r\n    <ProductVersion>8.0.30703</ProductVersion>\r\n    <SchemaVersion>2.0</SchemaVersion>\r\n    <ProjectGuid>{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}</ProjectGuid>\r\n    <OutputType>Library</OutputType>\r\n    <AppDesignerFolder>Properties</AppDesignerFolder>\r\n    <RootNamespace>RazorConverter.IntegrationTests</RootNamespace>\r\n    <AssemblyName>RazorConverter.IntegrationTests</AssemblyName>\r\n    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>\r\n    <FileAlignment>512</FileAlignment>\r\n    <SccProjectName>\r\n    </SccProjectName>\r\n    <SccLocalPath>\r\n    </SccLocalPath>\r\n    <SccAuxPath>\r\n    </SccAuxPath>\r\n    <SccProvider>\r\n    </SccProvider>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' \">\r\n    <DebugSymbols>true</DebugSymbols>\r\n    <DebugType>full</DebugType>\r\n    <Optimize>false</Optimize>\r\n    <OutputPath>bin\\Debug\\</OutputPath>\r\n    <DefineConstants>DEBUG;TRACE</DefineConstants>\r\n    <ErrorReport>prompt</ErrorReport>\r\n    <WarningLevel>4</WarningLevel>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' \">\r\n    <DebugType>pdbonly</DebugType>\r\n    <Optimize>true</Optimize>\r\n    <OutputPath>bin\\Release\\</OutputPath>\r\n    <DefineConstants>TRACE</DefineConstants>\r\n    <ErrorReport>prompt</ErrorReport>\r\n    <WarningLevel>4</WarningLevel>\r\n  </PropertyGroup>\r\n  <ItemGroup>\r\n    <Reference Include=\"System\" />\r\n    <Reference Include=\"System.ComponentModel.Composition\" />\r\n    <Reference Include=\"System.Core\" />\r\n    <Reference Include=\"System.Xml.Linq\" />\r\n    <Reference Include=\"System.Data.DataSetExtensions\" />\r\n    <Reference Include=\"Microsoft.CSharp\" />\r\n    <Reference Include=\"System.Data\" />\r\n    <Reference Include=\"System.Xml\" />\r\n    <Reference Include=\"xunit\">\r\n      <HintPath>..\\References\\xunit.dll</HintPath>\r\n    </Reference>\r\n    <Reference Include=\"xunit.extensions\">\r\n      <HintPath>..\\References\\xunit.extensions.dll</HintPath>\r\n    </Reference>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Compile Include=\"IntegrationTests.cs\" />\r\n    <Compile Include=\"Properties\\AssemblyInfo.cs\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <Content Include=\"TestCases\\TestCase26.aspx.txt\" />\r\n    <Content Include=\"TestCases\\TestCase24.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <Content Include=\"TestCases\\TestCase23.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <Content Include=\"TestCases\\TestCase25.aspx.txt\" />\r\n    <None Include=\"TestCases\\TestCase26.cshtml\" />\r\n    <None Include=\"TestCases\\TestCase24.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase22.aspx.txt.skip\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase21.aspx.txt.skip\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <Content Include=\"TestCases\\TestCase20.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <None Include=\"TestCases\\TestCase19.aspx.txt.skip\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <Content Include=\"TestCases\\TestCase18.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <None Include=\"TestCases\\TestCase17.aspx.txt.skip\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase16.aspx.txt.skip\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <Content Include=\"TestCases\\TestCase15.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <Content Include=\"TestCases\\TestCase14.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <Content Include=\"TestCases\\TestCase13.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <Content Include=\"TestCases\\TestCase12.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <Content Include=\"TestCases\\TestCase11.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <Content Include=\"TestCases\\TestCase10.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <Content Include=\"TestCases\\TestCase09.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <None Include=\"TestCases\\TestCase23.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase22.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase21.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase20.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase19.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase18.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase17.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase16.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase15.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase14.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase13.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase12.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase11.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase10.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase09.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase08.aspx.txt.skip\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase08.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <Content Include=\"TestCases\\TestCase07.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <None Include=\"TestCases\\TestCase07.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <Content Include=\"TestCases\\TestCase06.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <None Include=\"TestCases\\TestCase06.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <Content Include=\"TestCases\\TestCase05.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <None Include=\"TestCases\\TestCase05.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <Content Include=\"TestCases\\TestCase04.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <None Include=\"TestCases\\TestCase04.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <Content Include=\"TestCases\\TestCase03.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <None Include=\"TestCases\\TestCase03.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <None Include=\"TestCases\\TestCase02.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n    <Content Include=\"TestCases\\TestCase02.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <Content Include=\"TestCases\\TestCase01.aspx.txt\">\r\n      <SubType>ASPXCodeBehind</SubType>\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </Content>\r\n    <None Include=\"TestCases\\TestCase25.cshtml\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <None Include=\"TestCases\\TestCase01.cshtml\">\r\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r\n    </None>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ProjectReference Include=\"..\\Telerik.RazorConverter.Tests.Common\\Telerik.RazorConverter.Tests.Common.csproj\">\r\n      <Project>{B30D861F-7D12-436A-BC5A-930D48291037}</Project>\r\n      <Name>Telerik.RazorConverter.Tests.Common</Name>\r\n    </ProjectReference>\r\n    <ProjectReference Include=\"..\\Telerik.RazorConverter\\Telerik.RazorConverter.csproj\">\r\n      <Project>{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}</Project>\r\n      <Name>Telerik.RazorConverter</Name>\r\n    </ProjectReference>\r\n  </ItemGroup>\r\n  <Import Project=\"$(MSBuildToolsPath)\\Microsoft.CSharp.targets\" />\r\n  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r\n       Other similar extension points exist, see Microsoft.Common.targets.\r\n  <Target Name=\"BeforeBuild\">\r\n  </Target>\r\n  <Target Name=\"AfterBuild\">\r\n  </Target>\r\n  -->\r\n</Project>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase01.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<OrderDto>>\" %>\n\n<asp:content contentplaceholderid=\"maincontent\" runat=\"server\">\n<% using (Html.Configurator(\"The grid should...\")\n              .PostTo(\"FirstLook\", \"Grid\")\n              .Begin())\n   { %>\n    <ul>\n        <li><%= Html.CheckBox(\"ajax\", true, \"make <strong>AJAX</strong> requests\")%></li>\n        <li><%= Html.CheckBox(\"grouping\", true, \"allow <strong>grouping</strong> of data\")%></li>\n        <li><%= Html.CheckBox(\"filtering\", true, \"allow <strong>filtering</strong> of data\")%></li>\n        <li><%= Html.CheckBox(\"paging\", true, \"have <strong>pages</strong> with 10 items\")%></li>\n        <li><%= Html.CheckBox(\"scrolling\", true, \"show a <strong>scrollbar</strong> when there are many items\")%></li>\n        <li><%= Html.CheckBox(\"sorting\", true, \"allow <strong>sorting</strong> of data\")%></li>\n        <li><%= Html.CheckBox(\"showFooter\", true, \"show footer\")%></li>\n    </ul>\n    <button class=\"t-button t-state-default\" type=\"submit\">Apply</button>\n<% } %>\n\n<%= Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n\t\t{\n\t\t\tcolumns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => \n        {\n            dataBinding.Server().Select(\"FirstLook\", \"Grid\", new { ajax = ViewData[\"ajax\"] });\n            dataBinding.Ajax().Select(\"_FirstLook\", \"Grid\").Enabled((bool)ViewData[\"ajax\"]);\n        })\n        .Scrollable(scrolling => scrolling.Enabled((bool)ViewData[\"scrolling\"]))\n        .Sortable(sorting => sorting.Enabled((bool)ViewData[\"sorting\"]))\n        .Pageable(paging => paging.Enabled((bool)ViewData[\"paging\"]))\n        .Filterable(filtering => filtering.Enabled((bool)ViewData[\"filtering\"]))\n        .Groupable(grouping => grouping.Enabled((bool)ViewData[\"grouping\"]))\n        .Footer((bool)ViewData[\"showFooter\"])\n%>\n</asp:content>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase01.cshtml",
    "content": "﻿@model IEnumerable<OrderDto>\n@using (Html.Configurator(\"The grid should...\")\n              .PostTo(\"FirstLook\", \"Grid\")\n              .Begin())\n              {\n    <ul>\n        <li>@Html.CheckBox(\"ajax\", true, \"make <strong>AJAX</strong> requests\")</li>\n        <li>@Html.CheckBox(\"grouping\", true, \"allow <strong>grouping</strong> of data\")</li>\n        <li>@Html.CheckBox(\"filtering\", true, \"allow <strong>filtering</strong> of data\")</li>\n        <li>@Html.CheckBox(\"paging\", true, \"have <strong>pages</strong> with 10 items\")</li>\n        <li>@Html.CheckBox(\"scrolling\", true, \"show a <strong>scrollbar</strong> when there are many items\")</li>\n        <li>@Html.CheckBox(\"sorting\", true, \"allow <strong>sorting</strong> of data\")</li>\n        <li>@Html.CheckBox(\"showFooter\", true, \"show footer\")</li>\n    </ul>\n    <button class=\"t-button t-state-default\" type=\"submit\">Apply</button>\n}\n@(Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => \n        {\n            dataBinding.Server().Select(\"FirstLook\", \"Grid\", new { ajax = ViewData[\"ajax\"] });\n            dataBinding.Ajax().Select(\"_FirstLook\", \"Grid\").Enabled((bool)ViewData[\"ajax\"]);\n        })\n        .Scrollable(scrolling => scrolling.Enabled((bool)ViewData[\"scrolling\"]))\n        .Sortable(sorting => sorting.Enabled((bool)ViewData[\"sorting\"]))\n        .Pageable(paging => paging.Enabled((bool)ViewData[\"paging\"]))\n        .Filterable(filtering => filtering.Enabled((bool)ViewData[\"filtering\"]))\n        .Groupable(grouping => grouping.Enabled((bool)ViewData[\"grouping\"]))\n        .Footer((bool)ViewData[\"showFooter\"])\n)"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase02.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<Order>>\" %>\n<asp:Content contentPlaceHolderID=\"MainContent\" runat=\"server\">\n<%= Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .Groupable()\n        .Sortable()\n        .Pageable()\n        .Filterable()\n%>\n</asp:Content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase02.cshtml",
    "content": "﻿@model IEnumerable<Order>\n@(Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .Groupable()\n        .Sortable()\n        .Pageable()\n        .Filterable()\n)"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase03.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage\" %>\n<asp:Content contentPlaceHolderID=\"MainContent\" runat=\"server\">\n<%= Html.Telerik().Grid<Order>()\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => dataBinding.Ajax().Select(\"_AjaxBinding\", \"Grid\"))\n        .Pageable()\n        .Sortable()\n        .Scrollable()\n        .Groupable()\n        .Filterable()\n%>\n</asp:Content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase03.cshtml",
    "content": "﻿@(Html.Telerik().Grid<Order>()\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => dataBinding.Ajax().Select(\"_AjaxBinding\", \"Grid\"))\n        .Pageable()\n        .Sortable()\n        .Scrollable()\n        .Groupable()\n        .Filterable()\n)"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase04.aspx.txt",
    "content": "﻿<%@ Page Title=\"\" Language=\"C#\" MasterPageFile=\"~/Views/Shared/Examples.Master\"\n    Inherits=\"System.Web.Mvc.ViewPage\" %>\n<asp:Content ID=\"Content1\" contentPlaceHolderID=\"MainContent\" runat=\"server\">\n<h3>Bound to ASMX Web Service</h3>\n<%= Html.Telerik().Grid<Order>()\n        .Name(\"AsmxGrid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => dataBinding.WebService().Select(\"~/Models/Orders.asmx/GetOrders\"))\n        .Sortable()\n        .Pageable()\n        .Groupable()\n        .Filterable()\n        .Scrollable()\n%>\n<h3>Bound to WCF Web Service using DTO objects</h3>\n<%= Html.Telerik().Grid<OrderDto>()\n        .Name(\"WcfGrid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(100);\n        })\n        .DataBinding(dataBinding => dataBinding.WebService().Select(\"~/Models/Orders.svc/GetOrders\"))\n        .Groupable()\n        .Sortable()\n        .Pageable()\n        .Filterable()\n        .Scrollable()\n%>\n</asp:Content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase04.cshtml",
    "content": "﻿<h3>Bound to ASMX Web Service</h3>\n@(Html.Telerik().Grid<Order>()\n        .Name(\"AsmxGrid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => dataBinding.WebService().Select(\"~/Models/Orders.asmx/GetOrders\"))\n        .Sortable()\n        .Pageable()\n        .Groupable()\n        .Filterable()\n        .Scrollable()\n)\n<h3>Bound to WCF Web Service using DTO objects</h3>\n@(Html.Telerik().Grid<OrderDto>()\n        .Name(\"WcfGrid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(100);\n        })\n        .DataBinding(dataBinding => dataBinding.WebService().Select(\"~/Models/Orders.svc/GetOrders\"))\n        .Groupable()\n        .Sortable()\n        .Pageable()\n        .Filterable()\n        .Scrollable()\n)"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase05.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<Order>>\" %>\n<asp:Content contentPlaceHolderID=\"MainContent\" runat=\"server\">\n<%= Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(100);\n        })\n        .DataBinding(dataBinding => dataBinding.Ajax().Select(\"_CustomBinding\", \"Grid\"))\n        .Pageable(settings => settings.Total((int)ViewData[\"total\"]))\n        .EnableCustomBinding(true)\n        .Sortable()\n        .Filterable()\n        .Groupable()\n%>\n    \n</asp:Content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase05.cshtml",
    "content": "﻿@model IEnumerable<Order>\n@(Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(100);\n        })\n        .DataBinding(dataBinding => dataBinding.Ajax().Select(\"_CustomBinding\", \"Grid\"))\n        .Pageable(settings => settings.Total((int)ViewData[\"total\"]))\n        .EnableCustomBinding(true)\n        .Sortable()\n        .Filterable()\n        .Groupable()\n)"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase06.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable>\" %>\n<asp:Content contentPlaceHolderID=\"MainContent\" runat=\"server\">\n<%= Html.Telerik().Grid<Order>()\n        .Name(\"Grid\")\n        .BindTo(Model)\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(100);\n        })\n        .DataBinding(dataBinding => dataBinding.Server().Select(\"CustomServerBinding\", \"Grid\"))\n        .Pageable(settings => settings.Total((int)ViewData[\"total\"]))\n        .EnableCustomBinding(true)\n        .Sortable()\n        .Filterable()\n        .Groupable()\n%>\n    \n</asp:Content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase06.cshtml",
    "content": "﻿@model IEnumerable\n@(Html.Telerik().Grid<Order>()\n        .Name(\"Grid\")\n        .BindTo(Model)\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(100);\n        })\n        .DataBinding(dataBinding => dataBinding.Server().Select(\"CustomServerBinding\", \"Grid\"))\n        .Pageable(settings => settings.Total((int)ViewData[\"total\"]))\n        .EnableCustomBinding(true)\n        .Sortable()\n        .Filterable()\n        .Groupable()\n)"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase07.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage\" %>\n\n<asp:content contentPlaceHolderID=\"MainContent\" runat=\"server\">\n\n\t<h3><a href=\"http://twitter.com/\" class=\"twitter-icon\"></a> Search</h3>\n\n\t<label for=\"searchText\">See what people are saying about&#8230;</label>\n\t<input type=\"text\" id=\"searchText\" value=\"#aspnetmvc\" /><a href=\"#\" id=\"searchButton\">search</a>\n\n\t<%= Html.Telerik().Grid<TwitterItem>()\n            .Name(\"Grid\")\n            .Columns(columns =>\n            {\n                columns.Template(o => { }).Title(\"Author\").Width(100);\n                columns.Template(o => { }).Title(\"Avatar\").Width(80);\n                columns.Bound(o => o.text).Title(\"Post\");\n            })\n            .ClientEvents(events => events\n                .OnDataBinding(\"onDataBinding\")\n                .OnRowDataBound(\"onRowDataBound\")\n            )\n            .Scrollable(scrolling=>scrolling.Height(400))\n    %>\n    <%\n        Html.Telerik().ScriptRegistrar()\n            .OnDocumentReady(() =>\n            {\n                %>\n                    $('#searchButton').click(function(e) {\n                        e.preventDefault();\n                        $('#Grid').data('tGrid').ajaxRequest();\n                    });\n                    $('#searchText').keydown(function(e) {\n                        if (e.keyCode == 13)\n                            $('#searchButton').trigger('click');\n                        });\n                <%\n                    });\n        %>\n\n<script type=\"text/javascript\">\n    function onRowDataBound(e) {\n        var row = e.row;\n        var dataItem = e.dataItem;\n        \n        // update `Author` cell with template\n        row.cells[0].innerHTML = [\n            '<a class=\"t-link\" href=\"http://www.twitter.com/', dataItem.from_user, '\">',\n            dataItem.from_user,\n            '</a>'\n        ].join('');\n\n        // update `Avatar` cell with template\n        row.cells[1].innerHTML = [\n            '<img width=\"48\" height=\"48\"',\n            ' src=\"', dataItem.profile_image_url,\n            '\" alt=\"', dataItem.from_user, '\" />'\n            ].join('');\n    }\n\n    function onDataBinding(e) {\n        var grid = $(this).data('tGrid');\n        \n        $('.t-status .t-icon', grid.element).addClass('t-loading');\n\n        // call the twitter search api\n        $.ajax({\n            url: 'http://search.twitter.com/search.json',\n            contentType: 'application/json; charset=utf-8',\n            type: 'GET',\n            dataType: 'jsonp',\n            error: function(xhr, status) {\n                alert(status);\n            },\n            data: {\n                q: $('#searchText').val()\n            },\n            success: function(result) {\n                grid.dataBind(result.results);\n                $('.t-status .t-icon', grid.element).removeClass('t-loading');\n            }\n        });\n    }\n</script>\n\n</asp:content>\n\n<asp:content contentPlaceHolderID=\"HeadContent\" runat=\"server\">\n    <style type=\"text/css\">\n        .twitter-icon\n        {\n            background: url('<%= ResolveUrl(\"~/Content/Grid/ExternalServiceTwitter/twitter-logo.png\") %>') no-repeat 0 0;\n            width: 100px;\n            height: 25px;\n            line-height: 25px;\n            display: inline-block;\n            vertical-align: top;\n            margin-top: -6px;\n        }\n        label\n        {\n            display: block;\n            padding-bottom: 3px;\n        }\n        #searchText, #searchButton\n        {\n            padding: 8px 10px;\n            font-size: 16px;\n            border: 1px solid #aaa;\n            color: #333;\n            display: inline-block; *display:inline;zoom:1;vertical-align:top;margin-bottom:30px;height:18px;line-height:18px;}\n        #searchText\n        {\n            width: 330px;\n            -moz-border-radius: 5px 0 0 5px;\n            -webkit-border-radius: 5px 0 0 5px;\n            border-radius: 5px 0 0 5px;\n            border-right: 0;\n        }\n        #searchButton\n        {\n            -moz-border-radius: 0 5px 5px 0;\n            -webkit-border-radius: 0 5px 5px 0;\n            border-radius: 0 5px 5px 0;\n            background: #bbb;\n            text-shadow: 0 1px 0 #fff;\n            text-decoration: none;\n            color: #333;\n        }\n        #searchButton:hover, #searchButton:focus\n        {\n            color: #111;\n        }\n    </style>\n</asp:content>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase07.cshtml",
    "content": "﻿<h3><a href=\"http://twitter.com/\" class=\"twitter-icon\"></a> Search</h3>\n<label for=\"searchText\">See what people are saying about&#8230;</label>\n<input type=\"text\" id=\"searchText\" value=\"#aspnetmvc\" /><a href=\"#\" id=\"searchButton\">search</a>\n@(Html.Telerik().Grid<TwitterItem>()\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Template(o => { }).Title(\"Author\").Width(100);\n            columns.Template(o => { }).Title(\"Avatar\").Width(80);\n            columns.Bound(o => o.text).Title(\"Post\");\n        })\n        .ClientEvents(events => events\n            .OnDataBinding(\"onDataBinding\")\n            .OnRowDataBound(\"onRowDataBound\")\n        )\n        .Scrollable(scrolling=>scrolling.Height(400))\n\t\t)\n@{\n    Html.Telerik().ScriptRegistrar()\n        .OnDocumentReady(@<text>\n                $('#searchButton').click(function(e) {\n                    e.preventDefault();\n                    $('#Grid').data('tGrid').ajaxRequest();\n                });\n                $('#searchText').keydown(function(e) {\n                    if (e.keyCode == 13)\n                        $('#searchButton').trigger('click');\n                    });\n        </text>);\n}\n<script type=\"text/javascript\">\n    function onRowDataBound(e) {\n        var row = e.row;\n        var dataItem = e.dataItem;\n        \n        // update `Author` cell with template\n        row.cells[0].innerHTML = [\n            '<a class=\"t-link\" href=\"http://www.twitter.com/', dataItem.from_user, '\">',\n            dataItem.from_user,\n            '</a>'\n        ].join('');\n        // update `Avatar` cell with template\n        row.cells[1].innerHTML = [\n            '<img width=\"48\" height=\"48\"',\n            ' src=\"', dataItem.profile_image_url,\n            '\" alt=\"', dataItem.from_user, '\" />'\n            ].join('');\n    }\n    function onDataBinding(e) {\n        var grid = $(this).data('tGrid');\n        \n        $('.t-status .t-icon', grid.element).addClass('t-loading');\n        // call the twitter search api\n        $.ajax({\n            url: 'http://search.twitter.com/search.json',\n            contentType: 'application/json; charset=utf-8',\n            type: 'GET',\n            dataType: 'jsonp',\n            error: function(xhr, status) {\n                alert(status);\n            },\n            data: {\n                q: $('#searchText').val()\n            },\n            success: function(result) {\n                grid.dataBind(result.results);\n                $('.t-status .t-icon', grid.element).removeClass('t-loading');\n            }\n        });\n    }\n</script>\n@section HeadContent {\n    <style type=\"text/css\">\n        .twitter-icon\n        {\n            background: url('@Url.Content(\"~/Content/Grid/ExternalServiceTwitter/twitter-logo.png\")') no-repeat 0 0;\n            width: 100px;\n            height: 25px;\n            line-height: 25px;\n            display: inline-block;\n            vertical-align: top;\n            margin-top: -6px;\n        }\n        label\n        {\n            display: block;\n            padding-bottom: 3px;\n        }\n        #searchText, #searchButton\n        {\n            padding: 8px 10px;\n            font-size: 16px;\n            border: 1px solid #aaa;\n            color: #333;\n            display: inline-block; *display:inline;zoom:1;vertical-align:top;margin-bottom:30px;height:18px;line-height:18px;}\n        #searchText\n        {\n            width: 330px;\n            -moz-border-radius: 5px 0 0 5px;\n            -webkit-border-radius: 5px 0 0 5px;\n            border-radius: 5px 0 0 5px;\n            border-right: 0;\n        }\n        #searchButton\n        {\n            -moz-border-radius: 0 5px 5px 0;\n            -webkit-border-radius: 0 5px 5px 0;\n            border-radius: 0 5px 5px 0;\n            background: #bbb;\n            text-shadow: 0 1px 0 #fff;\n            text-decoration: none;\n            color: #333;\n        }\n        #searchButton:hover, #searchButton:focus\n        {\n            color: #111;\n        }\n    </style>\n}"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase08.aspx.txt.skip",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<Employee>>\" %>\n\n<asp:Content ContentPlaceHolderID=\"MainContent\" runat=\"server\">\n    <% Html.Telerik().Grid(Model)\n        .Name(\"Employees\")\n        .Columns(columns =>\n        {\n            columns.Bound(e => e.FirstName).Width(140);\n            columns.Bound(e => e.LastName).Width(140);\n            columns.Bound(e => e.Title).Width(200);\n            columns.Bound(e => e.Country).Width(200);\n            columns.Bound(e => e.City);\n        })\n        .DetailView(detailView => detailView.Template(e =>\n        {\n            %>\n                <%\n                    Html.Telerik().TabStrip()\n                        .Name(\"TabStrip_\" + e.EmployeeID)\n                        .SelectedIndex(0)\n                        .Items(items =>\n                        {\n                            items.Add().Text(\"Orders\").Content(() =>\n                            {\n                                %>\n                                    <%= Html.Telerik().Grid(e.Orders)\n                                           .Name(\"Orders_\" + e.EmployeeID)\n                                           .Columns(columns =>\n                                            {\n                                                columns.Bound(o => o.OrderID).Width(101);\n                                                columns.Bound(o => o.ShipCountry).Width(140);\n                                                columns.Bound(o => o.ShipAddress).Width(200);\n                                                columns.Bound(o => o.ShipName).Width(200);\n                                                columns.Bound(o => o.ShippedDate).Format(\"{0:d}\");\n                                            })\n                                           .Pageable()\n                                           .Sortable()\n                                    %>\n                                <%\n                            });\n                            items.Add().Text(\"Contact Information\").Content(() =>\n                            {\n                                %>\n                                    <div class=\"employee-details\">\n                                        <img src=\"<%= Url.Content(\"~/Content/Grid/Employees/\" + e.EmployeeID + \".jpg\") %>\" alt=\"<%= e.FirstName + \" \" + e.LastName %>\" />\n                                        <ul>\n                                            <li>\n                                                <label>Birth Date:</label><%= e.BirthDate.Value.ToString(\"d\") %>\n                                            </li>\n                                            <li>\n                                                <label>Country:</label><%= e.Country %>\n                                            </li>\n                                            <li>\n                                                <label>City:</label><%= e.City %>\n                                            </li>\n                                            <li>\n                                                <label>Address:</label><%= e.Address %>\n                                            </li>\n                                            <li>\n                                                <label>Home Phone:</label><%= e.HomePhone %>\n                                            </li>\n                                        </ul>\n                                    </div>\n                                <%\n                            });                                                       \n\n                        })\n                        .Render();\n                 %>\n            <%    \n        }))\n        .RowAction(row => \n        {\n            if (row.Index == 0)\n            {\n                row.DetailRow.Expanded = true;\n            }\n        })\n        .Pageable(paging => paging.PageSize(5))\n        .Sortable()\n        .Render();\n    %>\n</asp:Content>\n<asp:Content contentPlaceHolderID=\"HeadContent\" runat=\"server\">\n    <style type=\"text/css\">\n\t    .employee-details ul\n\t    {\n\t        list-style:none;\n            font-style:italic;\n            margin-left:80px;\n            margin-bottom: 20px;\n\t    }\n\t    .employee-details img\n\t    {\n\t        border: 1px solid #05679D;\n\t        float:left;\n\t    }\n\t    \n\t    .employee-details label\n\t    {\n\t        display:inline-block;\n\t        width:90px;\n\t        font-style:normal;\n\t        font-weight:bold;\n\t    }\n    </style>\n</asp:Content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase08.cshtml",
    "content": "﻿@model IEnumerable<Employee>\n\n@{ Html.Telerik().Grid(Model)\n    .Name(\"Employees\")\n    .Columns(columns =>\n    {\n        columns.Bound(e => e.FirstName).Width(140);\n        columns.Bound(e => e.LastName).Width(140);\n        columns.Bound(e => e.Title).Width(200);\n        columns.Bound(e => e.Country).Width(200);\n        columns.Bound(e => e.City);\n    })\n    .DetailView(detailView => detailView.Template(\n    @<text>\n        @(Html.Telerik().TabStrip()\n            .Name(\"TabStrip_\" + e.EmployeeID)\n            .SelectedIndex(0)\n            .Items(items =>\n            {\n                items.Add().Text(\"Orders\").Content(\n                @<text> @* Converter: Manually extract inline block into @helper. *@\n                        @(Html.Telerik().Grid(e.Orders)\n                                .Name(\"Orders_\" + e.EmployeeID)\n                                .Columns(columns =>\n                                {\n                                    columns.Bound(o => o.OrderID).Width(101);\n                                    columns.Bound(o => o.ShipCountry).Width(140);\n                                    columns.Bound(o => o.ShipAddress).Width(200);\n                                    columns.Bound(o => o.ShipName).Width(200);\n                                    columns.Bound(o => o.ShippedDate).Format(\"{0:d}\");\n                                })\n                                .Pageable()\n                                .Sortable()\n                        )\n                </text>\n                );\n                items.Add().Text(\"Contact Information\").Content(\n                @<text> @* Converter: Manually extract inline block into @helper. *@\n                        <div class=\"employee-details\">\n                            <img src=\"<%= Url.Content(\"~/Content/Grid/Employees/\" + e.EmployeeID + \".jpg\") %>\" alt=\"<%= e.FirstName + \" \" + e.LastName %>\" />\n                            <ul>\n                                <li>\n                                    <label>Birth Date:</label><%= e.BirthDate.Value.ToString(\"d\") %>\n                                </li>\n                                <li>\n                                    <label>Country:</label><%= e.Country %>\n                                </li>\n                                <li>\n                                    <label>City:</label><%= e.City %>\n                                </li>\n                                <li>\n                                    <label>Address:</label><%= e.Address %>\n                                </li>\n                                <li>\n                                    <label>Home Phone:</label><%= e.HomePhone %>\n                                </li>\n                            </ul>\n                        </div>\n                </text>\n\t\t\t\t);                                                       \n            }))\n\t</text>\n    ))\n    .RowAction(row => \n    {\n        if (row.Index == 0)\n        {\n            row.DetailRow.Expanded = true;\n        }\n    })\n    .Pageable(paging => paging.PageSize(5))\n    .Sortable()\n    .Render()\n}\n\n@section HeadContent\n{\n    <style type=\"text/css\">\n\t    .employee-details ul\n\t    {\n\t        list-style:none;\n            font-style:italic;\n            margin-left:80px;\n            margin-bottom: 20px;\n\t    }\n\t    .employee-details img\n\t    {\n\t        border: 1px solid #05679D;\n\t        float:left;\n\t    }\n\t    \n\t    .employee-details label\n\t    {\n\t        display:inline-block;\n\t        width:90px;\n\t        font-style:normal;\n\t        font-weight:bold;\n\t    }\n    </style>\n}"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase09.aspx.txt",
    "content": "﻿<%@ Control Language=\"C#\" Inherits=\"System.Web.Mvc.ViewUserControl\" %>\n<%@ Import Namespace=\"Telerik.Web.Mvc\" %>\n<% \n    if (ViewData[\"telerik.web.mvc.products.examples\"] != null)\n    {\n        Html.Telerik().PanelBar()\n            .Name(\"navigation-product-examples\")\n            .HtmlAttributes(new { @class = \"demos-navigation\" })\n            .BindTo(\"telerik.web.mvc.products.examples\", (item, node) => \n            {\n                if (!string.IsNullOrEmpty(node.ControllerName) && !string.IsNullOrEmpty(node.ActionName))\n                {\n                    item.ControllerName = node.ControllerName.ToLower();\n                    item.ActionName = node.ActionName.ToLower();\n                }\n            })\n            .HighlightPath(true)\n            .ItemAction(item =>\n            {\n                if (!item.Items.Any() && !string.IsNullOrEmpty(Request.QueryString[\"theme\"]))\n                {\n                    item.RouteValues.Add(\"theme\", Request.QueryString[\"theme\"]);\n                }\n\n                if (item.Selected)\n                {\n                    item.HtmlAttributes[\"class\"] = \"active-page\";\n                }\n\n                if (item.Parent == null)\n                {\n                    item.SpriteCssClasses = \"t\" + item.Text;\n                }\n            })\n            .Render();\n    }\n%>\n<% \n    Html.Telerik().PanelBar()\n        .Name(\"navigation-controls\")\n        .HtmlAttributes(new { @class = \"demos-navigation\" })\n        .BindTo(\"telerik.web.mvc.products\", (item, node) =>\n        {\n            if (!string.IsNullOrEmpty(node.ControllerName) && !string.IsNullOrEmpty(node.ActionName))\n            {\n                item.ControllerName = node.ControllerName.ToLower();\n                item.ActionName = node.ActionName.ToLower();\n            }\n        })\n        \n        .ItemAction(item =>\n        {\n            if (!item.Items.Any() && !string.IsNullOrEmpty(Request.QueryString[\"theme\"]))\n            {\n                item.RouteValues.Add(\"theme\", Request.QueryString[\"theme\"]);\n            }\n\n            item.SpriteCssClasses = \"t\" + item.Text;\n        })\n        .Render();\n%>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase09.cshtml",
    "content": "﻿@using Telerik.Web.Mvc\n@if (ViewData[\"telerik.web.mvc.products.examples\"] != null)\n    { \n        Html.Telerik().PanelBar()\n            .Name(\"navigation-product-examples\")\n            .HtmlAttributes(new { @class = \"demos-navigation\" })\n            .BindTo(\"telerik.web.mvc.products.examples\", (item, node) =>\n            {\n                if (!string.IsNullOrEmpty(node.ControllerName) && !string.IsNullOrEmpty(node.ActionName))\n                {\n                    item.ControllerName = node.ControllerName.ToLower();\n                    item.ActionName = node.ActionName.ToLower();\n                }\n            })\n            .HighlightPath(true)\n            .ItemAction(item =>\n            {\n                if (!item.Items.Any() && !string.IsNullOrEmpty(Request.QueryString[\"theme\"]))\n                {\n                    item.RouteValues.Add(\"theme\", Request.QueryString[\"theme\"]);\n                }\n\n                if (item.Selected)\n                {\n                    item.HtmlAttributes[\"class\"] = \"active-page\";\n                }\n\n                if (item.Parent == null)\n                {\n                    item.SpriteCssClasses = \"t\" + item.Text;\n                }\n            })\n            .Render();\n    }\n\n\n    @{ \n        Html.Telerik().PanelBar()\n        .Name(\"navigation-controls\")\n        .HtmlAttributes(new { @class = \"demos-navigation\" })\n        .BindTo(\"telerik.web.mvc.products\", (item, node) =>\n        {\n            if (!string.IsNullOrEmpty(node.ControllerName) && !string.IsNullOrEmpty(node.ActionName))\n            {\n                item.ControllerName = node.ControllerName.ToLower();\n                item.ActionName = node.ActionName.ToLower();\n            }\n        })\n\n        .ItemAction(item =>\n        {\n            if (!item.Items.Any() && !string.IsNullOrEmpty(Request.QueryString[\"theme\"]))\n            {\n                item.RouteValues.Add(\"theme\", Request.QueryString[\"theme\"]);\n            }\n\n            item.SpriteCssClasses = \"t\" + item.Text;\n        })\n        .Render();\n     }"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase10.aspx.txt",
    "content": "﻿<%@ Control Language=\"C#\" Inherits=\"System.Web.Mvc.ViewUserControl<string>\" %>\n<pre><%=  Html.Encode(Model.Replace(\"\\t\", \"    \")).WordWrap() %></pre>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase10.cshtml",
    "content": "﻿@model string\n<pre>@Model.Replace(\"\\t\", \"    \").WordWrap()</pre>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase11.aspx.txt",
    "content": "﻿<a id=\"telerik-logo\" href=\"http://www.telerik.com/\">Built by Telerik</a>\n\n<div id=\"footer\">\n\t<p>\n\t\tCopyright 2002-@DateTime.Now.Year  &copy; Telerik. All rights reserved<br />\n\t\tTelerik Inc,\n\t\t<span class=\"adr\">\n\t\t    <span class=\"street-address\">460 Totten Pond Rd</span>,\n\t\t    <span class=\"extended-address\">Suite 640</span>,\n\t\t    <span class=\"locality\">Waltham</span>,\n\t\t    <span class=\"region\">MA</span>\n\t\t    <span class=\"postal-code\">02451</span>\n\t\t</span><br />\n\t\t<a href=\"http://www.telerik.com/\">www.telerik.com</a> |\n\t\t<a href=\"http://www.telerik.com/home/terms-of-use.aspx\">Terms of Use</a> |\n\t\t<a href=\"http://www.telerik.com/corporate/contact-us.aspx\">Contact Us</a>\n\t</p>\n</div>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase11.cshtml",
    "content": "﻿<a id=\"telerik-logo\" href=\"http://www.telerik.com/\">Built by Telerik</a>\n\n<div id=\"footer\">\n\t<p>\n\t\tCopyright 2002-@DateTime.Now.Year  &copy; Telerik. All rights reserved<br />\n\t\tTelerik Inc,\n\t\t<span class=\"adr\">\n\t\t    <span class=\"street-address\">460 Totten Pond Rd</span>,\n\t\t    <span class=\"extended-address\">Suite 640</span>,\n\t\t    <span class=\"locality\">Waltham</span>,\n\t\t    <span class=\"region\">MA</span>\n\t\t    <span class=\"postal-code\">02451</span>\n\t\t</span><br />\n\t\t<a href=\"http://www.telerik.com/\">www.telerik.com</a> |\n\t\t<a href=\"http://www.telerik.com/home/terms-of-use.aspx\">Terms of Use</a> |\n\t\t<a href=\"http://www.telerik.com/corporate/contact-us.aspx\">Contact Us</a>\n\t</p>\n</div>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase12.aspx.txt",
    "content": "﻿<%@ Control Language=\"C#\" Inherits=\"System.Web.Mvc.ViewUserControl\" %>\n\n<h3>About this example</h3>\n\n<% Html.Telerik().TabStrip()\n        .Name(\"code-viewer-tabs\")\n        .Items(tabstrip => \n        {\n            bool hasDescription = !string.IsNullOrEmpty(ViewData.Get<IHtmlString>(\"Description\").ToString());\n            if (hasDescription)\n            {\n                tabstrip.Add()\n                    .Text(\"Description\")\n                    .Content(() =>\n                    {\n                        %>\n                            <div class=\"description\"><%= ViewData[\"Description\"] %></div>\n                        <%\n                    });\n            }\n\n            var codeFiles = ViewData.Get<Dictionary<string, string>>(\"codeFiles\");\n\n            foreach (var codeFile in codeFiles)\n            {\n                tabstrip.Add()\n                        .Text(codeFile.Key)\n                        .LoadContentFrom(\"CodeFile\", \"Home\", new { file = codeFile.Value });\n            }\n        })\n        .SelectedIndex(0)\n        .ClientEvents(events => events.OnLoad(\"codeTabLoad\"))\n        .Render(); \n%>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase12.cshtml",
    "content": "﻿<h3>About this example</h3>\n\n@{ Html.Telerik().TabStrip()\n        .Name(\"code-viewer-tabs\")\n        .Items(tabstrip =>\n        {\n            bool hasDescription = !string.IsNullOrEmpty(ViewData.Get<IHtmlString>(\"Description\").ToString());\n            if (hasDescription)\n            {\n                tabstrip.Add()\n                    .Text(\"Description\")\n                    .Content(@<text>\n                        <div class=\"description\">@ViewData[\"Description\"]</div>\n                    </text>);\n            }\n\n            var codeFiles = ViewData.Get<Dictionary<string, string>>(\"codeFiles\");\n\n            foreach (var codeFile in codeFiles)\n            {\n                tabstrip.Add()\n                        .Text(codeFile.Key)\n                        .LoadContentFrom(\"CodeFile\", \"Home\", new { file = codeFile.Value });\n            }\n        })\n        .SelectedIndex(0)\n        .ClientEvents(events => events.OnLoad(\"codeTabLoad\"))\n        .Render();\n}"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase13.aspx.txt",
    "content": "﻿<%@ Control Language=\"C#\" Inherits=\"System.Web.Mvc.ViewUserControl\" %>\n\n<div class=\"event-log-wrap\">\n\t<h3>Event log</h3>\n\t\n\t<a href=\"#\" class=\"event-log-clear t-link\"><span class=\"t-icon\"></span>Clear log</a>\n\t\n\t<div class=\"event-log\"></div>\n</div>\n\n<script type=\"text/javascript\">\n    //<![CDATA[\n\n\twindow.$console = {\n\t\tlog: function(msg) {\n\t\t\t$('<div />')\n\t\t\t\t.html(msg)\n\t\t\t\t.css({\n\t\t\t\t\t'margin-top': -24,\n\t\t\t\t\t'background-color': '#ffffd0'\n\t\t\t\t})\n\t\t\t\t.prependTo('.event-log')\n\t\t\t\t.animate({ marginTop: 0 }, 'fast')\n\t\t\t\t.animate({ backgroundColor: '#ffffff' }, 800);\n\t\t}\n\t};\n\t\n\t//]]>\n</script>\n\n<% Html.Telerik().ScriptRegistrar()\n\t   .OnDocumentReady(() => {%>\n\t\t\t$('.event-log-clear')\n\t\t\t\t.click(function(e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$(this).next('.event-log').html('');\n\t\t\t\t});\n\t   <%});\n%>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase13.cshtml",
    "content": "﻿\n<div class=\"event-log-wrap\">\n\t<h3>Event log</h3>\n\t\n\t<a href=\"#\" class=\"event-log-clear t-link\"><span class=\"t-icon\"></span>Clear log</a>\n\t\n\t<div class=\"event-log\"></div>\n</div>\n\n<script type=\"text/javascript\">\n    //<![CDATA[\n\n\twindow.$console = {\n\t\tlog: function(msg) {\n\t\t\t$('<div />')\n\t\t\t\t.html(msg)\n\t\t\t\t.css({\n\t\t\t\t\t'margin-top': -24,\n\t\t\t\t\t'background-color': '#ffffd0'\n\t\t\t\t})\n\t\t\t\t.prependTo('.event-log')\n\t\t\t\t.animate({ marginTop: 0 }, 'fast')\n\t\t\t\t.animate({ backgroundColor: '#ffffff' }, 800);\n\t\t}\n\t};\n\t\n\t//]]>\n</script>\n\n@{ Html.Telerik().ScriptRegistrar()\n\t   .OnDocumentReady(@<text>\n\t\t\t$('.event-log-clear')\n\t\t\t\t.click(function(e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$(this).next('.event-log').html('');\n\t\t\t\t});\n\t   </text>);\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase14.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage\" %>\n\n<asp:content contentPlaceHolderID=\"MainContent\" runat=\"server\">\n    <%= Html.Telerik().Calendar()\n            .Name(\"Calendar\")\n            .Selection(settings => settings\n                .Action(\"Accessibility\", new { date = \"{0}\", theme = Request.QueryString[\"theme\"] }))\n            .Value((DateTime)ViewData[\"date\"])\n    %>\n\n    <noscript>\n        <p>Your browsing experience on this page will be better if you visit it with a JavaScript-enabled browser / if you enable JavaScript.</p>\n    </noscript>\n    \n    <% Html.RenderPartial(\"AccessibilityValidation\"); %>\n</asp:content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase14.cshtml",
    "content": "﻿\n\n\n    @(Html.Telerik().Calendar()\n            .Name(\"Calendar\")\n            .Selection(settings => settings\n                .Action(\"Accessibility\", new { date = \"{0}\", theme = Request.QueryString[\"theme\"] }))\n            .Value((DateTime)ViewData[\"date\"])\n    )\n\n    <noscript>\n        <p>Your browsing experience on this page will be better if you visit it with a JavaScript-enabled browser / if you enable JavaScript.</p>\n    </noscript>\n    \n    @Html.Partial(\"AccessibilityValidation\")\n\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase15.aspx.txt",
    "content": "﻿<%@ Control Language=\"C#\" Inherits=\"System.Web.Mvc.ViewUserControl\" %>\n    \n    <div id=\"examples-search\">\n        <label for=\"search-input\"></label>\n\n        <%= Html.Telerik().ComboBox()\n                .Name(\"search\")\n                .Encode(false)\n                .DataBinding(binding => binding.Ajax().Select(\"_Search\", \"Search\").Cache(false))\n                .HtmlAttributes(new { style = \"width: 183px; z-index:100;\" })\n                .DropDownHtmlAttributes(new { id=\"examples-search-popup\", style = \"width: 183px;\" })\n                .ClientEvents(events => events.OnChange(\"navigateOnSearch\"))\n                .HighlightFirstMatch(true)\n        %>\n\n    </div>\n\n   <% Html.Telerik().ScriptRegistrar().OnDocumentReady(() => {%>window.examplesBaseUrl = '<%= Url.Content(\"~/\") %>';<%}); %>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase15.cshtml",
    "content": "﻿\n    \n    <div id=\"examples-search\">\n        <label for=\"search-input\"></label>\n\n        @(Html.Telerik().ComboBox()\n                .Name(\"search\")\n                .Encode(false)\n                .DataBinding(binding => binding.Ajax().Select(\"_Search\", \"Search\").Cache(false))\n                .HtmlAttributes(new { style = \"width: 183px; z-index:100;\" })\n                .DropDownHtmlAttributes(new { id=\"examples-search-popup\", style = \"width: 183px;\" })\n                .ClientEvents(events => events.OnChange(\"navigateOnSearch\"))\n                .HighlightFirstMatch(true)\n        )\n\n    </div>\n\n   @{ Html.Telerik().ScriptRegistrar().OnDocumentReady(@<text>window.examplesBaseUrl = '@Url.Content(\"~/\")';</text>); }\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase16.aspx.txt.skip",
    "content": "﻿<%@ Page Title=\"\" Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<Telerik.Web.Mvc.Examples.ComboBoxFilteringModel>\" %>\n\n<asp:content ID=\"Content2\" contentPlaceHolderID=\"MainContent\" runat=\"server\">\n\n    <%= Html.Telerik().ComboBox()\n                      .Name(\"ComboBox\")\n                      .AutoFill(Model.ComboBoxAttributes.AutoFill.Value)\n                      .BindTo(new SelectList(Model.Products, \"ProductID\", \"ProductName\"))\n                      .Filterable(filtering =>\n                      {\n                          if (Model.ComboBoxAttributes.FilterMode != 0)\n                          {\n                              filtering.FilterMode((AutoCompleteFilterMode)Enum.Parse(typeof(AutoCompleteFilterMode), Model.ComboBoxAttributes.FilterMode.ToString()));\n                              filtering.MinimumChars(Model.ComboBoxAttributes.MinimumChars.Value);\n                          }\n                      })\n                      .HighlightFirstMatch(Model.ComboBoxAttributes.HighlightFirst.Value)\n    %>\n    \n    <% using (Html.Configurator(\"The ComboBox should...\")\n                .PostTo(\"FilteringClient\", \"ComboBox\")\n                .Begin())\n       { %>\n        <ul>\n            <li>\n                have <strong>filter mode</strong>&nbsp;\n                <% Html.Telerik().DropDownList()\n                                 .Name(\"ComboBoxAttributes.FilterMode\")\n                                 .HtmlAttributes(new { style = \"width:100px\" })\n                                 .Items(items =>\n                                 {\n                                     items.Add().Text(\"None\").Value(\"0\");\n                                     items.Add().Text(\"StartsWith\").Value(\"1\");\n                                     items.Add().Text(\"Contains\").Value(\"2\");\n                                 })\n                                 .SelectedIndex(Model.ComboBoxAttributes.FilterMode.Value)\n                                 .ClientEvents(events =>\n                                     events.OnChange(() =>\n                                     {\n                                     %>\n                                         function(e) {\n                                             var textbox = $('#ComboBoxAttributes_MinimumChars').data('tTextBox');\n                                             if(e.value == 0) textbox.disable();\n                                             else textbox.enable();\n                                         }\n                                     <%\n                                     })\n                                 ).Render();\n                %>\n            </li>\n            <li>\n                <strong>start filtering</strong> after\n                <% Html.Telerik().IntegerTextBoxFor(m => m.ComboBoxAttributes.MinimumChars)\n                                 .InputHtmlAttributes(new { style = \"width: 60px\" })\n                                 .MinValue(0)\n                                 .MaxValue(1000)\n                                 .ClientEvents(events =>\n                                     events.OnLoad(() =>\n                                     {                                \n                                     %>\n                                         function(e) {\n                                             var dropDownList = $('#ComboBoxAttributes_FilterMode').data('tDropDownList');\n                                             if(dropDownList.index == 0) $(this).data('tTextBox').disable();\n                                         }\n                                     <%\n                                 })\n                                 ).Render();\n                %>\n                chars            \n            </li>\n            <li>\n                <strong>highlight</strong> first item\n                <%= Html.CheckBox(\"ComboBoxAttributes.HighlightFirst\", Model.ComboBoxAttributes.HighlightFirst.GetValueOrDefault(false), new { title = \"HighlightFirst\" })%>\n            </li>\n            <li>\n                <strong>auto-filling</strong> text\n                <%= Html.CheckBox(\"ComboBoxAttributes.AutoFill\", Model.ComboBoxAttributes.AutoFill.GetValueOrDefault(false), new { title = \"AutoFill\" })%>\n            </li>\n        </ul>\n        <button type=\"submit\" class=\"t-button t-state-default\">Apply</button>\n    <% } %>\n\n    <%= Html.Telerik().AutoComplete()\n                      .Name(\"AutoComplete\")\n                      .AutoFill(Model.AutoCompleteAttributes.AutoFill.Value)\n                      .BindTo(Model.Products.Select(p => p.ProductName))\n                      .Filterable(filtering =>\n                      {\n                            filtering.FilterMode((AutoCompleteFilterMode)Enum.Parse(typeof(AutoCompleteFilterMode), Model.AutoCompleteAttributes.FilterMode.ToString()));\n                            filtering.MinimumChars(Model.AutoCompleteAttributes.MinimumChars.Value);\n                      })\n                      .HighlightFirstMatch(Model.AutoCompleteAttributes.HighlightFirst.Value)\n                      .Multiple( multi => multi.Enabled(Model.AutoCompleteAttributes.AllowMultipleValues.Value))\n                      .Encode(false)\n    %>\n    \n    <% using (Html.Configurator(\"The AutoComplete should...\")\n                .PostTo(\"FilteringClient\", \"ComboBox\")\n                .Begin())\n       { %>\n        <ul>\n            <li>\n                have <strong>filter mode</strong>&nbsp;\n                <%= Html.Telerik().DropDownList()\n                                  .Name(\"AutoCompleteAttributes.FilterMode\")\n                                  .HtmlAttributes(new { style = \"width:100px\" })\n                                  .Items(items =>\n                                  {\n                                      items.Add().Text(\"StartsWith\").Value(\"1\");\n                                      items.Add().Text(\"Contains\").Value(\"2\");\n                                  })\n                                  .SelectedIndex(Model.AutoCompleteAttributes.FilterMode.Value - 1)\n                %>\n            </li>\n            <li>\n                <strong>start filtering</strong> after\n                <%= Html.Telerik().IntegerTextBoxFor(m => m.AutoCompleteAttributes.MinimumChars)\n                                  .InputHtmlAttributes(new { style = \"width: 60px\" })\n                                  .MinValue(1)\n                                  .MaxValue(1000)\n                %>\n                chars            \n            </li>\n            <li>\n                <strong>highlight</strong> first item\n                <%= Html.CheckBox(\"AutoCompleteAttributes.HighlightFirst\", Model.AutoCompleteAttributes.HighlightFirst.GetValueOrDefault(false), new { title = \"HighlightFirst\" })%>\n            </li>\n            <li>\n                <strong>auto-filling</strong> text\n                <%= Html.CheckBox(\"AutoCompleteAttributes.AutoFill\", Model.AutoCompleteAttributes.AutoFill.GetValueOrDefault(false), new { title = \"AutoFill\" })%>\n            </li>\n            <li>\n                allow <strong>multiple</strong> values\n                <%= Html.CheckBox(\"AutoCompleteAttributes.AllowMultipleValues\", Model.AutoCompleteAttributes.AllowMultipleValues.GetValueOrDefault(false), new { title = \"AllowMultipleValues\" })%>\n            </li>\n        </ul>\n        <button type=\"submit\" class=\"t-button t-state-default\">Apply</button>\n    <% } %>\n\n</asp:content>\n\n<asp:content ID=\"Content1\" contentPlaceHolderID=\"HeadContent\" runat=\"server\">\n    <style type=\"text/css\">\n        \n        #AutoComplete\n        {\n            clear: both;\n            margin-bottom: 280px;\n            float: left;\n        }\n        \n        #ComboBox\n        {\n            margin-bottom: 280px;\n            float: left;\n        }\n               \n        .example .configurator\n        {\n            width: 400px;\n            float: left;\n            margin: 0 0 0 15em;\n            display: inline;\n        }\n        \n        .configurator p\n        {\n            margin: 0;\n            padding: .4em 0;\n        }\n        \n        .configurator li\n        {\n            padding-bottom: 3px;\n        }\n        \n        .configurator .t-dropdown\n        {\n            vertical-align: middle;\n        }\n       \n    </style>\n</asp:content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase16.cshtml",
    "content": "﻿@model Telerik.Web.Mvc.Examples.ComboBoxFilteringModel\n\n\n\n    @(Html.Telerik().ComboBox()\n                      .Name(\"ComboBox\")\n                      .AutoFill(Model.ComboBoxAttributes.AutoFill.Value)\n                      .BindTo(new SelectList(Model.Products, \"ProductID\", \"ProductName\"))\n                      .Filterable(filtering =>\n                      {\n                          if (Model.ComboBoxAttributes.FilterMode != 0)\n                          {\n                              filtering.FilterMode((AutoCompleteFilterMode)Enum.Parse(typeof(AutoCompleteFilterMode), Model.ComboBoxAttributes.FilterMode.ToString()));\n                              filtering.MinimumChars(Model.ComboBoxAttributes.MinimumChars.Value);\n                          }\n                      })\n                      .HighlightFirstMatch(Model.ComboBoxAttributes.HighlightFirst.Value)\n    )\n    \n    @using (Html.Configurator(\"The ComboBox should...\")\n                .PostTo(\"FilteringClient\", \"ComboBox\")\n                .Begin())\n       {\n        <ul>\n            <li>\n                have <strong>filter mode</strong>&nbsp;\n                @{ Html.Telerik().DropDownList()\n                                 .Name(\"ComboBoxAttributes.FilterMode\")\n                                 .HtmlAttributes(new { style = \"width:100px\" })\n                                 .Items(items =>\n                                 {\n                                     items.Add().Text(\"None\").Value(\"0\");\n                                     items.Add().Text(\"StartsWith\").Value(\"1\");\n                                     items.Add().Text(\"Contains\").Value(\"2\");\n                                 })\n                                 .SelectedIndex(Model.ComboBoxAttributes.FilterMode.Value)\n                                 .ClientEvents(events =>\n                                     events.OnChange(@<text>\n                                     \n                                         function(e) {\n                                             var textbox = $('#ComboBoxAttributes_MinimumChars').data('tTextBox');\n                                             if(e.value == 0) textbox.disable();\n                                             else textbox.enable();\n                                         }\n                                     \n                                     </text>)\n                                 ).Render();\n                }\n            </li>\n            <li>\n                <strong>start filtering</strong> after\n                @{ Html.Telerik().IntegerTextBoxFor(m => m.ComboBoxAttributes.MinimumChars)\n                                 .InputHtmlAttributes(new { style = \"width: 60px\" })\n                                 .MinValue(0)\n                                 .MaxValue(1000)\n                                 .ClientEvents(events =>\n                                     events.OnLoad(@<text>                                \n                                     \n                                         function(e) {\n                                             var dropDownList = $('#ComboBoxAttributes_FilterMode').data('tDropDownList');\n                                             if(dropDownList.index == 0) $(this).data('tTextBox').disable();\n                                         }\n                                     \n                                 </text>)\n                                 ).Render();\n                }\n                chars            \n            </li>\n            <li>\n                <strong>highlight</strong> first item\n                @Html.CheckBox(\"ComboBoxAttributes.HighlightFirst\", Model.ComboBoxAttributes.HighlightFirst.GetValueOrDefault(false), new { title = \"HighlightFirst\" })\n            </li>\n            <li>\n                <strong>auto-filling</strong> text\n                @Html.CheckBox(\"ComboBoxAttributes.AutoFill\", Model.ComboBoxAttributes.AutoFill.GetValueOrDefault(false), new { title = \"AutoFill\" })\n            </li>\n        </ul>\n        <button type=\"submit\" class=\"t-button t-state-default\">Apply</button>\n    }\n    \n\n    @(Html.Telerik().AutoComplete()\n                      .Name(\"AutoComplete\")\n                      .AutoFill(Model.AutoCompleteAttributes.AutoFill.Value)\n                      .BindTo(Model.Products.Select(p => p.ProductName))\n                      .Filterable(filtering =>\n                      {\n                            filtering.FilterMode((AutoCompleteFilterMode)Enum.Parse(typeof(AutoCompleteFilterMode), Model.AutoCompleteAttributes.FilterMode.ToString()));\n                            filtering.MinimumChars(Model.AutoCompleteAttributes.MinimumChars.Value);\n                      })\n                      .HighlightFirstMatch(Model.AutoCompleteAttributes.HighlightFirst.Value)\n                      .Multiple( multi => multi.Enabled(Model.AutoCompleteAttributes.AllowMultipleValues.Value))\n                      .Encode(false)\n    )\n    \n    @using (Html.Configurator(\"The AutoComplete should...\")\n                .PostTo(\"FilteringClient\", \"ComboBox\")\n                .Begin())\n       { \n        <ul>\n            <li>\n                have <strong>filter mode</strong>&nbsp;\n                @(Html.Telerik().DropDownList()\n                                  .Name(\"AutoCompleteAttributes.FilterMode\")\n                                  .HtmlAttributes(new { style = \"width:100px\" })\n                                  .Items(items =>\n                                  {\n                                      items.Add().Text(\"StartsWith\").Value(\"1\");\n                                      items.Add().Text(\"Contains\").Value(\"2\");\n                                  })\n                                  .SelectedIndex(Model.AutoCompleteAttributes.FilterMode.Value - 1)\n                )\n            </li>\n            <li>\n                <strong>start filtering</strong> after\n                @(Html.Telerik().IntegerTextBoxFor(m => m.AutoCompleteAttributes.MinimumChars)\n                                  .InputHtmlAttributes(new { style = \"width: 60px\" })\n                                  .MinValue(1)\n                                  .MaxValue(1000)\n                )\n                chars            \n            </li>\n            <li>\n                <strong>highlight</strong> first item\n                @Html.CheckBox(\"AutoCompleteAttributes.HighlightFirst\", Model.AutoCompleteAttributes.HighlightFirst.GetValueOrDefault(false), new { title = \"HighlightFirst\" })\n            </li>\n            <li>\n                <strong>auto-filling</strong> text\n                @Html.CheckBox(\"AutoCompleteAttributes.AutoFill\", Model.AutoCompleteAttributes.AutoFill.GetValueOrDefault(false), new { title = \"AutoFill\" })\n            </li>\n            <li>\n                allow <strong>multiple</strong> values\n                @Html.CheckBox(\"AutoCompleteAttributes.AllowMultipleValues\", Model.AutoCompleteAttributes.AllowMultipleValues.GetValueOrDefault(false), new { title = \"AllowMultipleValues\" })\n            </li>\n        </ul>\n        <button type=\"submit\" class=\"t-button t-state-default\">Apply</button>\n     } \n\n\n\n@section HeadContent {\n\n    <style type=\"text/css\">\n        \n        #AutoComplete\n        {\n            clear: both;\n            margin-bottom: 280px;\n            float: left;\n        }\n        \n        #ComboBox\n        {\n            margin-bottom: 280px;\n            float: left;\n        }\n               \n        .example .configurator\n        {\n            width: 400px;\n            float: left;\n            margin: 0 0 0 15em;\n            display: inline;\n        }\n        \n        .configurator p\n        {\n            margin: 0;\n            padding: .4em 0;\n        }\n        \n        .configurator li\n        {\n            padding-bottom: 3px;\n        }\n        \n        .configurator .t-dropdown\n        {\n            vertical-align: middle;\n        }\n       \n    </style>\n\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase17.aspx.txt.skip",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<EmployeeDto>\" %>\n\n<asp:content contentplaceholderid=\"MainContent\" runat=\"server\">\n\n    <% Html.Telerik().Editor()\n            .Name(\"Editor\")\n            .Value(() =>\n            {   %>\n                &lt;p&gt;\n                    &lt;img src=&quot;<%= Url.Content(\"~/Content/Editor/editor.png\")%>&quot;\n                            alt=&quot;Editor for ASP.NET MVC logo&quot;\n                            style=&quot;display:block;margin-left:auto;margin-right:auto;&quot; /&gt;\n\n                    Telerik Editor for ASP.NET MVC allows your users to edit HTML in a familiar,\n                    user-friendly way.&lt;br /&gt;\n                    In this version, the Editor provides the core HTML editing engine, which includes\n                    basic text formatting, hyperlinks, lists, and image handling.\n                    The extension &lt;strong&gt;outputs identical HTML&lt;/strong&gt;\n                    across all major browsers, follows accessibility standards\n                    and provides an extended programming API for content manipulation.\n                &lt;/p&gt;\n                <% \n            })\n            .Tools(tools => tools\n                .Clear()\n                .Custom(settings => settings.HtmlAttributes(new { @class = \"t-html\" }))\n                .Separator()\n                .Custom(settings => settings.Template(() =>\n                    {\n                        Html.Telerik().DropDownList()\n                            .Name(\"Languages\")\n                            .Items(items =>\n                            {\n                                items.Add().Text(\"English\").Value(\"en\");\n                                items.Add().Text(\"Spanish\").Value(\"es\");\n                                items.Add().Text(\"German\").Value(\"de\");\n                                items.Add().Text(\"French\").Value(\"fr\");\n                                items.Add().Text(\"Italian\").Value(\"it\");\n                            })\n                            .ClientEvents(events => events.OnChange(\"onLanguageChange\"))\n                            .Render();\n                    }))\n            )\n            .Render();\n    %>\n\n    <script type=\"text/javascript\">\n\n        function onLanguageChange() {\n            var editor = $('#Editor').data('tEditor');\n            var html = editor.value();\n            var $dropdown = $(this);\n            var dropDown = $dropdown.data('tDropDownList');\n            var language = dropDown.value();\n\n            $dropdown.find('.t-arrow-down').addClass('t-loading');\n\n            $.ajax({\n                url: 'http://ajax.googleapis.com/ajax/services/language/translate',\n                dataType: 'jsonp',\n                data: { \n                    q : html.substr(0, 800),\n                    v: '1.0',\n                    langpair: '|' + language\n                },\n                error: function() {\n                    $dropdown.find('.t-arrow-down').removeClass('t-loading');\n                    alert(error);\n                },\n                success: function(response) {\n                    $dropdown.find('.t-arrow-down').removeClass('t-loading');\n                    if (response.responseStatus != 200) {\n                        alert('Translation error: ' + response.responseDetails);\n                        return false;\n                    }\n                \n                    editor.value(response.responseData.translatedText);\n                }\n          }); \n        }\n\n        var htmlSourcePopup;\n\n        function showHtml(e) {\n            e.stopPropagation();\n            e.preventDefault();\n        \n            var editor = $('#Editor').data('tEditor');\n            var html = editor.value();\n\n            if (!htmlSourcePopup) {\n                htmlSourcePopup =\n                    $('<div class=\"html-view\">' +\n                          '<div class=\"textarea t-state-default\"><textarea></textarea></div>' +\n                          '<div class=\"t-button-wrapper\">' + \n                              '<button id=\"htmlCancel\" class=\"t-button t-state-default\">Cancel</button>' +\n                              '<button id=\"htmlUpdate\" class=\"t-button t-state-default\">Update</button>' +\n                          '</div>' +\n                      '</div>')\n                    .css('display', 'none')\n                  .tWindow({\n                        title: 'View Generated HTML',\n                        modal: true, \n                        resizable: false, \n                        draggable: true,\n                        width: 700,\n                        onLoad: function() {\n                            var $popup = $(this);\n                            $popup.find('.textarea')\n                                    .css('width', function() {\n                                        return 700 - (this.offsetWidth - $(this).width());\n                                    })\n                                    .focus()\n                                  .end()\n                                  .find('#htmlCancel')\n                                    .click(function() {\n                                        htmlSourcePopup.close();\n                                    })\n                                  .end()\n                                  .find('#htmlUpdate')\n                                    .click(function() {\n                                        var value = $popup.find('textarea').val();\n                                        editor.value(value);\n                                        htmlSourcePopup.close();\n                                    });\n                        },\n                        onClose: function() {\n                            editor.focus();\n                        },\n                        effects: $.telerik.fx.toggle.defaults()\n                })\n                .data('tWindow');\n            }\n\n            $(htmlSourcePopup.element).find('textarea').text(html);\n\n            htmlSourcePopup.center().open();\n        }\n\n    </script>\n\n    <!-- attach handler for html viewer -->\n    <% Html.Telerik().ScriptRegistrar().OnDocumentReady(() => { %>\n            $('.t-html').click(showHtml);\n    <% }); %>\n\n</asp:content>\n\n<asp:Content ContentPlaceHolderID=\"HeadContent\" runat=\"server\">\n    <style type=\"text/css\">\n        .t-editor .t-html\n        {\n            background-image: url('<%= Url.Content(\"~/Content/Editor/CustomTools/insert-html-icon.png\") %>');\n        }\n        \n        .html-view .t-button-wrapper\n        {\n            padding: .5em 0;\n        }\n        \n        #htmlCancel\n        {\n            float: right;\n        }\n        \n        .textarea\n        {\n            border-width: 1px;\n            border-style: solid;\n        }\n        \n        .textarea textarea\n        {\n             margin: 0;\n             padding: 0;\n             border: 0;\n             font: normal 12px Consolas,Courier New,monospace;\n             width: 100%;\n             height: 300px;\n        }\n    </style>\n</asp:Content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase17.cshtml",
    "content": "﻿@model EmployeeDto\n\n\n\n    @{ Html.Telerik().Editor()\n            .Name(\"Editor\")\n            .Value(@<text>   \n                &lt;p&gt;\n                    &lt;img src=&quot;@Url.Content(\"~/Content/Editor/editor.png\")&quot;\n                            alt=&quot;Editor for ASP.NET MVC logo&quot;\n                            style=&quot;display:block;margin-left:auto;margin-right:auto;&quot; /&gt;\n\n                    Telerik Editor for ASP.NET MVC allows your users to edit HTML in a familiar,\n                    user-friendly way.&lt;br /&gt;\n                    In this version, the Editor provides the core HTML editing engine, which includes\n                    basic text formatting, hyperlinks, lists, and image handling.\n                    The extension &lt;strong&gt;outputs identical HTML&lt;/strong&gt;\n                    across all major browsers, follows accessibility standards\n                    and provides an extended programming API for content manipulation.\n                &lt;/p&gt;\n                 \n            </text>)\n            .Tools(tools => tools\n                .Clear()\n                .Custom(settings => settings.HtmlAttributes(new { @class = \"t-html\" }))\n                .Separator()\n                .Custom(settings => settings.Template(() =>\n                    {\n                        Html.Telerik().DropDownList()\n                            .Name(\"Languages\")\n                            .Items(items =>\n                            {\n                                items.Add().Text(\"English\").Value(\"en\");\n                                items.Add().Text(\"Spanish\").Value(\"es\");\n                                items.Add().Text(\"German\").Value(\"de\");\n                                items.Add().Text(\"French\").Value(\"fr\");\n                                items.Add().Text(\"Italian\").Value(\"it\");\n                            })\n                            .ClientEvents(events => events.OnChange(\"onLanguageChange\"))\n                            .Render();\n                    }))\n            )\n            .Render();\n    }\n\n    <script type=\"text/javascript\">\n\n        function onLanguageChange() {\n            var editor = $('#Editor').data('tEditor');\n            var html = editor.value();\n            var $dropdown = $(this);\n            var dropDown = $dropdown.data('tDropDownList');\n            var language = dropDown.value();\n\n            $dropdown.find('.t-arrow-down').addClass('t-loading');\n\n            $.ajax({\n                url: 'http://ajax.googleapis.com/ajax/services/language/translate',\n                dataType: 'jsonp',\n                data: { \n                    q : html.substr(0, 800),\n                    v: '1.0',\n                    langpair: '|' + language\n                },\n                error: function() {\n                    $dropdown.find('.t-arrow-down').removeClass('t-loading');\n                    alert(error);\n                },\n                success: function(response) {\n                    $dropdown.find('.t-arrow-down').removeClass('t-loading');\n                    if (response.responseStatus != 200) {\n                        alert('Translation error: ' + response.responseDetails);\n                        return false;\n                    }\n                \n                    editor.value(response.responseData.translatedText);\n                }\n          }); \n        }\n\n        var htmlSourcePopup;\n\n        function showHtml(e) {\n            e.stopPropagation();\n            e.preventDefault();\n        \n            var editor = $('#Editor').data('tEditor');\n            var html = editor.value();\n\n            if (!htmlSourcePopup) {\n                htmlSourcePopup =\n                    $('<div class=\"html-view\">' +\n                          '<div class=\"textarea t-state-default\"><textarea></textarea></div>' +\n                          '<div class=\"t-button-wrapper\">' + \n                              '<button id=\"htmlCancel\" class=\"t-button t-state-default\">Cancel</button>' +\n                              '<button id=\"htmlUpdate\" class=\"t-button t-state-default\">Update</button>' +\n                          '</div>' +\n                      '</div>')\n                    .css('display', 'none')\n                  .tWindow({\n                        title: 'View Generated HTML',\n                        modal: true, \n                        resizable: false, \n                        draggable: true,\n                        width: 700,\n                        onLoad: function() {\n                            var $popup = $(this);\n                            $popup.find('.textarea')\n                                    .css('width', function() {\n                                        return 700 - (this.offsetWidth - $(this).width());\n                                    })\n                                    .focus()\n                                  .end()\n                                  .find('#htmlCancel')\n                                    .click(function() {\n                                        htmlSourcePopup.close();\n                                    })\n                                  .end()\n                                  .find('#htmlUpdate')\n                                    .click(function() {\n                                        var value = $popup.find('textarea').val();\n                                        editor.value(value);\n                                        htmlSourcePopup.close();\n                                    });\n                        },\n                        onClose: function() {\n                            editor.focus();\n                        },\n                        effects: $.telerik.fx.toggle.defaults()\n                })\n                .data('tWindow');\n            }\n\n            $(htmlSourcePopup.element).find('textarea').text(html);\n\n            htmlSourcePopup.center().open();\n        }\n\n    </script>\n\n    <!-- attach handler for html viewer -->\n    @{ Html.Telerik().ScriptRegistrar().OnDocumentReady(@<text> \n            $('.t-html').click(showHtml);\n     </text>); }\n\n\n\n@section HeadContent {\n\n    <style type=\"text/css\">\n        .t-editor .t-html\n        {\n            background-image: url('@Url.Content(\"~/Content/Editor/CustomTools/insert-html-icon.png\") ');\n        }\n        \n        .html-view .t-button-wrapper\n        {\n            padding: .5em 0;\n        }\n        \n        #htmlCancel\n        {\n            float: right;\n        }\n        \n        .textarea\n        {\n            border-width: 1px;\n            border-style: solid;\n        }\n        \n        .textarea textarea\n        {\n             margin: 0;\n             padding: 0;\n             border: 0;\n             font: normal 12px Consolas,Courier New,monospace;\n             width: 100%;\n             height: 300px;\n        }\n    </style>\n\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase18.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<EmployeeDto>\" %>\n\n<asp:content contentplaceholderid=\"MainContent\" runat=\"server\">\n\n    <% using (Html.Configurator(\"Validation summary\").Begin()) { %>\n        <%= Html.ValidationSummary() %>\n    <% } %>\n    \n    <% using ( Html.BeginForm() ) { %>\n        <div class=\"editing-section\">\n            <div class=\"section-title\">Edit Customer</div>\n\n            <ul id=\"field-list\">\n                <li>\n                    <%= Html.LabelFor(e => e.FirstName) %>\n                    <%= Html.TextBoxFor(e => e.FirstName) %>\n                    <div class=\"error\"><%= Html.ValidationMessageFor(e => e.FirstName, \"The FirstName field is required.\")%></div>\n                </li>\n                <li>\n                    <%= Html.LabelFor(e => e.LastName) %>\n                    <%= Html.TextBoxFor(e => e.LastName) %>\n                    <div class=\"error\"><%= Html.ValidationMessageFor(e => e.LastName, \"The LastName field is required.\")%></div>\n                </li>\n                <li>\n                    <%= Html.LabelFor(e => e.Notes)%>\n                    <%= Html.Telerik().Editor()\n                            .Name(\"Notes\")\n                            .HtmlAttributes(new { style = \"float: left; width: 345px;\" })\n                            .Tools(tools => tools\n                                .Clear()\n                                .Bold().Italic().Underline()\n                                .Separator()\n                                .CreateLink().Unlink()\n                            )\n                    %>\n                    <div class=\"error\"><%= Html.ValidationMessageFor(e => e.Notes, \"The Notes field is required.\")%></div>\n                </li>\n                <li class=\"action-row\">\n                    <button class=\"t-button t-state-default\" type=\"submit\">Save</button>\n                </li>\n            </ul>\n        </div>\n    <% } %> \n\n    <% if (ViewData[\"notes\"] != null)\n       { %>\n       <p><strong>FirstName : <%= ViewData[\"FirstName\"]%></strong></p>\n       <p><strong>LastName : <%= ViewData[\"LastName\"]%></strong></p>\n       <p><strong>Notes : <%= HttpUtility.HtmlEncode((string)ViewData[\"Notes\"]) %></strong></p>\n    <% } %>\n\n</asp:content>\n\n<asp:content contentplaceholderid=\"HeadContent\" runat=\"server\">\n\n    <style type=\"text/css\">\n        .editing-section\n        {\n            width: 700px;\n            margin: 0 auto;\n        }\n        \n        .section-title\n        {\n            font: 24px Arial,Helvetica,sans-serif;\n            border-bottom: 1px solid #989898;\n        }\n        \n        #field-list\n        {\n            border-top: 1px solid #d1d1d1;\n            list-style-type: none;\n            margin-top: 0;\n            padding: 40px 0 0;\n        }\n        \n        #field-list .field\n        {\n            list-style-type: none;\n            overflow: hidden;\n            white-space: nowrap;\n        }\n        \n        #field-list label\n        {\n            float: left;\n            width: 120px; text-align: right; padding-right: 5px;\n            vertical-align: top;\n            padding-top: 2px;\n        }\n        \n        #field-list input,\n        #field-list textarea\n        {\n            font: normal 12px Tahoma;\n        }\n        \n        #field-list .error\n        {\n            color: red;\n            clear: both;\n            margin-left: 125px;\n            font: 10px Arial,Helvetica,sans-serif;\n            height: 15px;\n        }\n        \n        #field-list .action-row { width: 470px; padding-top: 1.5em; height: 2em; }\n        #field-list .action-row .t-button { float:right; width:60px; }\n    </style>\n\n</asp:content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase18.cshtml",
    "content": "﻿@model EmployeeDto\n\n\n\n    @using (Html.Configurator(\"Validation summary\").Begin()) { \n        @Html.ValidationSummary() \n     } \n    \n    @using ( Html.BeginForm() ) { \n        <div class=\"editing-section\">\n            <div class=\"section-title\">Edit Customer</div>\n\n            <ul id=\"field-list\">\n                <li>\n                    @Html.LabelFor(e => e.FirstName) \n                    @Html.TextBoxFor(e => e.FirstName) \n                    <div class=\"error\">@Html.ValidationMessageFor(e => e.FirstName, \"The FirstName field is required.\")</div>\n                </li>\n                <li>\n                    @Html.LabelFor(e => e.LastName) \n                    @Html.TextBoxFor(e => e.LastName) \n                    <div class=\"error\">@Html.ValidationMessageFor(e => e.LastName, \"The LastName field is required.\")</div>\n                </li>\n                <li>\n                    @Html.LabelFor(e => e.Notes)\n                    @(Html.Telerik().Editor()\n                            .Name(\"Notes\")\n                            .HtmlAttributes(new { style = \"float: left; width: 345px;\" })\n                            .Tools(tools => tools\n                                .Clear()\n                                .Bold().Italic().Underline()\n                                .Separator()\n                                .CreateLink().Unlink()\n                            )\n                    )\n                    <div class=\"error\">@Html.ValidationMessageFor(e => e.Notes, \"The Notes field is required.\")</div>\n                </li>\n                <li class=\"action-row\">\n                    <button class=\"t-button t-state-default\" type=\"submit\">Save</button>\n                </li>\n            </ul>\n        </div>\n     }  \n\n    @if (ViewData[\"notes\"] != null)\n       { \n       <p><strong>FirstName : @ViewData[\"FirstName\"]</strong></p>\n       <p><strong>LastName : @ViewData[\"LastName\"]</strong></p>\n       <p><strong>Notes : @ViewData[\"Notes\"]</strong></p>\n     } \n\n\n\n@section HeadContent {\n\n\n    <style type=\"text/css\">\n        .editing-section\n        {\n            width: 700px;\n            margin: 0 auto;\n        }\n        \n        .section-title\n        {\n            font: 24px Arial,Helvetica,sans-serif;\n            border-bottom: 1px solid #989898;\n        }\n        \n        #field-list\n        {\n            border-top: 1px solid #d1d1d1;\n            list-style-type: none;\n            margin-top: 0;\n            padding: 40px 0 0;\n        }\n        \n        #field-list .field\n        {\n            list-style-type: none;\n            overflow: hidden;\n            white-space: nowrap;\n        }\n        \n        #field-list label\n        {\n            float: left;\n            width: 120px; text-align: right; padding-right: 5px;\n            vertical-align: top;\n            padding-top: 2px;\n        }\n        \n        #field-list input,\n        #field-list textarea\n        {\n            font: normal 12px Tahoma;\n        }\n        \n        #field-list .error\n        {\n            color: red;\n            clear: both;\n            margin-left: 125px;\n            font: 10px Arial,Helvetica,sans-serif;\n            height: 15px;\n        }\n        \n        #field-list .action-row { width: 470px; padding-top: 1.5em; height: 2em; }\n        #field-list .action-row .t-button { float:right; width:60px; }\n    </style>\n\n\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase19.aspx.txt.skip",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<Order>>\" %>\n\n\n<asp:content contentplaceholderid=\"MainContent\" runat=\"server\">\n\n<% Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID)\n                   .ClientTemplate(\"<input type='checkbox' name='checkedRecords' value='<#= OrderID #>' />\")\n                   .Title(\"\")\n                   .Width(36)\n                   .HtmlAttributes(new { style = \"text-align:center\" });\n            \n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => dataBinding.Ajax()\n                .Select(\"_CheckBoxesAjax\", \"Grid\"))\n        .Scrollable()\n        .Pageable()\n        .Render();\n%>\n\n<p>\n    <button class=\"t-button t-state-default\" onclick=\"displayCheckedOrders()\">Display checked orders</button>\n    <script type=\"text/javascript\">\n        function displayCheckedOrders() {\n            var $checkedRecords = $(':checked');\n            \n            if ($checkedRecords.length < 1) {\n                alert('Check a few grid rows first.');\n                return;\n            }\n\n            $('#result').load('<%= Url.Action(\"DisplayCheckedOrders\", \"Grid\") %>',\n                {\n                    checkedRecords: $checkedRecords.map(function() { return this.value; })\n                });\n        }\n    </script>\n</p>\n\n<div id=\"result\">\n</div>\n</asp:content>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase19.cshtml",
    "content": "﻿@model IEnumerable<Order>\n\n\n\n\n@{ Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID)\n                   .ClientTemplate(\"<input type='checkbox' name='checkedRecords' value='<#= OrderID #>' />\")\n                   .Title(\"\")\n                   .Width(36)\n                   .HtmlAttributes(new { style = \"text-align:center\" });\n            \n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => dataBinding.Ajax()\n                .Select(\"_CheckBoxesAjax\", \"Grid\"))\n        .Scrollable()\n        .Pageable()\n        .Render();\n}\n\n<p>\n    <button class=\"t-button t-state-default\" onclick=\"displayCheckedOrders()\">Display checked orders</button>\n    <script type=\"text/javascript\">\n        function displayCheckedOrders() {\n            var $checkedRecords = $(':checked');\n            \n            if ($checkedRecords.length < 1) {\n                alert('Check a few grid rows first.');\n                return;\n            }\n\n            $('#result').load('@Url.Action(\"DisplayCheckedOrders\", \"Grid\")',\n                {\n                    checkedRecords: $checkedRecords.map(function() { return this.value; })\n                });\n        }\n    </script>\n</p>\n\n<div id=\"result\">\n</div>\n\n\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase20.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<Order>>\" %>\n\n<asp:Content ContentPlaceHolderID=\"MainContent\" runat=\"server\">\n    <%Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .ToolBar(toolBar => toolBar.Template(() =>\n                                    { %>\n                                    <label class=\"customer-label\" for=\"Customers-input\">\n                                        Show orders for customer:</label>\n                                        <% Html.Telerik().ComboBox()\n                                                .Name(\"Customers\")\n                                                .DataBinding(binding => binding.Ajax().Select(\"_GetCustomers\", \"Grid\"))\n                                                .AutoFill(true)\n                                                .Filterable(filtering =>\n                                                {\n                                                    filtering.FilterMode(AutoCompleteFilterMode.StartsWith);\n                                                })\n                                                .HtmlAttributes(new { style = \"width: 300px\" })\n                                                .HighlightFirstMatch(true)\n                                                .ClientEvents(events => events.OnChange(\"customerChange\"))\n                                                .Render();\n                                        %>\n                                     <% }))\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.Customer.CompanyName);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(100);\n        })\n        .DataBinding(dataBinding => dataBinding.Ajax().Select(\"_CustomToolBar\", \"Grid\"))\n        .Pageable()\n        .Sortable()\n        .Render();\n    %>\n    <script type=\"text/javascript\">\n        function customerChange() {\n            var customerID = $(this).data(\"tComboBox\").value();\n\n            $(\"#Grid\").data(\"tGrid\").rebind({\n                customerID: customerID\n            });\n        }       \n    </script>\n</asp:Content>\n<asp:Content ID=\"Content1\" ContentPlaceHolderID=\"HeadContent\" runat=\"server\">\n    <style type=\"text/css\">\n        .customer-label\n        {\n            vertical-align: middle;\n            padding-right: .4em;\n        }\n        #Customers\n        {\n            vertical-align: middle;\n        }\n    </style>\n</asp:Content>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase20.cshtml",
    "content": "﻿@model IEnumerable<Order>\n\n@{Html.Telerik().Grid(Model)\n    .Name(\"Grid\")\n    .ToolBar(toolBar => toolBar.Template(@<text> \n                                <label class=\"customer-label\" for=\"Customers-input\">\n                                    Show orders for customer:</label>\n                                    @{ Html.Telerik().ComboBox()\n                                            .Name(\"Customers\")\n                                            .DataBinding(binding => binding.Ajax().Select(\"_GetCustomers\", \"Grid\"))\n                                            .AutoFill(true)\n                                            .Filterable(filtering =>\n                                            {\n                                                filtering.FilterMode(AutoCompleteFilterMode.StartsWith);\n                                            })\n                                            .HtmlAttributes(new { style = \"width: 300px\" })\n                                            .HighlightFirstMatch(true)\n                                            .ClientEvents(events => events.OnChange(\"customerChange\"))\n                                            .Render();\n                                    }\n                                    </text>))\n    .Columns(columns =>\n    {\n        columns.Bound(o => o.OrderID).Width(100);\n        columns.Bound(o => o.Customer.CompanyName);\n        columns.Bound(o => o.ShipAddress);\n        columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(100);\n    })\n    .DataBinding(dataBinding => dataBinding.Ajax().Select(\"_CustomToolBar\", \"Grid\"))\n    .Pageable()\n    .Sortable()\n    .Render();\n}\n<script type=\"text/javascript\">\n    function customerChange() {\n        var customerID = $(this).data(\"tComboBox\").value();\n\n        $(\"#Grid\").data(\"tGrid\").rebind({\n            customerID: customerID\n        });\n    }       \n</script>\n\n@section HeadContent {\n\n    <style type=\"text/css\">\n        .customer-label\n        {\n            vertical-align: middle;\n            padding-right: .4em;\n        }\n        #Customers\n        {\n            vertical-align: middle;\n        }\n    </style>\n\n}\n\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase21.aspx.txt.skip",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<Employee>>\" %>\n\n<asp:Content ContentPlaceHolderID=\"MainContent\" runat=\"server\">\n    <% Html.Telerik().Grid(Model)\n        .Name(\"Employees\")\n        .Columns(columns =>\n        {\n            columns.Bound(e => e.FirstName).Width(140);\n            columns.Bound(e => e.LastName).Width(140);\n            columns.Bound(e => e.Title).Width(200);\n            columns.Bound(e => e.Country).Width(200);\n            columns.Bound(e => e.City);\n        })\n        .DetailView(detailView => detailView.Template(e =>\n        {\n            %>\n                <%\n                    Html.Telerik().TabStrip()\n                        .Name(\"TabStrip_\" + e.EmployeeID)\n                        .SelectedIndex(0)\n                        .Items(items =>\n                        {\n                            items.Add().Text(\"Orders\").Content(() =>\n                            {\n                                %>\n                                    <%= Html.Telerik().Grid(e.Orders)\n                                           .Name(\"Orders_\" + e.EmployeeID)\n                                           .Columns(columns =>\n                                            {\n                                                columns.Bound(o => o.OrderID).Width(101);\n                                                columns.Bound(o => o.ShipCountry).Width(140);\n                                                columns.Bound(o => o.ShipAddress).Width(200);\n                                                columns.Bound(o => o.ShipName).Width(200);\n                                                columns.Bound(o => o.ShippedDate).Format(\"{0:d}\");\n                                            })\n                                           .Pageable()\n                                           .Sortable()\n                                    %>\n                                <%\n                            });\n                            items.Add().Text(\"Contact Information\").Content(() =>\n                            {\n                                %>\n                                    <div class=\"employee-details\">\n                                        <img src=\"<%= Url.Content(\"~/Content/Grid/Employees/\" + e.EmployeeID + \".jpg\") %>\" alt=\"<%= e.FirstName + \" \" + e.LastName %>\" />\n                                        <ul>\n                                            <li>\n                                                <label>Birth Date:</label><%= e.BirthDate.Value.ToString(\"d\") %>\n                                            </li>\n                                            <li>\n                                                <label>Country:</label><%= e.Country %>\n                                            </li>\n                                            <li>\n                                                <label>City:</label><%= e.City %>\n                                            </li>\n                                            <li>\n                                                <label>Address:</label><%= e.Address %>\n                                            </li>\n                                            <li>\n                                                <label>Home Phone:</label><%= e.HomePhone %>\n                                            </li>\n                                        </ul>\n                                    </div>\n                                <%\n                            });                                                       \n\n                        })\n                        .Render();\n                 %>\n            <%    \n        }))\n        .RowAction(row => \n        {\n            if (row.Index == 0)\n            {\n                row.DetailRow.Expanded = true;\n            }\n        })\n        .Pageable(paging => paging.PageSize(5))\n        .Sortable()\n        .Render();\n    %>\n</asp:Content>\n<asp:Content contentPlaceHolderID=\"HeadContent\" runat=\"server\">\n    <style type=\"text/css\">\n\t    .employee-details ul\n\t    {\n\t        list-style:none;\n            font-style:italic;\n            margin-left:80px;\n            margin-bottom: 20px;\n\t    }\n\t    .employee-details img\n\t    {\n\t        border: 1px solid #05679D;\n\t        float:left;\n\t    }\n\t    \n\t    .employee-details label\n\t    {\n\t        display:inline-block;\n\t        width:90px;\n\t        font-style:normal;\n\t        font-weight:bold;\n\t    }\n    </style>\n</asp:Content>"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase21.cshtml",
    "content": "﻿@model IEnumerable<Employee>\n\n\n@{ Html.Telerik().Grid(Model)\n    .Name(\"Employees\")\n    .Columns(columns =>\n    {\n        columns.Bound(e => e.FirstName).Width(140);\n        columns.Bound(e => e.LastName).Width(140);\n        columns.Bound(e => e.Title).Width(200);\n        columns.Bound(e => e.Country).Width(200);\n        columns.Bound(e => e.City);\n    })\n    .DetailView(detailView => detailView.Template(e =>\n    {            \n            Html.Telerik().TabStrip()\n                    .Name(\"TabStrip_\" + e.EmployeeID)\n                    .SelectedIndex(0)\n                    .Items(items =>\n                    {\n                        items.Add().Text(\"Orders\").Content(@<text>\n                                \n                                @(Html.Telerik().Grid(e.Orders)\n                                        .Name(\"Orders_\" + e.EmployeeID)\n                                        .Columns(columns =>\n                                        {\n                                            columns.Bound(o => o.OrderID).Width(101);\n                                            columns.Bound(o => o.ShipCountry).Width(140);\n                                            columns.Bound(o => o.ShipAddress).Width(200);\n                                            columns.Bound(o => o.ShipName).Width(200);\n                                            columns.Bound(o => o.ShippedDate).Format(\"{0:d}\");\n                                        })\n                                        .Pageable()\n                                        .Sortable()\n                                )\n                                \n                        </text>);\n                        items.Add().Text(\"Contact Information\").Content(@<text>\n                                \n                                <div class=\"employee-details\">\n                                    <img src=\"@Url.Content(\"~/Content/Grid/Employees/\" + e.EmployeeID + \".jpg\") \" alt=\"@e.FirstName + \" \" + e.LastName \" />\n                                    <ul>\n                                        <li>\n                                            <label>Birth Date:</label>@e.BirthDate.Value.ToString(\"d\") \n                                        </li>\n                                        <li>\n                                            <label>Country:</label>@e.Country \n                                        </li>\n                                        <li>\n                                            <label>City:</label>@e.City \n                                        </li>\n                                        <li>\n                                            <label>Address:</label>@e.Address \n                                        </li>\n                                        <li>\n                                            <label>Home Phone:</label>@e.HomePhone \n                                        </li>\n                                    </ul>\n                                </div>\n                                \n                        </text>);                                                       \n\n                    })\n                    .Render();\n    }))\n    .RowAction(row =>\n    {\n        if (row.Index == 0)\n        {\n            row.DetailRow.Expanded = true;\n        }\n    })\n    .Pageable(paging => paging.PageSize(5))\n    .Sortable()\n    .Render();\n}\n\n@section HeadContent {\n\n    <style type=\"text/css\">\n\t    .employee-details ul\n\t    {\n\t        list-style:none;\n            font-style:italic;\n            margin-left:80px;\n            margin-bottom: 20px;\n\t    }\n\t    .employee-details img\n\t    {\n\t        border: 1px solid #05679D;\n\t        float:left;\n\t    }\n\t    \n\t    .employee-details label\n\t    {\n\t        display:inline-block;\n\t        width:90px;\n\t        font-style:normal;\n\t        font-weight:bold;\n\t    }\n    </style>\n\n}\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase22.aspx.txt.skip",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<AggregatedProductModel>\" %>\n\n<asp:Content ContentPlaceHolderID=\"MainContent\" runat=\"server\">  \n\n    <% Html.BeginForm(); %>\n\n        <%  Html.Telerik().Grid(Model.Products)\n                .Name(\"Grid\")\n                .Columns(columns =>\n                {     \n                    columns.Template(p => {%>\n                                <input name=\"checkedRecords\" type=\"checkbox\" \n                                    value=\"<%=p.ProductID %>\" title=\"checkedRecords\"                         \n                                    <% if (Model.SelectedProducts.Any(sp => sp.ProductID == p.ProductID)) {\n                                        %> checked=\"checked\" <%\n                                        } %>\n                                    />\n                            <%})\n                            .HeaderTemplate(() => {%>\n                                <input type=\"checkbox\" title=\"check all records\" id=\"checkAllRecords\"\n                                    <% if (Model.SelectedProducts.Any()) { %> checked=\"checked\" <% } %>\n                                    />\n                            <%})\n                            .Width(50)\n                            .HeaderHtmlAttributes(new { style = \"text-align:center\" })\n                            .HtmlAttributes(new { style = \"text-align:center\" });\n                    \n                    columns.Bound(p => p.ProductID).Width(100);\n            \n                    columns.Bound(p => p.ProductName);\n            \n                    columns.Bound(p => p.QuantityPerUnit).Width(200);\n            \n                    columns.Template(t => {%>\n                                <table cellspacing=\"0\" class=\"data-row\">\n                                    <tr>\n                                        <td><%=t.UnitsOnOrder%></td>\n                                        <td><%=t.UnitsInStock%></td>\n                                    </tr>\n                                </table>\n                            <%})\n                            .HeaderTemplate(() => {%>\n                                <table cellspacing=\"0\" class=\"data-header\">\n                                    <tr>\n                                        <td colspan=\"2\"><strong>Units</strong></td>\n                                    </tr>\n                                    <tr>\n                                        <td>Ordered</td>\n                                        <td>In Stock</td>\n                                    </tr>\n                                </table>\n                            <%})\n                            .Width(200);\n                                    \n                    columns.Bound(p => p.UnitPrice)\n                            .FooterTemplate(() => {%>\n                                Total:<%= string.Format(\"{0:c}\", Model.TotalPrice)%>\n                            <%})\n                            .Width(100)\n                            .Format(\"{0:c}\");\n                })\n                .Pageable()\n                .Render();\n            %> \n\n        <% Html.Telerik().ScriptRegistrar().OnDocumentReady(() => {%>\n            /* attach event handler to \"check all\" checkbox */\n            $('#checkAllRecords').click(function checkAll() {\n                $(\"#Grid tbody input:checkbox\").attr(\"checked\", this.checked);            \n            });\n        <%}); %>\n                  \n        <p>\n            <button type=\"submit\" class=\"t-button t-state-default\">Display selected products</button>\n        </p>\n\n    <% Html.EndForm(); %>\n\n    <% if (Model.SelectedProducts.Any()) { %>\n      \n        <h3>Selected Products</h3>\n      \n        <%= Html.Telerik().Grid(Model.SelectedProducts)\n                .Name(\"CheckedProducts\")\n                .Columns(columns =>\n                {\n                    columns.Bound(p => p.ProductID).Width(100);\n                    columns.Bound(p => p.ProductName).Width(200);\n                    columns.Bound(p => p.UnitPrice).Width(100).Format(\"{0:c}\");\n                })\n                .Footer(false)\n        %>           \n    <%}%>\n\n</asp:Content>\n\n<asp:Content ContentPlaceHolderID=\"HeadContent\" runat=\"server\">\n\n    <style type=\"text/css\">\n        \n        .data-header,\n        .data-row\n        {\n            width: 100%;\n            margin: 0;\n            padding: 0;\n        }\n        \n        .data-header td,\n        .data-row td\n        {\n            width: 50%;\n            border: 0;\n            vertical-align: middle;\n            text-align: center;\n        }\n        \n    </style>\n\n</asp:Content>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase22.cshtml",
    "content": "﻿@model AggregatedProductModel\n\n@{ Html.BeginForm(); }\n\n    @{  Html.Telerik().Grid(Model.Products)\n            .Name(\"Grid\")\n            .Columns(columns =>\n            {     \n                columns.Template(\n                        @<text>\n                            <input name=\"checkedRecords\" type=\"checkbox\" \n                                value=\"@item.ProductID \" title=\"checkedRecords\"                         \n                                @if (Model.SelectedProducts.Any(sp => sp.ProductID == item.ProductID)) {\n                                        <text>checked=\"checked\"</text>\n                                    } \n                                />\n                        </text>\n                    )\n                    .HeaderTemplate(\n                        @<text>\n                            <input type=\"checkbox\" title=\"check all records\" id=\"checkAllRecords\"\n                                @if (Model.SelectedProducts.Any()) {  <text>checked=\"checked\"</text>  } \n                                />\n                        </text>\n                    )\n                    .Width(50)\n                    .HeaderHtmlAttributes(new { style = \"text-align:center\" })\n                    .HtmlAttributes(new { style = \"text-align:center\" });\n\n                columns.Bound(p => p.ProductID).Width(100);\n            \n                columns.Bound(p => p.ProductName);\n            \n                columns.Bound(p => p.QuantityPerUnit).Width(200);\n                    \n                columns.Template(\n                        @<text>                                                        \n                            <table cellspacing=\"0\" class=\"data-row\">\n                                <tr>\n                                    <td>@item.UnitsOnOrder</td>\n                                    <td>@item.UnitsInStock</td>\n                                </tr>\n                            </table>\n                        </text>)\n                    .HeaderTemplate(\n                        @<text>        \n                        <table cellspacing=\"0\" class=\"data-header\">\n                            <tr>\n                                <td colspan=\"2\"><strong>Units</strong></td>\n                            </tr>\n                            <tr>\n                                <td>Ordered</td>\n                                <td>In Stock</td>\n                            </tr>\n                        </table>\n                        </text>)\n                    .Width(200);\n                        \n                columns.Bound(p => p.UnitPrice)\n                    .FooterTemplate(\n                        @<text>\n                            Total:@string.Format(\"{0:c}\", Model.TotalPrice)\n                        </text>\n                    )\n                    .Width(100)\n                    .Format(\"{0:c}\");\n            })\n            .Pageable()\n            .Render();\n    }\n                             \n\n    @{ Html.Telerik().ScriptRegistrar().OnDocumentReady(@<text>\n        /* attach event handler to \"check all\" checkbox */\n        $('#checkAllRecords').click(function checkAll() {\n            $(\"#Grid tbody input:checkbox\").attr(\"checked\", this.checked);            \n        });\n    </text>); }\n                  \n    <p>\n        <button type=\"submit\" class=\"t-button t-state-default\">Display selected products</button>\n    </p>\n\n@{ Html.EndForm(); }\n\n@if (Model.SelectedProducts.Any()) { \n      \n    <h3>Selected Products</h3>\n      \n    @(Html.Telerik().Grid(Model.SelectedProducts)\n            .Name(\"CheckedProducts\")\n            .Columns(columns =>\n            {\n                columns.Bound(p => p.ProductID).Width(100);\n                columns.Bound(p => p.ProductName).Width(200);\n                columns.Bound(p => p.UnitPrice).Width(100).Format(\"{0:c}\");\n            })\n            .Footer(false)\n    )           \n}\n\n@section HeadContent {\n\n    <style type=\"text/css\">\n        \n        .data-header,\n        .data-row\n        {\n            width: 100%;\n            margin: 0;\n            padding: 0;\n        }\n        \n        .data-header td,\n        .data-row td\n        {\n            width: 50%;\n            border: 0;\n            vertical-align: middle;\n            text-align: center;\n        }\n        \n    </style>\n\n}\n\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase23.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" MasterPageFile=\"~/Views/Shared/Examples.Master\" %>\n\n<asp:Content ContentPlaceHolderID=\"MainContent\" runat=\"server\">\n\n\t<%  Html.Telerik().Window()\n            .Name(\"Window\")\n            .Title(\"Submit feedback\")\n            .Content(() => {%>\n                <% using (Html.BeginForm(\"popupform\", \"window\", FormMethod.Post, new { id = \"feedback-form\" }))\n                   { %>\n                        <p class=\"note\">This is just an example, sent data will <strong>not</strong> be saved.</p>\n\n                        <label for=\"name\">Name:</label>\n                        <%= Html.TextBox(\"name\") %>\n\n                        <label for=\"email\">E-mail:</label>\n                        <%= Html.TextBox(\"email\") %>\n\n                        <label for=\"comment-value\">Comments:</label>\n                        <%= Html.Telerik().Editor()\n                                .Name(\"comment\")\n                                .Tools(tools => tools\n                                    .Clear()\n                                    .Bold().Italic().Separator()\n                                    .InsertOrderedList().InsertUnorderedList().Separator()\n                                    .Indent().Outdent()\n                                )%>\n\n                        <div class=\"form-actions\">\n                            <button type=\"submit\" class=\"t-button t-state-default\">Submit feedback!</button>\n                        </div>\n\n                <% } %>\n            <%})\n            .Width(400)\n            .Draggable(true)\n            .Modal(true)\n            .Visible(false)\n            .Render();\n\t%>\n\n    <button id=\"feedback-open-button\" class=\"t-button t-state-default\">Submit feedback...</button>\n\n    <% if (ViewData[\"name\"] != null || ViewData[\"email\"] != null || ViewData[\"comment\"] != null) { %>\n        <div class=\"t-group\">\n            <h3>Feedback:</h3>\n    \n            <p>\n                Name: <%= ViewData[\"name\"] %><br />\n                E-mail: <%= ViewData[\"email\"] %><br />\n                Comment: <%= ViewData[\"comment\"] %>\n            </p>\n        </div>\n    <% } %>\n\n    <% Html.Telerik().ScriptRegistrar()\n           .OnDocumentReady(() =>\n           {%>\n               // open the initially hidden window when the button is clicked\n               $('#feedback-open-button')\n                    .click(function(e) {\n                        e.preventDefault();\n                        $('#Window').data('tWindow').center().open();\n                    });\n\n               // add button hovers\n               $('.t-button').live('mouseenter', $.telerik.buttonHover)\n                             .live('mouseleave', $.telerik.buttonLeave);\n           <%}); %>\n\n</asp:Content>\n\n<asp:Content ContentPlaceHolderID=\"HeadContent\" runat=\"server\">\n\n    <style type=\"text/css\">\n        \n        #feedback-open-button\n        {\n            height: 32px;\n            margin: 2em 0 4em;\n        }\n        \n        #feedback-form\n        {\n            padding: 0 1em 1em;\n        }\n        \n        #feedback-form label\n        {\n            display: block;\n            line-height: 25px;\n            margin-top: 1em;\n        }\n        \n        #feedback-form input\n        {\n            width: 370px;\n        }\n        \n        .form-actions\n        {\n            padding-top: 1em;\n            overflow: hidden;\n        }\n        \n        .form-actions button\n        {\n            float: right;\n        }\n        \n        .example .t-group\n        {\n            border-width: 1px;\n            border-style: solid;\n            padding: 0 1em 1em;\n        }\n        \n    </style>\n\n</asp:Content>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase23.cshtml",
    "content": "﻿@{  Html.Telerik().Window()\n        .Name(\"Window\")\n        .Title(\"Submit feedback\")\n        .Content(@<text>\n            @using (Html.BeginForm(\"popupform\", \"window\", FormMethod.Post, new { id = \"feedback-form\" }))\n                { \n                    <p class=\"note\">This is just an example, sent data will <strong>not</strong> be saved.</p>\n\n                    <label for=\"name\">Name:</label>\n                    @Html.TextBox(\"name\") \n\n                    <label for=\"email\">E-mail:</label>\n                    @Html.TextBox(\"email\") \n\n                    <label for=\"comment-value\">Comments:</label>\n                    @(Html.Telerik().Editor()\n                            .Name(\"comment\")\n                            .Tools(tools => tools\n                                .Clear()\n                                .Bold().Italic().Separator()\n                                .InsertOrderedList().InsertUnorderedList().Separator()\n                                .Indent().Outdent()\n                            ))\n\n                    <div class=\"form-actions\">\n                        <button type=\"submit\" class=\"t-button t-state-default\">Submit feedback!</button>\n                    </div>\n\n                }\n            </text>)\n        .Width(400)\n        .Draggable(true)\n        .Modal(true)\n        .Visible(false)\n        .Render();\n} \n            \n<button id=\"feedback-open-button\" class=\"t-button t-state-default\">Submit feedback...</button>\n\n@if (ViewData[\"name\"] != null || ViewData[\"email\"] != null || ViewData[\"comment\"] != null) { \n    <div class=\"t-group\">\n        <h3>Feedback:</h3>\n    \n        <p>\n            Name: @ViewData[\"name\"]<br />\n            E-mail: @ViewData[\"email\"]<br />\n            Comment: @ViewData[\"comment\"] \n        </p>\n    </div>\n}\n\n@{ Html.Telerik().ScriptRegistrar()\n        .OnDocumentReady(@<text>\n            // open the initially hidden window when the button is clicked\n            $('#feedback-open-button')\n                .click(function(e) {\n                    e.preventDefault();\n                    $('#Window').data('tWindow').center().open();\n                });\n\n            // add button hovers\n            $('.t-button').live('mouseenter', $.telerik.buttonHover)\n                            .live('mouseleave', $.telerik.buttonLeave);\n        </text>); }\n\n@section HeadContent {\n\n    <style type=\"text/css\">\n        \n        #feedback-open-button\n        {\n            height: 32px;\n            margin: 2em 0 4em;\n        }\n        \n        #feedback-form\n        {\n            padding: 0 1em 1em;\n        }\n        \n        #feedback-form label\n        {\n            display: block;\n            line-height: 25px;\n            margin-top: 1em;\n        }\n        \n        #feedback-form input\n        {\n            width: 370px;\n        }\n        \n        .form-actions\n        {\n            padding-top: 1em;\n            overflow: hidden;\n        }\n        \n        .form-actions button\n        {\n            float: right;\n        }\n        \n        .example .t-group\n        {\n            border-width: 1px;\n            border-style: solid;\n            padding: 0 1em 1em;\n        }\n        \n    </style>\n\n}\n\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase24.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<OrderDto>>\" %>\n\n<asp:content contentplaceholderid=\"maincontent\" runat=\"server\">\n<%-- Comment --%>\n<% using (Html.Configurator(\"The grid should...\")\n              .PostTo(\"FirstLook\", \"Grid\")\n              .Begin())\n   { %>\n\t<%--\n\tMulti-line\n\tcomment\n\t--%>\n    <ul>\n        <li><%= Html.CheckBox(\"ajax\", true, \"make <strong>AJAX</strong> requests\")%></li>\n        <li><%= Html.CheckBox(\"grouping\", true, \"allow <strong>grouping</strong> of data\")%></li>\n        <li><%= Html.CheckBox(\"filtering\", true, \"allow <strong>filtering</strong> of data\")%></li>\n        <li><%= Html.CheckBox(\"paging\", true, \"have <strong>pages</strong> with 10 items\")%></li>\n        <li><%= Html.CheckBox(\"scrolling\", true, \"show a <strong>scrollbar</strong> when there are many items\")%></li>\n        <li><%= Html.CheckBox(\"sorting\", true, \"allow <strong>sorting</strong> of data\")%></li>\n        <li><%= Html.CheckBox(\"showFooter\", true, \"show footer\")%></li>\n    </ul>\n    <button class=\"t-button t-state-default\" type=\"submit\">Apply</button>\n<% } %>\n\n<%= Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n\t\t{\n\t\t\tcolumns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => \n        {\n            dataBinding.Server().Select(\"FirstLook\", \"Grid\", new { ajax = ViewData[\"ajax\"] });\n            dataBinding.Ajax().Select(\"_FirstLook\", \"Grid\").Enabled((bool)ViewData[\"ajax\"]);\n        })\n        .Scrollable(scrolling => scrolling.Enabled((bool)ViewData[\"scrolling\"]))\n        .Sortable(sorting => sorting.Enabled((bool)ViewData[\"sorting\"]))\n        .Pageable(paging => paging.Enabled((bool)ViewData[\"paging\"]))\n        .Filterable(filtering => filtering.Enabled((bool)ViewData[\"filtering\"]))\n        .Groupable(grouping => grouping.Enabled((bool)ViewData[\"grouping\"]))\n        .Footer((bool)ViewData[\"showFooter\"])\n%>\n</asp:content>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase24.cshtml",
    "content": "﻿@model IEnumerable<OrderDto>\n@* Comment *@\n@using (Html.Configurator(\"The grid should...\")\n              .PostTo(\"FirstLook\", \"Grid\")\n              .Begin())\n              {\n\t@*\n\tMulti-line\n\tcomment\n\t*@\n    <ul>\n        <li>@Html.CheckBox(\"ajax\", true, \"make <strong>AJAX</strong> requests\")</li>\n        <li>@Html.CheckBox(\"grouping\", true, \"allow <strong>grouping</strong> of data\")</li>\n        <li>@Html.CheckBox(\"filtering\", true, \"allow <strong>filtering</strong> of data\")</li>\n        <li>@Html.CheckBox(\"paging\", true, \"have <strong>pages</strong> with 10 items\")</li>\n        <li>@Html.CheckBox(\"scrolling\", true, \"show a <strong>scrollbar</strong> when there are many items\")</li>\n        <li>@Html.CheckBox(\"sorting\", true, \"allow <strong>sorting</strong> of data\")</li>\n        <li>@Html.CheckBox(\"showFooter\", true, \"show footer\")</li>\n    </ul>\n    <button class=\"t-button t-state-default\" type=\"submit\">Apply</button>\n}\n@(Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => \n        {\n            dataBinding.Server().Select(\"FirstLook\", \"Grid\", new { ajax = ViewData[\"ajax\"] });\n            dataBinding.Ajax().Select(\"_FirstLook\", \"Grid\").Enabled((bool)ViewData[\"ajax\"]);\n        })\n        .Scrollable(scrolling => scrolling.Enabled((bool)ViewData[\"scrolling\"]))\n        .Sortable(sorting => sorting.Enabled((bool)ViewData[\"sorting\"]))\n        .Pageable(paging => paging.Enabled((bool)ViewData[\"paging\"]))\n        .Filterable(filtering => filtering.Enabled((bool)ViewData[\"filtering\"]))\n        .Groupable(grouping => grouping.Enabled((bool)ViewData[\"grouping\"]))\n        .Footer((bool)ViewData[\"showFooter\"])\n)"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase25.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<OrderDto>>\" %>\n<%@ Import Namespace=\"Project.Namespace.To.Models\" %>\n\n<asp:content contentplaceholderid=\"maincontent\" runat=\"server\">\n<% using (Html.Configurator(\"The grid should...\")\n              .PostTo(\"FirstLook\", \"Grid\")\n              .Begin())\n   { %>\n    <ul>\n        <li><%= Html.CheckBox(\"ajax\", true, \"make <strong>AJAX</strong> requests\")%></li>\n        <li><%= Html.CheckBox(\"grouping\", true, \"allow <strong>grouping</strong> of data\")%></li>\n        <li><%= Html.CheckBox(\"filtering\", true, \"allow <strong>filtering</strong> of data\")%></li>\n        <li><%= Html.CheckBox(\"paging\", true, \"have <strong>pages</strong> with 10 items\")%></li>\n        <li><%= Html.CheckBox(\"scrolling\", true, \"show a <strong>scrollbar</strong> when there are many items\")%></li>\n        <li><%= Html.CheckBox(\"sorting\", true, \"allow <strong>sorting</strong> of data\")%></li>\n        <li><%= Html.CheckBox(\"showFooter\", true, \"show footer\")%></li>\n    </ul>\n    <button class=\"t-button t-state-default\" type=\"submit\">Apply</button>\n<% } %>\n\n<%= Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n\t\t{\n\t\t\tcolumns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => \n        {\n            dataBinding.Server().Select(\"FirstLook\", \"Grid\", new { ajax = ViewData[\"ajax\"] });\n            dataBinding.Ajax().Select(\"_FirstLook\", \"Grid\").Enabled((bool)ViewData[\"ajax\"]);\n        })\n        .Scrollable(scrolling => scrolling.Enabled((bool)ViewData[\"scrolling\"]))\n        .Sortable(sorting => sorting.Enabled((bool)ViewData[\"sorting\"]))\n        .Pageable(paging => paging.Enabled((bool)ViewData[\"paging\"]))\n        .Filterable(filtering => filtering.Enabled((bool)ViewData[\"filtering\"]))\n        .Groupable(grouping => grouping.Enabled((bool)ViewData[\"grouping\"]))\n        .Footer((bool)ViewData[\"showFooter\"])\n%>\n</asp:content>\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase25.cshtml",
    "content": "﻿@model IEnumerable<OrderDto>\n@using Project.Namespace.To.Models\n@using (Html.Configurator(\"The grid should...\")\n              .PostTo(\"FirstLook\", \"Grid\")\n              .Begin())\n              {\n    <ul>\n        <li>@Html.CheckBox(\"ajax\", true, \"make <strong>AJAX</strong> requests\")</li>\n        <li>@Html.CheckBox(\"grouping\", true, \"allow <strong>grouping</strong> of data\")</li>\n        <li>@Html.CheckBox(\"filtering\", true, \"allow <strong>filtering</strong> of data\")</li>\n        <li>@Html.CheckBox(\"paging\", true, \"have <strong>pages</strong> with 10 items\")</li>\n        <li>@Html.CheckBox(\"scrolling\", true, \"show a <strong>scrollbar</strong> when there are many items\")</li>\n        <li>@Html.CheckBox(\"sorting\", true, \"allow <strong>sorting</strong> of data\")</li>\n        <li>@Html.CheckBox(\"showFooter\", true, \"show footer\")</li>\n    </ul>\n    <button class=\"t-button t-state-default\" type=\"submit\">Apply</button>\n}\n@(Html.Telerik().Grid(Model)\n        .Name(\"Grid\")\n        .Columns(columns =>\n        {\n            columns.Bound(o => o.OrderID).Width(100);\n            columns.Bound(o => o.ContactName).Width(200);\n            columns.Bound(o => o.ShipAddress);\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\n        })\n        .DataBinding(dataBinding => \n        {\n            dataBinding.Server().Select(\"FirstLook\", \"Grid\", new { ajax = ViewData[\"ajax\"] });\n            dataBinding.Ajax().Select(\"_FirstLook\", \"Grid\").Enabled((bool)ViewData[\"ajax\"]);\n        })\n        .Scrollable(scrolling => scrolling.Enabled((bool)ViewData[\"scrolling\"]))\n        .Sortable(sorting => sorting.Enabled((bool)ViewData[\"sorting\"]))\n        .Pageable(paging => paging.Enabled((bool)ViewData[\"paging\"]))\n        .Filterable(filtering => filtering.Enabled((bool)ViewData[\"filtering\"]))\n        .Groupable(grouping => grouping.Enabled((bool)ViewData[\"grouping\"]))\n        .Footer((bool)ViewData[\"showFooter\"])\n)"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase26.aspx.txt",
    "content": "﻿<%@ Page Language=\"C#\" Inherits=\"System.Web.Mvc.ViewPage<IEnumerable<OrderDto>>\" %>\r\n<%@ Import Namespace=\"Project.Namespace.To.Models\" %>\r\n\r\n<asp:content contentplaceholderid=\"scriptcontent\" runat=\"server\">\r\n\t$(document).ready(function() {\r\n\t\tvar url = \"<%: Url.Action(\"Action\", \"Controller\", routeValues) %>\";\r\n\t\t<%\r\n\t\t\tvar testVar = 0;\r\n\r\n\t\t\tfor(var i = 0; i < 9999; i++) {\r\n\t\t\t\ttestVar += i;\r\n\t\t\t}\r\n\r\n\t\t\tstring s = testVar.ToString();\r\n\t\t%>\r\n\t\t\r\n\t\tvar test = \"<%: s %>\";\r\n\t});\r\n</asp:content>\r\n\r\n<asp:content contentplaceholderid=\"maincontent\" runat=\"server\">\r\n<% using (Html.Configurator(\"The grid should...\")\r\n              .PostTo(\"FirstLook\", \"Grid\")\r\n              .Begin())\r\n   { %>\r\n    <ul>\r\n        <li><%= Html.CheckBox(\"ajax\", true, \"make <strong>AJAX</strong> requests\")%></li>\r\n        <li><%= Html.CheckBox(\"grouping\", true, \"allow <strong>grouping</strong> of data\")%></li>\r\n        <li><%= Html.CheckBox(\"filtering\", true, \"allow <strong>filtering</strong> of data\")%></li>\r\n        <li><%= Html.CheckBox(\"paging\", true, \"have <strong>pages</strong> with 10 items\")%></li>\r\n        <li><%= Html.CheckBox(\"scrolling\", true, \"show a <strong>scrollbar</strong> when there are many items\")%></li>\r\n        <li><%= Html.CheckBox(\"sorting\", true, \"allow <strong>sorting</strong> of data\")%></li>\r\n        <li><%= Html.CheckBox(\"showFooter\", true, \"show footer\")%></li>\r\n    </ul>\r\n    <button class=\"t-button t-state-default\" type=\"submit\">Apply</button>\r\n<% } %>\r\n\r\n<%= Html.Telerik().Grid(Model)\r\n        .Name(\"Grid\")\r\n        .Columns(columns =>\r\n\t\t{\r\n\t\t\tcolumns.Bound(o => o.OrderID).Width(100);\r\n            columns.Bound(o => o.ContactName).Width(200);\r\n            columns.Bound(o => o.ShipAddress);\r\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\r\n        })\r\n        .DataBinding(dataBinding => \r\n        {\r\n            dataBinding.Server().Select(\"FirstLook\", \"Grid\", new { ajax = ViewData[\"ajax\"] });\r\n            dataBinding.Ajax().Select(\"_FirstLook\", \"Grid\").Enabled((bool)ViewData[\"ajax\"]);\r\n        })\r\n        .Scrollable(scrolling => scrolling.Enabled((bool)ViewData[\"scrolling\"]))\r\n        .Sortable(sorting => sorting.Enabled((bool)ViewData[\"sorting\"]))\r\n        .Pageable(paging => paging.Enabled((bool)ViewData[\"paging\"]))\r\n        .Filterable(filtering => filtering.Enabled((bool)ViewData[\"filtering\"]))\r\n        .Groupable(grouping => grouping.Enabled((bool)ViewData[\"grouping\"]))\r\n        .Footer((bool)ViewData[\"showFooter\"])\r\n%>\r\n</asp:content>\r\n"
  },
  {
    "path": "Telerik.RazorConverter.Tests.Integration/TestCases/TestCase26.cshtml",
    "content": "﻿@model IEnumerable<OrderDto>\r\n@using Project.Namespace.To.Models\r\n@section scriptcontent {\r\n    $(document).ready(function() {\r\n\t\tvar url = \"@Url.Action(\"Action\", \"Controller\", routeValues)\";\r\n\t\t@{\r\n\t\t\tvar testVar = 0;\r\n\r\n\t\t\tfor(var i = 0; i < 9999; i++) {\r\n\t\t\t\ttestVar += i;\r\n\t\t\t}\r\n\r\n\t\t\tstring s = testVar.ToString();\r\n        }\r\n\r\n\t\tvar test = \"@s\";\r\n\t});\r\n}\r\n\r\n@using (Html.Configurator(\"The grid should...\")\r\n              .PostTo(\"FirstLook\", \"Grid\")\r\n              .Begin())\r\n              {\r\n    <ul>\r\n        <li>@Html.CheckBox(\"ajax\", true, \"make <strong>AJAX</strong> requests\")</li>\r\n        <li>@Html.CheckBox(\"grouping\", true, \"allow <strong>grouping</strong> of data\")</li>\r\n        <li>@Html.CheckBox(\"filtering\", true, \"allow <strong>filtering</strong> of data\")</li>\r\n        <li>@Html.CheckBox(\"paging\", true, \"have <strong>pages</strong> with 10 items\")</li>\r\n        <li>@Html.CheckBox(\"scrolling\", true, \"show a <strong>scrollbar</strong> when there are many items\")</li>\r\n        <li>@Html.CheckBox(\"sorting\", true, \"allow <strong>sorting</strong> of data\")</li>\r\n        <li>@Html.CheckBox(\"showFooter\", true, \"show footer\")</li>\r\n    </ul>\r\n    <button class=\"t-button t-state-default\" type=\"submit\">Apply</button>\r\n}\r\n\r\n@(Html.Telerik().Grid(Model)\r\n        .Name(\"Grid\")\r\n        .Columns(columns =>\r\n        {\r\n            columns.Bound(o => o.OrderID).Width(100);\r\n            columns.Bound(o => o.ContactName).Width(200);\r\n            columns.Bound(o => o.ShipAddress);\r\n            columns.Bound(o => o.OrderDate).Format(\"{0:MM/dd/yyyy}\").Width(120);\r\n        })\r\n        .DataBinding(dataBinding => \r\n        {\r\n            dataBinding.Server().Select(\"FirstLook\", \"Grid\", new { ajax = ViewData[\"ajax\"] });\r\n            dataBinding.Ajax().Select(\"_FirstLook\", \"Grid\").Enabled((bool)ViewData[\"ajax\"]);\r\n        })\r\n        .Scrollable(scrolling => scrolling.Enabled((bool)ViewData[\"scrolling\"]))\r\n        .Sortable(sorting => sorting.Enabled((bool)ViewData[\"sorting\"]))\r\n        .Pageable(paging => paging.Enabled((bool)ViewData[\"paging\"]))\r\n        .Filterable(filtering => filtering.Enabled((bool)ViewData[\"filtering\"]))\r\n        .Groupable(grouping => grouping.Enabled((bool)ViewData[\"grouping\"]))\r\n        .Footer((bool)ViewData[\"showFooter\"])\r\n)"
  },
  {
    "path": "Telerik.RazorConverter.sln",
    "content": "﻿\nMicrosoft Visual Studio Solution File, Format Version 11.00\n# Visual Studio 2010\nProject(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\") = \"References\", \"References\", \"{8C7D4819-0256-4CFC-9F3D-00CFB7A41D0F}\"\n\tProjectSection(SolutionItems) = preProject\n\t\tReferences\\Moq.dll = References\\Moq.dll\n\t\tReferences\\Moq.xml = References\\Moq.xml\n\t\tReferences\\xunit.dll = References\\xunit.dll\n\t\tReferences\\xunit.extensions.dll = References\\xunit.extensions.dll\n\t\tReferences\\xunit.extensions.xml = References\\xunit.extensions.xml\n\tEndProjectSection\nEndProject\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Telerik.RazorConverter\", \"Telerik.RazorConverter\\Telerik.RazorConverter.csproj\", \"{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}\"\nEndProject\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Telerik.RazorConverter.Tests\", \"Telerik.RazorConverter.Tests\\Telerik.RazorConverter.Tests.csproj\", \"{2445EA5B-53A9-4522-B0B8-342C1241A13A}\"\nEndProject\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"aspx2razor\", \"aspx2razor\\aspx2razor.csproj\", \"{5E999157-A2E2-431D-A5C3-87EF79C62A05}\"\nEndProject\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Telerik.RazorConverter.Tests.Common\", \"Telerik.RazorConverter.Tests.Common\\Telerik.RazorConverter.Tests.Common.csproj\", \"{B30D861F-7D12-436A-BC5A-930D48291037}\"\nEndProject\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Telerik.RazorConverter.Tests.Integration\", \"Telerik.RazorConverter.Tests.Integration\\Telerik.RazorConverter.Tests.Integration.csproj\", \"{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}\"\nEndProject\nProject(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\") = \"TestItems\", \"TestItems\", \"{02F8810D-BE2D-4D6E-9EF7-7A7DBA8502A6}\"\nEndProject\nProject(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\") = \"Solution Items\", \"Solution Items\", \"{F4DA0538-E425-4E71-A508-0D024B125043}\"\nEndProject\nGlobal\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n\t\tDebug|Any CPU = Debug|Any CPU\n\t\tDebug|Mixed Platforms = Debug|Mixed Platforms\n\t\tDebug|x86 = Debug|x86\n\t\tRelease|Any CPU = Release|Any CPU\n\t\tRelease|Mixed Platforms = Release|Mixed Platforms\n\t\tRelease|x86 = Release|x86\n\tEndGlobalSection\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n\t\t{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n\t\t{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}.Debug|Any CPU.Build.0 = Debug|Any CPU\n\t\t{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU\n\t\t{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU\n\t\t{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}.Debug|x86.ActiveCfg = Debug|Any CPU\n\t\t{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}.Release|Any CPU.ActiveCfg = Release|Any CPU\n\t\t{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}.Release|Any CPU.Build.0 = Release|Any CPU\n\t\t{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU\n\t\t{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}.Release|Mixed Platforms.Build.0 = Release|Any CPU\n\t\t{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}.Release|x86.ActiveCfg = Release|Any CPU\n\t\t{2445EA5B-53A9-4522-B0B8-342C1241A13A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n\t\t{2445EA5B-53A9-4522-B0B8-342C1241A13A}.Debug|Any CPU.Build.0 = Debug|Any CPU\n\t\t{2445EA5B-53A9-4522-B0B8-342C1241A13A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU\n\t\t{2445EA5B-53A9-4522-B0B8-342C1241A13A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU\n\t\t{2445EA5B-53A9-4522-B0B8-342C1241A13A}.Debug|x86.ActiveCfg = Debug|Any CPU\n\t\t{2445EA5B-53A9-4522-B0B8-342C1241A13A}.Release|Any CPU.ActiveCfg = Release|Any CPU\n\t\t{2445EA5B-53A9-4522-B0B8-342C1241A13A}.Release|Any CPU.Build.0 = Release|Any CPU\n\t\t{2445EA5B-53A9-4522-B0B8-342C1241A13A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU\n\t\t{2445EA5B-53A9-4522-B0B8-342C1241A13A}.Release|Mixed Platforms.Build.0 = Release|Any CPU\n\t\t{2445EA5B-53A9-4522-B0B8-342C1241A13A}.Release|x86.ActiveCfg = Release|Any CPU\n\t\t{5E999157-A2E2-431D-A5C3-87EF79C62A05}.Debug|Any CPU.ActiveCfg = Debug|x86\n\t\t{5E999157-A2E2-431D-A5C3-87EF79C62A05}.Debug|Mixed Platforms.ActiveCfg = Debug|x86\n\t\t{5E999157-A2E2-431D-A5C3-87EF79C62A05}.Debug|Mixed Platforms.Build.0 = Debug|x86\n\t\t{5E999157-A2E2-431D-A5C3-87EF79C62A05}.Debug|x86.ActiveCfg = Debug|x86\n\t\t{5E999157-A2E2-431D-A5C3-87EF79C62A05}.Debug|x86.Build.0 = Debug|x86\n\t\t{5E999157-A2E2-431D-A5C3-87EF79C62A05}.Release|Any CPU.ActiveCfg = Release|x86\n\t\t{5E999157-A2E2-431D-A5C3-87EF79C62A05}.Release|Mixed Platforms.ActiveCfg = Release|x86\n\t\t{5E999157-A2E2-431D-A5C3-87EF79C62A05}.Release|Mixed Platforms.Build.0 = Release|x86\n\t\t{5E999157-A2E2-431D-A5C3-87EF79C62A05}.Release|x86.ActiveCfg = Release|x86\n\t\t{5E999157-A2E2-431D-A5C3-87EF79C62A05}.Release|x86.Build.0 = Release|x86\n\t\t{B30D861F-7D12-436A-BC5A-930D48291037}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n\t\t{B30D861F-7D12-436A-BC5A-930D48291037}.Debug|Any CPU.Build.0 = Debug|Any CPU\n\t\t{B30D861F-7D12-436A-BC5A-930D48291037}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU\n\t\t{B30D861F-7D12-436A-BC5A-930D48291037}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU\n\t\t{B30D861F-7D12-436A-BC5A-930D48291037}.Debug|x86.ActiveCfg = Debug|Any CPU\n\t\t{B30D861F-7D12-436A-BC5A-930D48291037}.Release|Any CPU.ActiveCfg = Release|Any CPU\n\t\t{B30D861F-7D12-436A-BC5A-930D48291037}.Release|Any CPU.Build.0 = Release|Any CPU\n\t\t{B30D861F-7D12-436A-BC5A-930D48291037}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU\n\t\t{B30D861F-7D12-436A-BC5A-930D48291037}.Release|Mixed Platforms.Build.0 = Release|Any CPU\n\t\t{B30D861F-7D12-436A-BC5A-930D48291037}.Release|x86.ActiveCfg = Release|Any CPU\n\t\t{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n\t\t{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}.Debug|Any CPU.Build.0 = Debug|Any CPU\n\t\t{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU\n\t\t{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU\n\t\t{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}.Debug|x86.ActiveCfg = Debug|Any CPU\n\t\t{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}.Release|Any CPU.ActiveCfg = Release|Any CPU\n\t\t{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}.Release|Any CPU.Build.0 = Release|Any CPU\n\t\t{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU\n\t\t{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}.Release|Mixed Platforms.Build.0 = Release|Any CPU\n\t\t{D41C5C1A-83E4-43E4-AE54-2FC44CE87BA8}.Release|x86.ActiveCfg = Release|Any CPU\n\tEndGlobalSection\n\tGlobalSection(SolutionProperties) = preSolution\n\t\tHideSolutionNode = FALSE\n\tEndGlobalSection\nEndGlobal\n"
  },
  {
    "path": "aspx2razor/DirectoryHandler.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\n\nnamespace aspx2razor {\n\n    /// <summary>\n    /// An object that will handle the traversing of directories and collection of files\n    /// </summary>\n    public class DirectoryHandler {\n        private static IEnumerable<string> extensionFilter = new List<string>() {\n            \".aspx\", \".ascx\"\n        };\n\n        private string InputDirectory { get; set; }\n        private string OutputDirectory { get; set; }\n\n        /// <summary>\n        /// Initializes a new DirectoryHandler instance\n        /// </summary>\n        /// <param name=\"inputDirectory\">The initial directory to start inspections at</param>\n        /// <param name=\"outputDirectory\">The output directory to output to</param>\n        public DirectoryHandler(string inputDirectory, string outputDirectory) {\n            InputDirectory = GetFullPathOrDefault(inputDirectory);\n\n            if(string.IsNullOrEmpty(outputDirectory)) {\n                OutputDirectory = InputDirectory;\n            } else {\n                OutputDirectory = Path.GetFullPath(outputDirectory);\n            }\n        }\n\n        public IEnumerable<string> GetFiles(bool includeSubdirectories) {\n            return GetFiles(InputDirectory, includeSubdirectories);\n        }\n\n        public string GetOutputFileName(string fileName) {\n            var fullFileName = Path.GetFullPath(fileName);\n            var relative = MakeRelative(fullFileName, InputDirectory);\n            return Path.Combine(OutputDirectory, relative);\n        }\n\n        private static string MakeRelative(string filePath, string referencePath)\n        {\n            var fileUri = new Uri(filePath);\n            var referenceUri = new Uri(referencePath);\n            return referenceUri.MakeRelativeUri(fileUri).ToString();\n        }\n\n        private static List<string> GetFiles(string inputDirectory, bool includeSubdirectories) {\n            var files = GetFileRecursive(new List<string>(), inputDirectory, includeSubdirectories);\n            return files;\n        }\n\n        private static List<string> GetFileRecursive(List<string> list, string directoryPath, bool recursive) {\n            var directory = new DirectoryInfo(directoryPath);\n            var files = directory.GetFiles().Where(file => extensionFilter.Contains(file.Extension));\n\n            list.AddRange(files.Select(file => file.FullName));\n\n            if(recursive) {\n                var subDirectories = directory.GetDirectories();\n                foreach(var subDirectory in subDirectories) {\n                    GetFileRecursive(list, subDirectory.FullName, recursive);\n                }\n            }\n            return list;\n        }\n\n        private static string GetFullPathOrDefault(string directory) {\n            if(!Directory.Exists(directory)) {\n                directory = Path.GetDirectoryName(directory);\n            }\n\n            if(string.IsNullOrEmpty(directory)) {\n                directory = Directory.GetCurrentDirectory();\n            }\n\n            return Path.GetFullPath(directory);\n        }\n    }\n}\n"
  },
  {
    "path": "aspx2razor/Program.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.ComponentModel.Composition;\nusing System.ComponentModel.Composition.Hosting;\nusing System.IO;\nusing System.Linq;\nusing System.Text;\n\nusing Telerik.RazorConverter;\nusing Telerik.RazorConverter.Razor.DOM;\n\nnamespace aspx2razor {\n\n    class Program {\n        [Import]\n        private IWebFormsParser Parser { get; set; }\n\n        [Import]\n        private IWebFormsConverter<IRazorNode> Converter { get; set; }\n\n        [Import]\n        private IRenderer<IRazorNode> Renderer { get; set; }\n\n        private static void Main(string[] args) {\n            var p = new Program();\n            p.Run(args);\n        }\n\n        private Program() {\n            var catalog = new AssemblyCatalog(typeof(IWebFormsParser).Assembly);\n            var container = new CompositionContainer(catalog);\n            container.ComposeParts(this);\n        }\n\n        public void Run(string[] args) {\n            var stopwatch = System.Diagnostics.Stopwatch.StartNew();\n\n            if(args.Length < 1) {\n                DisplayUsage();\n                return;\n            }\n\n            var failList = new List<string>();\n            int successCount = 0;\n\n            var outputDirectory = (args.Length >= 2 && !args[1].StartsWith(\"-\")) ? args[1] : \"\";\n            \n            DirectoryHandler directoryHandler;\n            try {\n                directoryHandler = new DirectoryHandler(args[0], outputDirectory);\n            }\n            catch(ArgumentException ex) {\n                Console.WriteLine(\"The given directories were not valid: {0}\", ex.Message);\n                return;\n            }\n\n            var recursive = args.Contains(\"-r\", StringComparer.InvariantCultureIgnoreCase);\n            var files = directoryHandler.GetFiles(recursive);\n            foreach(var file in files) {\n                Console.WriteLine(\"Converting {0}\", file);\n\n                try {\n                    var webFormsPageSource = File.ReadAllText(file, Encoding.UTF8);\n                    var webFormsDocument = Parser.Parse(webFormsPageSource);\n                    var razorDom = Converter.Convert(webFormsDocument);\n                    var razorPage = Renderer.Render(razorDom);\n\n                    var outputFileName = ReplaceExtension(directoryHandler.GetOutputFileName(file), \".cshtml\");\n                    Console.WriteLine(\"Writing    {0}\", outputFileName);\n                    EnsureDirectory(Path.GetDirectoryName(outputFileName));\n                    File.WriteAllText(outputFileName, razorPage, Encoding.UTF8);\n\n                    Console.WriteLine(\"Done\");\n                    successCount++;\n                }\n                catch(Exception ex) {\n                    Console.WriteLine(\"Exception Thrown!\");\n                    AddFail(file, ex.Message, failList);\n                }\n                finally {\n                    Console.WriteLine();\n                }\n            }\n\n            var elapsed = stopwatch.Elapsed;\n            Console.WriteLine();\n            Console.WriteLine(\"{0} files converted\", successCount);\n\n            if(failList.Any()) {\n                Console.WriteLine();\n                Console.WriteLine(\"{0} files failed:\", failList.Count);\n                failList.ForEach(fail => Console.WriteLine(fail));\n                Console.WriteLine();\n            }\n\n            Console.WriteLine(\"Elapsed: {0} seconds\", elapsed.TotalSeconds);\n        }\n\n        private static void AddFail(string fileName, string errorMessage, IList<string> failList) {\n            string fail = string.Format(\"- '{1}':{0} {2}\", Environment.NewLine, fileName, errorMessage);\n            failList.Add(fail);\n        }\n\n        private static void DisplayUsage() {\n            Console.WriteLine(\"Converts WebForms pages (.aspx, .ascx) into a Razor views (.cshtml)\");\n            Console.WriteLine(\"Usage: aspx2razor <input-directory> [output-directory] [options]\");\n            Console.WriteLine(\"Options available:\\r\");\n            Console.WriteLine(\"-r: Convert directories and their contents recursively\");\n        }\n\n        private static void EnsureDirectory(string directory) {\n            if(!Directory.Exists(directory)) {\n                Directory.CreateDirectory(directory);\n            }\n        }\n\n        private static string ReplaceExtension(string fileName, string newExtension) {\n            var targetFolder = Path.GetDirectoryName(fileName);\n            return Path.Combine(targetFolder, Path.GetFileNameWithoutExtension(fileName) + newExtension);\n        }\n    }\n}\n"
  },
  {
    "path": "aspx2razor/Properties/AssemblyInfo.cs",
    "content": "﻿using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Information about an assembly is controlled through the following \n// set of attributes. Change these attribute values to modify the information\n// associated with an assembly.\n[assembly: AssemblyTitle(\"RazorConverter.Console\")]\n[assembly: AssemblyDescription(\"\")]\n[assembly: AssemblyConfiguration(\"\")]\n[assembly: AssemblyCompany(\"Microsoft\")]\n[assembly: AssemblyProduct(\"RazorConverter.Console\")]\n[assembly: AssemblyCopyright(\"Copyright © Microsoft 2010\")]\n[assembly: AssemblyTrademark(\"\")]\n[assembly: AssemblyCulture(\"\")]\n\n// Setting ComVisible to false makes the types in this assembly not visible \n// to COM components.  If you need to access a type in this assembly from \n// COM, set the ComVisible attribute to true on that type.\n[assembly: ComVisible(false)]\n\n// The following GUID is for the ID of the typelib if this project is exposed to COM\n[assembly: Guid(\"2e49698e-b006-4fa7-9402-e219d8316563\")]\n\n// Version information for an assembly consists of the following four values:\n//\n//      Major Version\n//      Minor Version \n//      Build Number\n//      Revision\n//\n// You can specify all the values or you can default the Build and Revision Numbers \n// by using the '*' as shown below:\n// [assembly: AssemblyVersion(\"1.0.*\")]\n[assembly: AssemblyVersion(\"1.0.0.0\")]\n[assembly: AssemblyFileVersion(\"1.0.0.0\")]\n"
  },
  {
    "path": "aspx2razor/app.config",
    "content": "<?xml version=\"1.0\"?>\n<configuration>\n<startup><supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.0\"/></startup></configuration>\n"
  },
  {
    "path": "aspx2razor/aspx2razor.csproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n  <PropertyGroup>\n    <Configuration Condition=\" '$(Configuration)' == '' \">Debug</Configuration>\n    <Platform Condition=\" '$(Platform)' == '' \">x86</Platform>\n    <ProductVersion>8.0.30703</ProductVersion>\n    <SchemaVersion>2.0</SchemaVersion>\n    <ProjectGuid>{5E999157-A2E2-431D-A5C3-87EF79C62A05}</ProjectGuid>\n    <OutputType>Exe</OutputType>\n    <AppDesignerFolder>Properties</AppDesignerFolder>\n    <RootNamespace>aspx2razor</RootNamespace>\n    <AssemblyName>aspx2razor</AssemblyName>\n    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>\n    <TargetFrameworkProfile>\n    </TargetFrameworkProfile>\n    <FileAlignment>512</FileAlignment>\n    <SccProjectName>\n    </SccProjectName>\n    <SccLocalPath>\n    </SccLocalPath>\n    <SccAuxPath>\n    </SccAuxPath>\n    <SccProvider>\n    </SccProvider>\n  </PropertyGroup>\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Debug|x86' \">\n    <PlatformTarget>x86</PlatformTarget>\n    <DebugSymbols>true</DebugSymbols>\n    <DebugType>full</DebugType>\n    <Optimize>false</Optimize>\n    <OutputPath>bin\\Debug\\</OutputPath>\n    <DefineConstants>DEBUG;TRACE</DefineConstants>\n    <ErrorReport>prompt</ErrorReport>\n    <WarningLevel>4</WarningLevel>\n  </PropertyGroup>\n  <PropertyGroup Condition=\" '$(Configuration)|$(Platform)' == 'Release|x86' \">\n    <PlatformTarget>x86</PlatformTarget>\n    <DebugType>pdbonly</DebugType>\n    <Optimize>true</Optimize>\n    <OutputPath>bin\\Release\\</OutputPath>\n    <DefineConstants>TRACE</DefineConstants>\n    <ErrorReport>prompt</ErrorReport>\n    <WarningLevel>4</WarningLevel>\n  </PropertyGroup>\n  <ItemGroup>\n    <Reference Include=\"System\" />\n    <Reference Include=\"System.ComponentModel.Composition\" />\n    <Reference Include=\"System.Core\" />\n    <Reference Include=\"System.Xml.Linq\" />\n    <Reference Include=\"System.Data.DataSetExtensions\" />\n    <Reference Include=\"Microsoft.CSharp\" />\n    <Reference Include=\"System.Data\" />\n    <Reference Include=\"System.Xml\" />\n  </ItemGroup>\n  <ItemGroup>\n    <Compile Include=\"DirectoryHandler.cs\" />\n    <Compile Include=\"Program.cs\" />\n    <Compile Include=\"Properties\\AssemblyInfo.cs\" />\n  </ItemGroup>\n  <ItemGroup>\n    <None Include=\"app.config\" />\n  </ItemGroup>\n  <ItemGroup>\n    <ProjectReference Include=\"..\\Telerik.RazorConverter\\Telerik.RazorConverter.csproj\">\n      <Project>{88630458-D5BE-43B0-A7FB-BC0DFE6CB62E}</Project>\n      <Name>Telerik.RazorConverter</Name>\n    </ProjectReference>\n  </ItemGroup>\n  <Import Project=\"$(MSBuildToolsPath)\\Microsoft.CSharp.targets\" />\n  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \n       Other similar extension points exist, see Microsoft.Common.targets.\n  <Target Name=\"BeforeBuild\">\n  </Target>\n  <Target Name=\"AfterBuild\">\n  </Target>\n  -->\n</Project>"
  }
]